Re: shadow variables - pg15 edition
David Rowley <dgrowleyml@gmail.com>
From: David Rowley <dgrowleyml@gmail.com>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: pgsql-hackers@postgresql.org, Tomas Vondra <tomas.vondra@postgresql.org>, Peter Smith <smithpb2250@gmail.com>
Date: 2022-10-05T10:22:33Z
Lists: pgsql-hackers
Attachments
- add_parameter_to_pg_try.patch (text/plain) patch
On Wed, 5 Oct 2022 at 21:05, David Rowley <dgrowleyml@gmail.com> wrote: > 5 warnings remain. 4 of these are for PG_TRY() and co. I've attached a draft patch for a method I was considering to fix the warnings we're getting from the nested PG_TRY() statement in utility.c. The C preprocessor does not allow name overloading in macros, but of course, it does allow variable argument marcos with ... so I just used that and added ##__VA_ARGS__ to each variable. I think that should work ok providing callers only supply 0 or 1 arguments to the macro, and of course, make that parameter value the same for each set of macros used in the PG_TRY() statement. The good thing about the optional argument is that we don't need to touch any existing users of PG_TRY(). The attached just modifies the inner-most PG_TRY() in the only nested PG_TRY() we have in the tree in utility.c. The only warning remaining after applying the attached is the "now" warning in pgbench.c:7509. I'd considered changing this to "thenow" which translates to "right now" in the part of Scotland that I'm from. I also considered "nownow", which is used in South Africa [1]. Anyway, I'm not really being serious, but I didn't come up with anything better than "now2". It's just I didn't like that as it sort of implies there are multiple definitions of "now" and I struggle with that... maybe I'm just thinking too much in terms of Newtonian Relativity... David [1] https://www.goodthingsguy.com/fun/now-now-just-now/
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