1 // Origin PR c++/51641 2 // { dg-do compile } 3 4 struct A { 5 struct B { typedef int X; }; 6 }; 7 8 template<class B> struct C : A { 9 B::X q; // Ok: A::B. 10 struct U { typedef int X; }; 11 template<class U> 12 struct D; 13 }; 14 15 template<class B> 16 template<class U> 17 struct C<B>::D { 18 typename U::X r; // { dg-error "" } 19 }; 20 21 C<int>::D<double> y; 22 23