https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85128
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- template <class T> class a; struct b { typedef a<b> a; }; Is the reduced testcase. The C++ standard is clear here about this case too. A diagnostic is not required either. Gcc generates one as it can.