From: Krzysztof Halasa <khc@pm.waw.pl>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "Harvey Harrison" <harvey.harrison@gmail.com>,
"Håkon Løvdal" <hlovdal@gmail.com>,
"Hannes Eder" <hannes@hanneseder.net>,
netdev@vger.kernel.org, kernel-janitors@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 02/27] drivers/net: fix sparse warnings: make do-while a compound statement
Date: Wed, 24 Dec 2008 00:18:46 +0100 [thread overview]
Message-ID: <m3hc4usco9.fsf@maximus.localdomain> (raw)
In-Reply-To: <alpine.LFD.2.00.0812231008350.3535@localhost.localdomain> (Linus Torvalds's message of "Tue\, 23 Dec 2008 10\:08\:50 -0800 \(PST\)")
Linus Torvalds <torvalds@linux-foundation.org> writes:
> 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.
A literally that simple macro, or a complicated one?
I'm all for using brackets when there is / could be some possibility
of increasing code readability.
E.g. I always use parentheses in a nested if-if, because
if (x)
if (y)
a;
else
c;
may be confusing, especially if formatted differently.
if (x)
a;
else if (y)
b;
etc.
is simple and unambiguous and I don't put the braces.
So is a case like
do
x;
while (y);
It can't be made more clear with brackets.
IOW: improving the style is great. Changing it only to silence some
tool is not.
> 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.
Right, but they (at least for me) make it more readable.
kmalloc(sizeof i) just doesn't look good, the operator looks like
a variable name.
But there is this return statement. Some people tend to write
return (x); I simply write return x;
It's clear, and so is a simple do-while.
> 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.
:-)
BTW I think I may use sparse differently.
I can see false gcc warnings every time the project is being built.
OTOH I run sparse only when I have some (almost) completed project
(a patch, a driver etc). I make sure the remaining sparse warnings are
(from my POV) invalid and it won't spew them on next build again.
--
Krzysztof Halasa
next prev parent reply other threads:[~2008-12-23 23:18 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-22 19:14 [PATCH 00/27] drivers/net: fix sparse warnings Hannes Eder
2008-12-22 19:14 ` [PATCH 01/27] drivers/net: fix sparse warning: use ANSI-style function declaration Hannes Eder
2008-12-26 7:53 ` David Miller
2008-12-22 19:15 ` [PATCH 02/27] drivers/net: fix sparse warnings: make do-while a compound statement Hannes Eder
2008-12-22 22:14 ` Krzysztof Halasa
2008-12-22 23:44 ` Håkon Løvdal
2008-12-23 16:31 ` Krzysztof Halasa
2008-12-23 17:26 ` Harvey Harrison
2008-12-23 17:36 ` Krzysztof Halasa
2008-12-23 18:08 ` Linus Torvalds
2008-12-23 23:18 ` Krzysztof Halasa [this message]
2008-12-23 23:38 ` Linus Torvalds
2008-12-24 2:03 ` Krzysztof Halasa
2008-12-24 2:10 ` Linus Torvalds
2008-12-25 17:02 ` Krzysztof Halasa
2008-12-25 6:17 ` Junio C Hamano
2008-12-29 14:35 ` Hannes Eder
2008-12-26 7:55 ` David Miller
2008-12-22 19:15 ` [PATCH 03/27] drivers/net: fix sparse warning: returning void-valued expression Hannes Eder
2008-12-26 0:17 ` David Miller
2008-12-26 14:39 ` Hannes Eder
2008-12-26 19:59 ` Randy Dunlap
2008-12-27 19:11 ` Hannes Eder
2008-12-27 19:20 ` Sam Ravnborg
2008-12-27 21:38 ` [PATCH] Makefile: disable sparse warning "returning void-valued expression" Hannes Eder
2008-12-27 21:57 ` Sam Ravnborg
2008-12-26 7:56 ` [PATCH 03/27] drivers/net: fix sparse warning: returning void-valued expression David Miller
2008-12-22 19:15 ` [PATCH 04/27] drivers/net: fix sparse warnings: make symbols static Hannes Eder
2008-12-26 7:57 ` David Miller
2008-12-22 19:15 ` [PATCH 05/27] drivers/net/arcnet: " Hannes Eder
2008-12-26 7:57 ` David Miller
2008-12-22 19:15 ` [PATCH 06/27] drivers/net/atlx: " Hannes Eder
2008-12-26 7:58 ` David Miller
2008-12-22 19:15 ` [PATCH 07/27] drivers/net/bonding: fix sparse warnings: move decls to header file Hannes Eder
2008-12-26 7:59 ` David Miller
2008-12-22 19:16 ` [PATCH 08/27] drivers/net/cxgb3: comment out dead code Hannes Eder
2008-12-26 7:59 ` David Miller
2008-12-22 19:16 ` [PATCH 09/27] drivers/net/e1000e: fix sparse warnings: make symbols static Hannes Eder
2008-12-22 19:16 ` [PATCH 10/27] drivers/net/enic: fix sparse warning: make symbol static Hannes Eder
2008-12-26 8:01 ` David Miller
2008-12-22 19:16 ` [PATCH 11/27] drivers/net/igb: remove dead code (function 'igb_read_pci_cfg') Hannes Eder
2008-12-22 22:30 ` Jeff Kirsher
2008-12-26 8:03 ` David Miller
2008-12-22 19:16 ` [PATCH 12/27] drivers/net/irda: fix sparse warnings: make symbols static Hannes Eder
2008-12-26 8:03 ` David Miller
2008-12-22 19:16 ` [PATCH 13/27] drivers/net/ixgbe: " Hannes Eder
2008-12-26 8:04 ` David Miller
2008-12-22 19:16 ` [PATCH 14/27] drivers/net/netxen: fix sparse warnings: use NULL pointer instead of plain integer Hannes Eder
2008-12-26 8:04 ` David Miller
2008-12-22 19:17 ` [PATCH 15/27] drivers/net/qlge: fix sparse warnings: make symbols static Hannes Eder
2008-12-26 8:05 ` David Miller
2008-12-22 19:17 ` [PATCH 16/27] drivers/net/skfp: " Hannes Eder
2008-12-26 8:06 ` David Miller
2008-12-22 19:17 ` [PATCH 17/27] drivers/net/tokenring: " Hannes Eder
2008-12-26 8:07 ` David Miller
2008-12-22 19:17 ` [PATCH 18/27] drivers/net/tulip: fix sparse warnings: make do-while a compound statement Hannes Eder
2008-12-26 8:07 ` David Miller
2008-12-22 19:17 ` [PATCH 19/27] drivers/net/usb: fix sparse warnings: make symbols static Hannes Eder
2008-12-26 8:08 ` David Miller
2008-12-22 19:17 ` [PATCH 20/27] drivers/net/wan: fix sparse warnings: make do-while a compound statement Hannes Eder
2008-12-22 22:09 ` Krzysztof Halasa
2008-12-22 19:18 ` [PATCH 21/27] drivers/net/wan: fix sparse warning: make symbol static Hannes Eder
2008-12-26 8:11 ` David Miller
2008-12-22 19:18 ` [PATCH 22/27] drivers/net/wan/z85230.c: fix sparse warnings: un-EXPORT symbols Hannes Eder
2008-12-26 8:12 ` David Miller
2008-12-22 19:18 ` [PATCH 23/27] drivers/net/wireless: fix sparse warnings: make symbols static Hannes Eder
2008-12-26 8:13 ` David Miller
2008-12-22 19:18 ` [PATCH 24/27] drivers/net/wireless/ath9k: " Hannes Eder
2008-12-22 19:18 ` [PATCH 25/27] drivers/net/wireless/b43: " Hannes Eder
2008-12-26 8:13 ` David Miller
2008-12-22 19:18 ` [PATCH 26/27] drivers/net/wireless/ipw2x00: " Hannes Eder
2008-12-26 8:14 ` David Miller
2008-12-22 19:19 ` [PATCH 27/27] drivers/net/wireless/prism54: " Hannes Eder
2008-12-26 8:15 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3hc4usco9.fsf@maximus.localdomain \
--to=khc@pm.waw.pl \
--cc=hannes@hanneseder.net \
--cc=harvey.harrison@gmail.com \
--cc=hlovdal@gmail.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox