// RUN: %clang_cc1 -fsyntax-only -verify %s template class A { }; template void f(A); // expected-note{{candidate template ignored: substitution failure}} void k1() { A<1> a; f(a); // expected-error{{no matching function for call}} f<1>(a); } template class B { }; template void g(B); void k2() { B<1> b; g(b); // OK: cv-qualifiers are ignored on template parameter types } template void h(int (&)[s]); // expected-note{{candidate function template not viable: requires 1 argument, but 2 were provided}} void k3() { int array[5]; h(array); h<5>(array); } template void h(int (&)[s], A); // expected-note{{candidate template ignored: substitution failure}} void k4() { A<5> a; int array[5]; h(array, a); // expected-error{{no matching function for call}} h<5>(array, a); }