// RUN: %clang_cc1 -fsyntax-only -verify %s // Clang used to crash trying to recover while adding 'this->' before Work(x); template struct A { static void Work(int); // expected-note{{must qualify identifier}} }; template struct B : public A { template B(T2 x) { Work(x); // expected-error{{use of undeclared identifier}} } }; void Test() { B b(0); // expected-note{{in instantiation of function template}} } // Don't crash here. namespace PR16134 { template struct S // expected-error {{expected ';'}} template <> static S::f() // expected-error +{{}} } namespace PR16225 { template void f(); template void g(C*) { struct LocalStruct : UnknownBase { }; // expected-error {{unknown template name 'UnknownBase'}} \ // expected-error {{use of undeclared identifier 'Mumble'}} f(); // expected-warning {{template argument uses local type 'LocalStruct'}} } struct S; void h() { g(0); // expected-note {{in instantiation of function template specialization}} } }