Re: Conversion to generic boolean

From: Nicholas Miell
Date: Mon Aug 28 2006 - 17:16:39 EST


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.


--
Nicholas Miell <nmiell@xxxxxxxxxxx>

-
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/