Re: Conversion to generic boolean

From: Richard Knutsson
Date: Mon Aug 28 2006 - 17:45:51 EST


Nicholas Miell wrote:

On Mon, 2006-08-28 at 22:55 +0200, Richard Knutsson wrote:


Nicholas Miell wrote:



On Mon, 2006-08-28 at 14:17 +0200, Richard Knutsson wrote:



Jan Engelhardt wrote:




Just would like to ask if you want patches for:




Total NACK to any of this boolean ididocy. I very much hope you didn't
get the impression you actually have a chance to get this merged.




* (Most importent, may introduce bugs if left alone)
Fixing boolean checking, ex:
if (bool == FALSE)
to
if (!bool)




this one of course makes sense, but please do it without introducing
any boolean type. Getting rid of all the TRUE/FALSE defines and converting
all scsi drivers to classic C integer as boolean semantics would be
very welcome janitorial work.




I don't get it. You object to the 'idiocy' (http://lkml.org/lkml/2006/7/27/281), but find the x==FALSE -> !x a good thing?




That is error-prone. Not "==FALSE" but what happens if x is (for some reason) not 1 and then "if (x==TRUE)".


If you're using _Bool, that isn't possible. (Except at the boundaries
where you have to validate untrusted data -- and the compiler makes that
more difficult, because it "knows" that a _Bool can only be 0 or 1 and
therefore your check to see if it's not 0 or 1 can "safely" be
eliminated.)




Yes, true. But there is no _Bool's in the kernel (linus-git), only one in script/.




Sorry, I was under the impression that the purpose of the generic
boolean patch was to switch the kernel over to C's generic boolean.


Oh no, my bad. Well, at least some like to do it (including me).
But you really have to bend it to make _Bool take another value then 0/1.
Regarding "== FALSE" and co., there is still no reason for them, other then bloater the code.

Richard Knutsson

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/