I'm not sure what the proper name is but, IMO, it might be a good thing to warn about as it could result in the same kind of unexpected results as when removing a shadowing local variable. Nick On Wednesday, September 29, 2021, 01:56:37 PM PDT, Jonathan Wakely <jwakely.gcc@xxxxxxxxx> wrote: On Wed, 29 Sept 2021 at 21:46, Nick Savoiu via Gcc-help <gcc-help@xxxxxxxxxxx> wrote: > > Should GCC report shadowing on 'valid' for this code? > > Nick > > struct S1{ bool valid;}; > struct S2 : public S1{ bool valid;}; > struct S3 : public S2{ bool valid;}; IMHO, no, because this is name hiding, now shadowing. The documentation for the -Wshadow warnings is clear that it refers to local variables. For class members you can still access the base one by qualifying it, i.e. S1::valid, S2::valid.