Re: shadow variables - pg15 edition - Mailing list pgsql-hackers

From Tom Lane
Subject Re: shadow variables - pg15 edition
Date
Msg-id 4139736.1665417982@sss.pgh.pa.us
Whole thread Raw
In response to Re: shadow variables - pg15 edition  (Justin Pryzby <pryzby@telsasoft.com>)
Responses Re: shadow variables - pg15 edition  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
David Rowley <dgrowleyml@gmail.com> writes:
> On Fri, 7 Oct 2022 at 13:24, David Rowley <dgrowleyml@gmail.com> wrote:
>> Since I just committed the patch to fix the final warnings, I think we
>> should go ahead and commit the patch you wrote to add
>> -Wshadow=compatible-local to the standard build flags. I don't mind
>> doing this.

> Pushed.

The buildfarm's showing a few instances of this warning, which seem
to indicate that not all versions of the Perl headers are clean:

 fairywren     | 2022-10-10 09:03:50 | C:/Perl64/lib/CORE/cop.h:612:13: warning: declaration of 'av' shadows a previous
local[-Wshadow=compatible-local] 
 fairywren     | 2022-10-10 09:03:50 | C:/Perl64/lib/CORE/cop.h:612:13: warning: declaration of 'av' shadows a previous
local[-Wshadow=compatible-local] 
 fairywren     | 2022-10-10 09:03:50 | C:/Perl64/lib/CORE/cop.h:612:13: warning: declaration of 'av' shadows a previous
local[-Wshadow=compatible-local] 
 fairywren     | 2022-10-10 09:03:50 | C:/Perl64/lib/CORE/cop.h:612:13: warning: declaration of 'av' shadows a previous
local[-Wshadow=compatible-local] 
 fairywren     | 2022-10-10 09:03:50 | C:/Perl64/lib/CORE/cop.h:612:13: warning: declaration of 'av' shadows a previous
local[-Wshadow=compatible-local] 
 fairywren     | 2022-10-10 09:03:50 | C:/Perl64/lib/CORE/cop.h:612:13: warning: declaration of 'av' shadows a previous
local[-Wshadow=compatible-local] 
 snakefly      | 2022-10-10 08:21:05 | Util.c:457:14: warning: declaration of 'cv' shadows a parameter
[-Wshadow=compatible-local]

Before you ask:

fairywren: perl 5.24.3
snakefly: perl 5.16.3

which are a little old, but not *that* old.

Scraping the configure logs also shows that only half of the buildfarm
(exactly 50 out of 100 reporting animals) knows -Wshadow=compatible-local,
which suggests that we might see more of these if they all did.  On the
other hand, animals with newer compilers probably also have newer Perl
installations, so assuming that the Perl crew have kept this clean
recently, maybe not.

Not sure if this is problematic enough to justify removing the switch.
A plausible alternative is to have a few animals with known-clean Perl
installations add the switch manually (and use -Werror), so that we find
out about violations without having warnings in the face of developers
who can't fix them.  I'm willing to wait to see if anyone complains of
such warnings, though.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Turn TransactionIdRetreat/Advance into inline functions
Next
From: Andres Freund
Date:
Subject: Re: shadow variables - pg15 edition