https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117410

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2024-11-01
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced with no headers:
```

template <typename T>
concept is_void_t = true;

template <typename T = void>
bool foo() { return false; }

template <typename T = void>
requires is_void_t<T>
bool foo(...) { return true; }

template <int = 0>
bool bar() { return false; }

template <int x = 0>
requires (x == 0)
bool bar(...) { return true; }

int main() {
    (foo());
    (bar());
}
```

MSVC, clang and EDG all accepts this so it does look like maybe a GCC bug.

Without variadic arguments, GCC accepts it.

Reply via email to