diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/p10849a.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/p10849a.C | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10849a.C b/gcc/testsuite/g++.old-deja/g++.mike/p10849a.C new file mode 100644 index 000000000..96bb064b5 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.mike/p10849a.C @@ -0,0 +1,34 @@ +// { dg-do run } +// prms-id: 10849 + +struct A +{ + int comm; + A(int i) : comm(i) { } +}; + +struct S1 { char c1; }; + +struct B : public S1, public A +{ + B(int i) : A(i) { } +}; + +struct C : public A +{ + C(int i) : A(i) { } +}; + +struct D : public B, public C +{ + virtual int g() { + int D::*pmd = (int C::*)&C::comm; + return (this->*pmd) == 42; + } + D() : B(41), C(42) { } +} d; + +int main() { + if (! d.g()) + return 1; +} |