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 void ff () { f<T> (0); } 19 void gg () { g<T> (1); } 20 template <class U> void f () { abort(); } 21 template <class U> void g () { abort(); } 22 template <class U> void f (int) {} 23 template <class U> void g (int) {} 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