1 template <class T1, class T2>
2 class A {
3   template <class S>
4   class SubA {
5     int _k;
6   };
7   T1 _t1;
8   T2 _t2;
9 };
10 
11 template <class U>
12 class B {
13   class SubB1 {
14     B _i;
15   };
16 
17   class SubB2 {
18     int _j;
19   };
20   A<U,SubB1>::SubA<SubB2> _a; // { dg-error "not a base type" "not base" }
21 		// { dg-message "note" "note" { target *-*-* } .-1 }
22 		// { dg-error "non-template" "non-template" { target *-*-* } .-2 }
23 };
24 
25 
main()26 int main() {
27   B<char> objB;
28 
29   return 0;
30 }
31