// { dg-do assemble } // { dg-options "-Wno-deprecated" } template struct A { typedef T A_Type; }; template struct B : public A { }; template struct C : public B { void Func(A_Type); // { dg-error "has not been declared" } implicit typename }; template void C::Func(A_Type) { // { dg-error "declared void" "void" } implicit typename // { dg-error "not declared" "decl" { target *-*-* } 25 } }