https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106159
Bug ID: 106159 Summary: Have -Woverloaded-virtual not warn about virtual destructors? Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: adl at gnu dot org Target Milestone: --- The new version of -Woverloaded-virtual recently introduced seems to warn about virtual destructors in case of multiple inheritance. Is this really intended? Could destructors be ignored from this warning? Also note that the diagnostic is output three times. $ cat > vee.cc <EOF struct left { virtual ~left() {} }; struct right { virtual ~right() {} }; struct both: public left, public right { }; EOF $ g++ -Wall vee.cc -O2 -Woverloaded-virtual -c vee.cc:8:11: warning: 'virtual right::~right()' was hidden [-Woverloaded-virtual=] 8 | virtual ~right() {} | ^ vee.cc:11:8: note: by 'virtual both::~both()' 11 | struct both: | ^~~~ vee.cc:8:11: warning: 'virtual right::~right()' was hidden [-Woverloaded-virtual=] 8 | virtual ~right() {} | ^ vee.cc:11:8: note: by 'virtual both::~both()' 11 | struct both: | ^~~~ vee.cc:8:11: warning: 'virtual right::~right()' was hidden [-Woverloaded-virtual=] 8 | virtual ~right() {} | ^ vee.cc:11:8: note: by 'virtual both::~both()' 11 | struct both: | ^~~~ $ g++ --version g++ (Debian 20220630-1) 13.0.0 20220630 (experimental) [master r13-1359-gaa1ae74711b] Copyright (C) 2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.