// RUN: %clang_cc1 -fsyntax-only -verify %s struct NonDefaultConstructible { NonDefaultConstructible(const NonDefaultConstructible&); // expected-note{{candidate constructor}} }; template struct X { static T member; }; template T X::member; // expected-error{{no matching constructor}} // Okay; this is a declaration, not a definition. template<> NonDefaultConstructible X::member; NonDefaultConstructible &test(bool b) { return b? X::member // expected-note{{instantiation}} : X::member; } namespace rdar9422013 { template struct X { struct Inner { static unsigned array[17]; }; }; template<> unsigned X<1>::Inner::array[]; // okay }