// PR c++/59645 struct A { virtual ~A(); }; struct B { virtual ~B(); }; struct C : A, B {}; struct X { virtual B* foo(volatile int); // { dg-warning "deprecated" "" { target c++2a } } }; struct Y : X { virtual C* foo(volatile int); // { dg-warning "deprecated" "" { target c++2a } } }; C* Y::foo(volatile int) { return 0; } // { dg-warning "deprecated" "" { target c++2a } }