// PR c++/56095 int *a(void) { return 0; } typedef void voidfn(void); template void z1(void) {} template void z2(void) {} int main() { z1<(voidfn*)a>(); // { dg-error "" } z1(a)>(); // { dg-error "" } z2<(voidfn&)a>(); // { dg-error "" } z2(a)>(); // { dg-error "" } }