1 // PR c++/56095 2 a(void)3int *a(void) { return 0; } 4 typedef void voidfn(void); z1(void)5template <voidfn* b> void z1(void) {} z2(void)6template <voidfn& b> void z2(void) {} 7 main()8int main() 9 { 10 z1<(voidfn*)a>(); // { dg-error "" } 11 z1<reinterpret_cast<voidfn*>(a)>(); // { dg-error "" } 12 z2<(voidfn&)a>(); // { dg-error "" } 13 z2<reinterpret_cast<voidfn&>(a)>(); // { dg-error "" } 14 } 15