[pushed] c++: Include -Woverloaded-virtual in -Wall [PR87729]
Stephan Bergmann
sbergman@redhat.com
Fri Jul 1 20:30:44 GMT 2022
On 6/25/22 00:26, Jason Merrill via Gcc-patches wrote:
> This seems like a good warning to have in -Wall, as requested. But as
> pointed out in PR20423, some users want a warning only when a derived
> function doesn't override any base function. So let's put that lesser
> version in -Wall (and -Woverloaded-virtual=1) while leaving the semantics
> for the existing option the same.
This now causes
> $ cat test.cc
> struct S1 {};
> struct S2: S1 { virtual ~S2(); };
> struct S3 { virtual ~S3(); };
> struct S4: S2, S3 { virtual ~S4(); };
> $ g++ -Woverloaded-virtual -fsyntax-only test.cc
> test.cc:3:21: warning: ‘virtual S3::~S3()’ was hidden [-Woverloaded-virtual=]
> 3 | struct S3 { virtual ~S3(); };
> | ^
> test.cc:4:29: note: by ‘virtual S4::~S4()’
> 4 | struct S4: S2, S3 { virtual ~S4(); };
> | ^
> test.cc:3:21: warning: ‘virtual S3::~S3()’ was hidden [-Woverloaded-virtual=]
> 3 | struct S3 { virtual ~S3(); };
> | ^
> test.cc:4:29: note: by ‘virtual S4::~S4()’
> 4 | struct S4: S2, S3 { virtual ~S4(); };
> | ^
> test.cc:3:21: warning: ‘virtual S3::~S3()’ was hidden [-Woverloaded-virtual=]
> 3 | struct S3 { virtual ~S3(); };
> | ^
> test.cc:4:29: note: by ‘virtual S4::~S4()’
> 4 | struct S4: S2, S3 { virtual ~S4(); };
> | ^
More information about the Gcc-patches
mailing list