1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 template<typename T>
3 struct X0 {
4   typedef T* type;
5 
6   void f0(T);
7   void f1(type);
8 };
9 
10 template<> void X0<char>::f0(char);
11 template<> void X0<char>::f1(type);
12 
13 namespace PR6161 {
14   template<typename _CharT>
15   class numpunct : public locale::facet // expected-error{{use of undeclared identifier 'locale'}} \
16               // expected-error{{expected class name}} \
17   // expected-note{{attempt to specialize declaration here}}
18   {
19     static locale::id id; // expected-error{{use of undeclared identifier}}
20   };
21   numpunct<char>::~numpunct(); // expected-error{{template specialization requires 'template<>'}} \
22   // expected-error{{specialization of member 'PR6161::numpunct<char>::~numpunct' does not specialize an instantiated member}}
23 }
24