https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68812
David Stone <david at doublewise dot net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |david at doublewise dot net --- Comment #1 from David Stone <david at doublewise dot net> --- Reconfirmed on 9.1. This bug manifests even if you change the member function from a constructor to anything else. The bug does not show up if you pass a single template argument to the type, but does show up if you pass 0 arguments or more than 1 argument. Slightly simplified reproducing: template<int... s> struct S { template<int... f> requires(... and (s == f)) static void F() { } }; void foo(S<>) {} See it live: https://godbolt.org/z/SlmBEp