diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/p4736a.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/p4736a.C | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4736a.C b/gcc/testsuite/g++.old-deja/g++.mike/p4736a.C new file mode 100644 index 000000000..f50dbcdb3 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.mike/p4736a.C @@ -0,0 +1,40 @@ +// { dg-do run } +// prms-id: 4736 + +int did_fail = 1; + +class O { +public: + virtual void of() { } +}; + +class A : public O { +public: + virtual void vf() { } +}; + +class W { +public: + virtual void vf() { } +}; + +class X : public W, public A { +public: + virtual void vf() { } +}; + +class Z : public X { +public: + virtual void vf() { did_fail = 0; } +}; + +Z sz; + +void fail1(W* w) { + w->vf(); +} + +int main() { + fail1 (&sz); + return did_fail; +} |