extern "C" void abort ();

int a = 0;

template <class T> void f ();
template <class T> void g ()
{
  if (a)
    abort ();
}

template <> void g<char> ()
{
}

template <class T> class C
{
  public:
    void ff () { f<T> (); }
    void gg () { g<T> (); }
};

template <class T> void f ()
{
  if (a)
    abort ();
}

template <> void f<char> ()
{
}

int main ()
{
  C<int> c;
  c.ff();
  c.gg();
  a = 1;
  C<char> d;
  d.ff();
  d.gg();
}
