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.