// { dg-do run } int status; struct A { virtual void foo () { status = 1; } }; struct B { }; struct C : public A, public B { }; struct D { virtual void baz () { } }; struct E : public D, public C { void foo () { status = 0; } }; int main () { E* ep = new E; ep->foo(); return status; }