1 // PR c++/28259 2 // { dg-do compile } 3 4 struct A 5 { 6 virtual A* foo(); // { dg-message "overridden" } 7 }; 8 9 struct B : virtual A; // { dg-error "before" } 10 11 struct C : A 12 { 13 virtual B* foo(); // { dg-error "invalid covariant" } 14 }; 15 foo()16 B* C::foo() { return 0; } 17