https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110580
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |accepts-invalid --- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- yes my theory is correct and becomes obvious with the error message for: ``` struct s0 {}; struct s1 {}; struct s2 {}; template <typename T> struct t; template <typename _Key> struct s3 { template <typename _Up, typename _Vp = _Up> static constexpr bool __usable_key = t<_Vp>::v; static_assert(__usable_key<s0>); static_assert(__usable_key<s1>); }; s3<s2> t2; ``` Error message: ``` <source>: In instantiation of 'constexpr const bool s3<s2>::__usable_key<s0, s2>': ... <source>: In instantiation of 'constexpr const bool s3<s2>::__usable_key<s1, s2>': ``` s2 there is definitely incorrect