// RUN: %clang_cc1 -fsyntax-only -verify %s template class vector2 {}; template class vector : vector2 {}; template void Foo2(vector2 V) {} // expected-note{{candidate template ignored: can't deduce a type for 'T' which would make 'const T' equal 'int'}} template void Foo(vector V) {} // expected-note {{candidate template ignored: can't deduce a type for 'T' which would make 'const T' equal 'int'}} void test() { Foo2(vector2()); // expected-error{{no matching function for call to 'Foo2'}} Foo(vector()); // expected-error{{no matching function for call to 'Foo'}} } namespace rdar13267210 { template < typename T > class A { BaseTy; // expected-error{{C++ requires a type specifier for all declarations}} }; template < typename T, int N > class C: A < T > {}; class B { C ExternalDefinitions; C &Record; void AddSourceLocation(A &R); // expected-note{{passing argument to parameter 'R' here}} void AddTemplateKWAndArgsInfo() { AddSourceLocation(Record); // expected-error{{non-const lvalue reference to type}} } }; }