2 // { dg-options "-Wno-pmf-conversions" }
5 #define PMF2PF(PMF) ((void (*)())(PMF))
11 void f1a() { ok += 3; }
12 void f1b() { ok += 5; }
13 void f2a() { ok += 7; }
15 static void (*table[2][2])();
19 void (*A::table[2][2])()
20 = { { PMF2PF(&A::f1a), PMF2PF(&A::f1b) },
21 { PMF2PF(&A::f2a), PMF2PF(&A::f1b) },
25 dispatch (A *obj, int i, int j)
27 (*(void (*)(A *))A::table[i][j])(obj);
32 void (A::*mPtr)() = &A::f1a;
34 (*(void (*)(A*))PMF2PF(mPtr))(&a);
35 (*(void (*)(A*))PMF2PF(f2a))(&a); // { dg-bogus "" "" { xfail *-*-* } }
41 void (A::*mPtr)() = &A::f1b;
43 (*(void (*)(A*))PMF2PF(a.*mPtr))(&a);
44 (*(void (*)(A*))PMF2PF(a.f2a))(&a); // { dg-bogus "" "" { xfail *-*-* } }
45 return ok != 3+3+5+5+7+7;