https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106259
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- // PR c++/106259 // { dg-do compile { target c++11 } } template<typename T> struct A { template<typename U> struct W { }; }; template<> struct A<char> { template<typename U> class W { }; }; void g () { struct A<char>::W<int> w1; // warn struct A<int>::W<int> w2; // dont warn class A<char>::W<int> w3; // dont warn class A<int>::W<int> w4; // warn }