11590Srgrimes// { dg-do run } 277248Skrisextern "C" void abort (); 31590Srgrimes 41590Srgrimestemplate <class T> void f (); 51590Srgrimestemplate <class T> void g () 61590Srgrimes{ 7 abort (); 8} 9 10template <> void g<char> () 11{ 12 abort (); 13} 14 15template <class T> class C 16{ 17 public: 18 void ff () { f<T> (); } 19 void gg () { g<T> (); } 20 template <class U> void f () {} 21 template <class U> void g () {} 22 template <class U> void f (int) { abort(); } 23 template <class U> void g (int) { abort(); } 24}; 25 26template <class T> void f () 27{ 28 abort (); 29} 30 31template <> void f<char> () 32{ 33 abort (); 34} 35 36int main () 37{ 38 C<int> c; 39 c.ff(); 40 c.gg(); 41 C<char> d; 42 d.ff(); 43 d.gg(); 44} 45