https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98929
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Another testcase for -std=c++20, this one is accepted by GCC 10 and up to r11-2747 and rejected with r11-2748 and later: namespace a { template <typename b, typename c> constexpr bool d = __is_same_as(b, c); namespace al { template <typename b, typename c> concept am = d<b, c>; } template <typename b, typename c> concept an = al::am<c, b>; } namespace ap { template <typename bf> struct e { using f = bf; }; template <typename bf> using bk = e<bf>::f; } namespace bd { template <typename bf> concept cv = a::an<ap::bk<bf>, bf>; template <typename> concept dg = requires { int(); }; } namespace bd::ap { template <cv g> struct h { static auto i() {} using j = g; using k = decltype(i); h(k); h(j, auto); }; struct l { using k = int; l(k); }; } namespace bd { struct C : ap::l {}; } template <bd::cv g, bd::dg m> void n(g bz, m ignore) { bd::ap::h(bz, ignore); } void o() { using bd::C; C p{0}; int ignore; n(p, ignore); }