diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/net38.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/net38.C | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net38.C b/gcc/testsuite/g++.old-deja/g++.mike/net38.C new file mode 100644 index 000000000..de00a15fb --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.mike/net38.C @@ -0,0 +1,29 @@ +// { dg-do run } +struct A { + virtual int a () { return 0; } +}; + +struct B { + virtual int b () { return 0; } + virtual int b2 () { return 0; } +}; + +struct C : public A, public B { + virtual int a () { return 1; } + virtual int b () { return 2; } + virtual int b2 () { return 3; } +}; + +int (C::*vmpb) () = &C::b; +int (C::*vmpb2) () = &C::b2; +int (C::*vmpa) () = &C::a; + +int main () { + C c; + if ((c.*vmpa)() != 1) + return 1; + if ((c.*vmpb)() != 2) + return 1; + if ((c.*vmpb2)() != 3) + return 1; +} |