// RUN: %clang_cc1 -fsyntax-only -verify %s template struct S { S() { } S(T t); }; template struct S; void f() { S s1; S s2(10); } namespace PR7184 { template void f() { typedef T type; void g(int array[sizeof(type)]); } template void f(); } namespace UsedAttr { template void __attribute__((used)) foo() { T *x = 1; // expected-error{{cannot initialize a variable of type 'int *' with an rvalue of type 'int'}} } void bar() { foo(); // expected-note{{instantiation of}} } }