13573b2c84372d9484296fa658f5276f6c09acb92Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify %s 225fe73ffe15ec725db0642d95138f305dfab4148Douglas Gregortemplate<typename T> 325fe73ffe15ec725db0642d95138f305dfab4148Douglas Gregorstruct X0 { 425fe73ffe15ec725db0642d95138f305dfab4148Douglas Gregor typedef T* type; 525fe73ffe15ec725db0642d95138f305dfab4148Douglas Gregor 625fe73ffe15ec725db0642d95138f305dfab4148Douglas Gregor void f0(T); 725fe73ffe15ec725db0642d95138f305dfab4148Douglas Gregor void f1(type); 825fe73ffe15ec725db0642d95138f305dfab4148Douglas Gregor}; 925fe73ffe15ec725db0642d95138f305dfab4148Douglas Gregor 1025fe73ffe15ec725db0642d95138f305dfab4148Douglas Gregortemplate<> void X0<char>::f0(char); 1125fe73ffe15ec725db0642d95138f305dfab4148Douglas Gregortemplate<> void X0<char>::f1(type); 123ad17e6241454cd9bec5ec0490cf65da897698f2Douglas Gregor 133ad17e6241454cd9bec5ec0490cf65da897698f2Douglas Gregornamespace PR6161 { 143ad17e6241454cd9bec5ec0490cf65da897698f2Douglas Gregor template<typename _CharT> 153ad17e6241454cd9bec5ec0490cf65da897698f2Douglas Gregor class numpunct : public locale::facet // expected-error{{use of undeclared identifier 'locale'}} \ 165e2891651c53c2a313b7d6f6321c405ed5a7d1e3Douglas Gregor // expected-error{{expected class name}} 173ad17e6241454cd9bec5ec0490cf65da897698f2Douglas Gregor { 1806cacd9992a04e6023a78dcf55f1c14146bcf0afJeffrey Yasskin static locale::id id; // expected-error{{use of undeclared identifier}} 193ad17e6241454cd9bec5ec0490cf65da897698f2Douglas Gregor }; 205e2891651c53c2a313b7d6f6321c405ed5a7d1e3Douglas Gregor numpunct<char>::~numpunct(); // expected-error{{expected the class name after '~' to name a destructor}} 213ad17e6241454cd9bec5ec0490cf65da897698f2Douglas Gregor} 22