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()18 void 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()24 int main() {
25   void (A::*mPtr)() = &A::f1a;
26   (*(void (*)(A*))PMF2PF(mPtr))(&a);	// { dg-warning "convert" }
27 }
28