https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109692
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P4
Keywords| |error-recovery,
| |ice-on-valid-code,
| |rejects-valid
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
So indeed GCC 11.2 doesn't ICE but errors like
t.C: In instantiation of 'static void variadic<params>::bug() [with params =
{int}]':
t.C:13:29: required from here
t.C:9:47: error: no match for call to '(variadic<int>::bug()::<lambda()>) ()'
7 | ([]<bool x = always_true<params>>() {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8 | if constexpr (x) callee<params>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9 | }(), ...);
| ~^~
t.C:7:26: note: candidate: 'template<bool x> variadic<int>::bug()::<lambda()>'
7 | ([]<bool x = always_true<params>>() {
| ^
t.C:7:26: note: template argument deduction/substitution failed:
but I regard we should accept this. Given the ICE is error-recovery the
regression should be P4 and that we reject the code isn't a regression.
Separating these bugs might be nice. Since it's marked as regression it's P4.