summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/p10769b.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/p10769b.C27
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" }
+}