1 // { dg-do assemble } 2 // { dg-options "-ftrack-macro-expansion=0" } 3 // prms-id: 10769 4 5 #define PMF2PF(PMF) ((void (*)())(PMF)) 6 7 class A { 8 public: f1a()9 void f1a() { } 10 void main(); 11 } a; 12 13 class B { 14 public: bf1()15 void bf1() { } 16 } b; 17 main()18void A::main() { 19 void (B::*mPtrB)(B*); 20 (*(void (*)(A*))PMF2PF(mPtrB))(&b); // { dg-error "argument passing" } 21 // { dg-warning "convert" "warn" { target *-*-* } 20 } 22 } 23 main()24int main() { 25 void (A::*mPtr)() = &A::f1a; 26 (*(void (*)(A*))PMF2PF(mPtr))(&a); // { dg-warning "convert" } 27 } 28