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