1// { dg-do assemble  }
2// { dg-options "-Wno-deprecated" }
3
4template <class T>
5struct A
6{
7  typedef T A_Type;
8};
9
10
11template <class U>
12struct B : public A<U>
13{
14};
15
16
17template <class U>
18struct C : public B<U>
19{
20  void Func(A_Type);  // { dg-error "has not been declared" } implicit typename
21};
22
23
24template <class U>
25void C<U>::Func(A_Type) { // { dg-error "declared void" "void" } implicit typename
26// { dg-error "not declared" "decl" { target *-*-* } 25 }
27}
28