diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/pmf5.C')
-rwxr-xr-x | gcc/testsuite/g++.old-deja/g++.mike/pmf5.C | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf5.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf5.C new file mode 100755 index 0000000..685801a --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.mike/pmf5.C @@ -0,0 +1,31 @@ +// Special g++ Options: -w + +class A { + int j; +}; + +class Space { + int j; +}; + +typedef int (A::*pma)(); + +class B : public Space, virtual public A { +public: + int i; + int foo () { + return i!=42; + } + B() { + i = 42; + } +}; + +int call_base (A* ap, pma pmf) { + return (ap->*pmf)(); +} + +int main() { + B b; + return call_base ((A*)&b, (pma)&B::foo); +} |