// PR c++/85068 // { dg-do compile } struct A; struct B { virtual A *foo (); // { dg-message "overridden" } }; struct C : virtual B { virtual C *foo (); // { dg-error "invalid covariant return type for" } }; struct D : C { virtual C *foo (); };