1// { dg-do run } 2extern "C" void abort (); 3 4template <class T> void f (); 5template <class T> void g () 6{ 7 abort (); 8} 9 10template <> void g<char> () 11{ 12 abort (); 13} 14 15template <class T> class C 16{ 17 public: 18 template <class U> void f () {} 19 template <class U> void g () {} 20 void ff () { f<T> (); } 21 void gg () { g<T> (); } 22}; 23 24template <class T> void f () 25{ 26 abort (); 27} 28 29template <> void f<char> () 30{ 31 abort (); 32} 33 34int main () 35{ 36 C<int> c; 37 c.ff(); 38 c.gg(); 39 C<char> d; 40 d.ff(); 41 d.gg(); 42} 43