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