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  A_Type Func(); // { dg-error "does not name a type" } implicit typename
21};
22
23
24template <class U>
25C<U>::A_Type C<U>::Func() { // { dg-error "typename" } implicit typename
26}			    // { dg-error "expected" }
27