diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/p11116.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/p11116.C | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p11116.C b/gcc/testsuite/g++.old-deja/g++.mike/p11116.C new file mode 100644 index 00000000000..9beff46e827 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.mike/p11116.C @@ -0,0 +1,22 @@ +// Build don't link: +// Special g++ Options: -Wno-pmf-conversions +// prms-id: 11116 + +class Bar { +public: + int f(int a) { val = a; return val; } +private: + int val; +}; + +typedef int (Bar::*BarPtr)(int); + +void foo() { + int a; + int (Bar::*bp)(int) = &Bar::f; + Bar bar; + int (*p)(void *, int); + + p = (int (*)(void*,int))((void (*)())((bp).__pfn_or_delta2.__pfn)); + a = (*p)(&bar, 4); +} |