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

Reply via email to