svn commit: r190098 - in head/sys/sparc64: fhc sparc64

Julian Elischer julian at elischer.org
Sun Mar 22 11:20:58 PDT 2009


M. Warner Losh wrote:
> In message: <49C5F88C.3070600 at freebsd.org>
>             Andriy Gapon <avg at freebsd.org> writes:
> : on 22/03/2009 01:57 M. Warner Losh said the following:
> : > I'll point out that style(9) doesn't say use as few local variables as
> : > possible...  That part is completely unspecified.
> : 
> : But it does say:
> : Do not put declarations inside blocks unless the routine is unusually
> : complicated.
> 
> Yea, so?  Just put them at the top of the function where they belong
> and don't worry about it.  Christoph has a long reason why this isn't bad.
> 
> : "unusually complicated" is, of course, a very subjective measure.
> : But still this guideline contradicts typical guidelines for C and its
> : offspring which name we do not say to declare variables as close to
> : their first usage as possible.
> 
> thousands of lines is unusually complicated.
> 
> : E.g. you can have a simple 3 line block where you need a local variable
> : but that block is located 50 lines from start of an enclosing function.
> : Very convenient when you need to quickly glance the variable's type (not).
> 
> No you don't.  There's absolutely nothing wrong with putting them at
> the top.  In fact, it is simpler, really, than having to go hunting
> for dozens of different declarations.  As someone who has spent a lot
> of time looking at code, the time wasted looking for these damn-fool
> things really adds up.

and in a complicated function, if you have them all over the place you 
have no idea as to what the potential stack usage of the function is..
This matters in the kernel.

> 
> The original point is valid: the code changes obfuscated perfectly
> readable code for no gain in the object code.
> 
> Warner



More information about the svn-src-all mailing list