// { dg-do assemble }
template <class T> void foo(T);
template <class T> void bar(void (*)(T), T);
void baz() {
bar<int>(foo, 1);
bar(foo<int>, 1);
bar<int>(foo<int>, 1);
bar(foo, 1);
}
// { dg-do assemble }
template <class T> void foo(T);
template <class T> void bar(void (*)(T), T);
void baz() {
bar<int>(foo, 1);
bar(foo<int>, 1);
bar<int>(foo<int>, 1);
bar(foo, 1);
}