/* { dg-do compile } */ /* { dg-options "-Wcast-function-type" } */ struct S { void foo (int*); void bar (int); }; typedef void (S::*MF)(int); void foo (void) { MF p1 = (MF)&S::foo; /* { dg-warning "pointer to member" } */ MF p2 = (MF)&S::bar; /* { dg-bogus "pointer to member" } */ }