svn commit: r362217 - head/stand/common

Ian Lepore ian at freebsd.org
Wed Jun 17 02:39:40 UTC 2020


On Tue, 2020-06-16 at 10:30 -0700, Rodney W. Grimes wrote:
> > In message <
> > 55903c38d363aef2a6f6d0075dd4526b86d51258.camel at freebsd.org>, 
> > Ian Le
> > pore writes:
> > > On Tue, 2020-06-16 at 07:05 +0000, Toomas Soome wrote:
> > > > Author: tsoome
> > > > Date: Tue Jun 16 07:05:03 2020
> > > > New Revision: 362217
> > > > URL: https://svnweb.freebsd.org/changeset/base/362217
> > > > 
> > > > Log:
> > > >   loader: variable i is unused without MBR/GPT support built in
> > > >   
> > > >   Because i is only used as index in for loop, declare it in
> > > > for
> > > > statement.
> > > > 
> > > 
> > > As much as I prefer doing it this way, style(9) doesn't allow for
> > > variable declarations inside a for() statement (or even inside a
> > > local
> > > block, which is just too 1980s for me, but it is still our
> > > standard).
> 
> Last time I tried to assert that bit of style(9) with respect to
> inside a local block I was over ridden, so it is probably time
> to atleast revisit that part of style(9).
> 
> > Doesn't this use stack for a shorter period of time or does the
> > compiler 
> > optimize this, making this change moot?
> > 
> > The tradeoff is a few extra bytes of stack for a longer period of
> > time vs a 
> > few extra instructions incrementing and decrementing the stack
> > pointer.
> 
> I do not think the reasoning had to do with stack space vs
> instuctions,
> but more about being able to clearly know about variable reuse and
> not
> do it as that can create fun bugs.
> 
> Tools have modernized since that part of style was written.

I think a modern compiler will likely emit one of those "declaration of
foo here shadows declaration in outer scope" type messages.  Not that
it should; IMO, part of the point of keeping definitions confined to as
local a scope as possible is to help ensure you're using the variable
you think you are in that local scope and not accidentally perturbing
something used elsewhere.

-- Ian




More information about the svn-src-all mailing list