On 9/10/16, Ian Lance Taylor <i...@google.com> wrote: > On Fri, Sep 9, 2016 at 5:06 PM, Mark Wielaard <m...@redhat.com> wrote: >> valgrind contains a copy of the libiberty demangler which gets compiled >> with -Wshadow. That shows the following warning: >> >> cp-demangle.c: In function ‘d_substitution’: >> cp-demangle.c:3772:35: warning: declaration of ‘c’ shadows a previous >> local >> struct demangle_component *c; >> ^ >> cp-demangle.c:3708:8: note: shadowed declaration is here >> char c; >> ^ >> >> Fix that by renaming the struct demangle_component variable to dc >> and add -Wshadow to ac_libiberty_warn_cflags (the only warning is this >> one). >> >> libiberty/ChangeLog: >> >> * cp-demangle.c (d_substitution): Change struct >> demangle_component >> variable name from c to dc. >> * configure.ac (ac_libiberty_warn_cflags): Add -Wshadow. >> * configure: Regenerate. > > The patch to cp-demangle.c is OK. Thanks. > > I'm not sure about the patch to configure.ac/configure. The last I > looked -Wshadow would warn if a local variable shadows a global > variable. That can cause a pointless build break if some system > header file defines a global variable that happens to have the same > name as a local variable. It's not a likely scenario but I don't see > a need to court a build breakage. > > Ian >
Maybe if the patch to add -Wshadow-local went in, the configure script could use that instead? For reference: https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01317.html