diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/p10769b.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/p10769b.C | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C b/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C new file mode 100644 index 000000000..9210a452a --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C @@ -0,0 +1,27 @@ +// { dg-do assemble } +// { dg-options "" } +// prms-id: 10769 + +#define PMF2PF(PMF) ((void (*)())(PMF)) + +class A { +public: + void f1a() { } + void main(); +} a; + +class B { +public: + void bf1() { } +} b; + +void A::main() { + void (B::*mPtrB)(B*); + (*(void (*)(A*))PMF2PF(mPtrB))(&b); // { dg-error "argument passing" } + // { dg-warning "convert" "warn" { target *-*-* } 20 } +} + +int main() { + void (A::*mPtr)() = &A::f1a; + (*(void (*)(A*))PMF2PF(mPtr))(&a); // { dg-warning "convert" } +} |