brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 78f2b3e Raw
69 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify %s2 3namespace PR8640 {4  template<class T1> struct C1 {5    virtual void c1() {6      T1 t1 = 3;  // expected-error {{cannot initialize a variable}}7    }8  };9 10  template<class T2> struct C2 {11    void c2() {12      new C1<T2>();  // expected-note {{in instantiation of member function}}13    }14  };15 16  void f() {17    C2<int*> c2;18    c2.c2();  // expected-note {{in instantiation of member function}}19  }20}21 22namespace PR9325 {23  template<typename T>24  class Target25  {26  public:27    virtual T Value() const28    {29      return 1; // expected-error{{cannot initialize return object of type 'int *' with an rvalue of type 'int'}}30    }31  };32 33  template<typename T>34  struct Provider35  {36    static Target<T> Instance;37  };38 39  template<typename T>40  Target<T> Provider<T>::Instance; // expected-note{{in instantiation of}}41 42  void f()43  {44    Target<int*>* traits = &Provider<int*>::Instance; // expected-note{{requested here}}45  }46}47 48namespace PR10020 {49  struct MG {50    virtual void Accept(int) = 0;51  };52 53  template <typename Type>54  struct GMG : MG {55    void Accept(int i) {56      static_cast<Type *>(0)->Accept(i); // expected-error{{member reference base}}57    }58    static GMG* Method() { return &singleton; } // expected-note{{in instantiation of}}59    static GMG singleton;60  };61 62  template <typename Type>63  GMG<Type> GMG<Type>::singleton; // expected-note{{requested here}}64 65  void test(void) {66    GMG<int>::Method(); // expected-note{{in instantiation of}}67  }68}69