[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.00.0812231008350.3535@localhost.localdomain>
Date: Tue, 23 Dec 2008 10:08:50 -0800 (PST)
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Krzysztof Halasa <khc@...waw.pl>
cc: Harvey Harrison <harvey.harrison@...il.com>,
Håkon Løvdal <hlovdal@...il.com>,
Hannes Eder <hannes@...neseder.net>, netdev@...r.kernel.org,
kernel-janitors@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 02/27] drivers/net: fix sparse warnings: make do-while
a compound statement
On Tue, 23 Dec 2008, Krzysztof Halasa wrote:
> Harvey Harrison <harvey.harrison@...il.com> writes:
>
> >> There are many ways to make the code more merge friendly at a cost of
> >> readability. Hope we don't go this way.
> >
> > Linus himself added that particular warning to sparse...may want to check
> > with him the reason for it.
>
> Once again, this is a personal thing, and a harmless one.
It's more than that. I added the check after some person who had been
programming the kernel (and thus was supposedly fluent in C) literally
could not parse a macro that had "do x while (y)" in it.
Why? Because it's so uncommon, and because "while (y)" on its own means
something totally different.
So the syntactic sugar to _always_ have do-while loops have that brace is
a way to avoid one of the rather few places where the C language has
syntax that is very context-dependent.
Another example of this is "sizeof". The kernel universally (I hope) has
parenthesis around the sizeof argument, even though it's clearly not
required by the C language.
It's a coding standard.
And quite frankly, anybody who works on gcc has no place complaining about
sparse coding standard warnings. They are a _hell_ of a lot better than
some of the really crazy warnings gcc spews out with "-W". At least the
sparse warnings you can make go away while making the code more
understandable. Some of the -W warnings are unfixable without breaking the
source code.
Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists