1template <class T1, class T2>
2class A {
3  template <class S>
4  class SubA {
5    int _k;
6  };
7  T1 _t1;
8  T2 _t2;
9};
10
11template <class U>
12class 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 *-*-* } 20 }
22		// { dg-error "non-template" "non-template" { target *-*-* } 20 }
23};
24
25
26int main() {
27  B<char> objB; // { dg-message "instantiated" }
28
29  return 0;
30}
31