1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
2 | // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s |
3 | |
4 | template<typename T> class vector2 {}; |
5 | template<typename T> class vector : vector2<T> {}; |
6 | |
7 | template<typename T> void Foo2(vector2<const T*> V) {} // expected-note{{candidate template ignored: cannot deduce a type for 'T' that would make 'const T' equal 'int'}} |
8 | template<typename T> void Foo(vector<const T*> V) {} // expected-note {{candidate template ignored: cannot deduce a type for 'T' that would make 'const T' equal 'int'}} |
9 | |
10 | void test() { |
11 | Foo2(vector2<int*>()); // expected-error{{no matching function for call to 'Foo2'}} |
12 | Foo(vector<int*>()); // expected-error{{no matching function for call to 'Foo'}} |
13 | } |
14 | |
15 | namespace rdar13267210 { |
16 | template < typename T > class A { |
17 | BaseTy; // expected-error{{C++ requires a type specifier for all declarations}} |
18 | }; |
19 | |
20 | template < typename T, int N > class C: A < T > {}; |
21 | |
22 | class B { |
23 | C<long, 16> ExternalDefinitions; |
24 | C<long, 64> &Record; |
25 | |
26 | void AddSourceLocation(A<long> &R); // expected-note{{passing argument to parameter 'R' here}} |
27 | void AddTemplateKWAndArgsInfo() { |
28 | AddSourceLocation(Record); // expected-error{{non-const lvalue reference to type}} |
29 | } |
30 | }; |
31 | } |
32 | |
33 | namespace PR16292 { |
34 | class IncompleteClass; // expected-note{{forward declaration}} |
35 | class BaseClass { |
36 | IncompleteClass Foo; // expected-error{{field has incomplete type}} |
37 | }; |
38 | template<class T> class DerivedClass : public BaseClass {}; |
39 | void* p = new DerivedClass<void>; |
40 | } |
41 | |
42 | namespace rdar14183893 { |
43 | class Typ { // expected-note {{not complete}} |
44 | Typ x; // expected-error {{incomplete type}} |
45 | }; |
46 | |
47 | template <unsigned C> class B : Typ {}; |
48 | typedef B<0> TFP; |
49 | |
50 | class A { |
51 | TFP m_p; |
52 | void Enable() { 0, A(); } // expected-warning {{unused}} |
53 | }; |
54 | } |
55 | |