// RUN: %clang_cc1 -fsyntax-only -verify %s namespace PR8640 { template<class T1> struct C1 { virtual void c1() { T1 t1 = 3; // expected-error {{cannot initialize a variable}} } }; template<class T2> struct C2 { void c2() { new C1<T2>(); // expected-note {{in instantiation of member function}} } }; void f() { C2<int*> c2; c2.c2(); // expected-note {{in instantiation of member function}} } } namespace PR9325 { template<typename T> class Target { public: virtual T Value() const { return 1; // expected-error{{cannot initialize return object of type 'int *' with an rvalue of type 'int'}} } }; template<typename T> struct Provider { static Target<T> Instance; }; template<typename T> Target<T> Provider<T>::Instance; // expected-note{{in instantiation of}} void f() { Target<int*>* traits = &Provider<int*>::Instance; // expected-note{{requested here}} } } namespace PR10020 { struct MG { virtual void Accept(int) = 0; }; template <typename Type> struct GMG : MG { void Accept(int i) { static_cast<Type *>(0)->Accept(i); // expected-error{{member reference base}} } static GMG* Method() { return &singleton; } // expected-note{{in instantiation of}} static GMG singleton; }; template <typename Type> GMG<Type> GMG<Type>::singleton; // expected-note{{requested here}} void test(void) { GMG<int>::Method(); // expected-note{{in instantiation of}} } }