// PR c++/15946 // Test for helpful error message about missing typename. template struct A { struct B { }; static B b; }; template void f(T t) { typedef A::foo type; // { dg-error "typename" } A::bar b; // { dg-error "typename" "typename" } } // { dg-error "expected ';'" "expected" { target *-*-* } 14 } // PR c++/36353 template struct B { void f() { A::baz z; // { dg-error "typename" "typename" } } // { dg-error "expected ';'" "expected" { target *-*-* } 22 } }; // PR c++/40738 template void g(const A::type &t); // { dg-error "typename" "typename" } // PR c++/18451 template A::B A::b; // { dg-error "typename" }