// RUN: clang-cc -fsyntax-only -verify %s template class X0 { public: void f(T t); struct Inner { void g(T t); }; }; template void X0::f(T t) { t = 17; // expected-error{{incompatible}} } extern template class X0; extern template class X0; template void X0::Inner::g(T t) { t = 17; // expected-error{{incompatible}} } void test_intptr(X0 xi, X0::Inner xii) { xi.f(0); xii.g(0); } // FIXME: we would like the notes to point to the explicit instantiation at the // bottom. extern template class X0; // expected-note{{instantiation}} void test_longptr(X0 xl, X0::Inner xli) { xl.f(0); xli.g(0); // expected-note{{instantiation}} } template class X0;