Re: shadow variables - pg15 edition
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, Justin Pryzby <pryzby@telsasoft.com>,
pgsql-hackers@postgresql.org,
Tomas Vondra <tomas.vondra@postgresql.org>,
Peter Smith <smithpb2250@gmail.com>
Date: 2022-10-10T16:06:22Z
Lists: 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
Commits
-
Fix shadow variable in postgres.c
- 4574eb9d38c6 16.0 landed
-
Add -Wshadow=compatible-local to the standard compilation flags
- 0fe954c28584 16.0 landed
-
Fix final warnings produced by -Wshadow=compatible-local
- cd4e8caaa0eb 16.0 landed
-
Fix final compiler warning produced by -Wshadow=compatible-local
- d8df67bb1ad9 16.0 landed
-
Add optional parameter to PG_TRY() macros
- 112f0225dbfe 16.0 landed
-
Small refactor to get rid of -Wshadow=compatible-local warning
- d389487525bc 16.0 landed
-
More -Wshadow=compatible-local warning fixes
- 3e0fff2e6888 16.0 landed
-
Further -Wshadow=compatible-local warning fixes
- f959bf9a5b9c 16.0 landed
-
Further reduce warnings with -Wshadow=compatible-local
- 421892a192b8 16.0 landed
-
Reduce warnings with -Wshadow=compatible-local builds
- 92fce4e1eda9 16.0 landed
-
Remove shadowed local variables that are new in v15
- 24f457aa2b70 15.0 landed
- f01592f91577 16.0 landed