https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81589
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |marxin at gcc dot gnu.org --- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> --- I see the same problem (reduced from Chromium package): cat chrome.ii template <typename b, b c> struct d { static constexpr b e = c; }; template <typename> struct aa; template <typename...> struct f; template <typename g, typename h> struct f<g, h> : aa<g>::i {}; template <typename b> struct j : f<b, d<bool, __is_trivially_constructible(b, b)>> {}; template <typename> struct aa { typedef d<bool, false> i; }; template <typename k> struct l { typename k::ab ab; }; template <typename> class m { typedef int ab; }; class n {}; struct o { template <typename> using ac = n; }; struct s : o { struct t { typedef ac<int> ad; }; }; template <typename ae, typename af> void p(ae, af) { typename l<ae>::ag q; } template <typename ae, typename af, typename b> void r(ae ah, af ai, b) { p(ah, ai); } template <typename u, bool = j<u>::e> struct aj {}; template <typename u> class w { aj<u> a; }; struct x { s::t::ad y(); x(long, n); int ak; }; template <typename> class z : x { typedef m<z> al; public: z(const z &) : x(0, y()) { n v; r(am(), ak, v); } al am(); }; class SerializedHandle; using an = SerializedHandle; w<z<an>> a;