// { dg-do assemble } // { dg-options "-Woverloaded-virtual" } struct B4 { virtual void bothfardiff(float); // { dg-warning "" } was hidden }; struct B3 : public B4 { }; struct B2 { }; struct B { virtual void baseonly(int); virtual void bothsame(int); virtual void bothdiff(float); // { dg-warning "" } was hidden virtual void both2same(int); virtual void both2same(float); virtual void both12diff(int); virtual void both12diff(float); // { dg-warning "" } was hidden }; struct D : public B, public B2, public B3 { virtual void derivedonly(int); virtual void bothsame(int); virtual void bothdiff(int); // { dg-warning "" } virtual void both2same(int); virtual void both2same(float); virtual void both12diff(int); // { dg-warning "" } virtual void bothfardiff(int); // { dg-warning "" } };