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.

Reply via email to