/* { dg-do compile } */ /* { dg-options "-O" } */ struct A { virtual A *getThis(); }; struct B { virtual B *getThis(); }; struct AB : public A, public B { virtual AB *getThis() { return 0; } }; void foo () { AB ab; B *b = &ab; b->getThis(); }