// { dg-do run } extern "C" void abort (); template void f () { abort (); } template <> void f () { abort (); } template void f (int) { abort (); } template <> void f (int) { } template class C { friend void f (int); public: void ff () { f (0); } }; int main () { C c; c.ff(); }