// { 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; }