Re: shadow variables - pg15 edition
Peter Smith <smithpb2250@gmail.com>
From: Peter Smith <smithpb2250@gmail.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Justin Pryzby <pryzby@telsasoft.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>,
Tomas Vondra <tomas.vondra@postgresql.org>
Date: 2022-08-18T08:26:33Z
Lists: pgsql-hackers
On Thu, Aug 18, 2022 at 5:27 PM David Rowley <dgrowleyml@gmail.com> wrote: > > On Thu, 18 Aug 2022 at 17:16, Justin Pryzby <pryzby@telsasoft.com> wrote: > > > > On Thu, Aug 18, 2022 at 03:17:33PM +1200, David Rowley wrote: > > > I'm probably not the only committer to want to run a mile when they > > > see someone posting 17 or 26 patches in an email. So maybe "bang for > > > buck" is a better method for getting the ball rolling here. As you > > > know, I was recently bitten by local shadows in af7d270dd, so I do > > > believe in the cause. > > > > > > What do you think? > > > > You already fixed the shadow var introduced in master/pg16, and I sent patches > > for the shadow vars added in pg15 (marked as such and presented as 001-008), so > > perhaps it's okay to start with that ? > > Alright, I made a pass over the 0001-0008 patches. > ... > > 0005. How about just "tslot". I'm not a fan of "this". > (I'm sure there are others like this; I just picked this one as an example) AFAICT the offending 'slot' really should have never been declared at all at the local scope in the first place - e.g. the other code in this function seems happy enough with the pattern of just re-using the function scoped 'slot'. I understand that for this shadow patch changing the var-name is considered the saner/safer way than tampering with the scope, but perhaps it is still useful to include a comment when changing ones like this? e.g. + TupleTableSlot *tslot; /* TODO - Why declare this at all? Shouldn't it just re-use the 'slot' at function scope? */ Otherwise, such knowledge will be lost, and nobody will ever know to revisit them, which feels a bit more like *hiding* the mistake than fixing it. ------ Kind Regards, Peter Smith. Fujitsu Australia
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