// { dg-do compile } template struct A { void foo(void(*)(A)); void bar(void(*f)(A)) { foo(f); foo(f); } }; template inline void FOO(A a) { a.foo(0); } extern template void FOO(A<0>); void BAR() { A<0> a; FOO(a); a.bar(FOO); }