// { dg-do assemble } // { dg-options "-ansi -pedantic-errors -w" } // GROUPS passed templates template void foo(U u, T t); template void foo(T t); template struct S {}; template void foo(const S&); void bar() { void (*fn)(double, int) = (void (*)(double, int)) &foo; void (*fn2)(double) = foo; foo(3, 3.0); foo(S()); }