Subject: Re: lib/1764: __ivaliduser() contains call to abort()
To: Christos Zoulas <firstname.lastname@example.org>
From: Chris G Demetriou <Chris_G_Demetriou@BALVENIE.PDL.CS.CMU.EDU>
Date: 11/16/1995 19:58:25
> There is more code in the kernel that uses my pet peeve stylistic nono:
> value = !! expression;
> instead of:
> value = expression != 0;
> I hate to have to always have think about the double negation, but
> then I might be just dumb.
I agree with you here. the double negation does bad things to my eyes
and brain. 8-)
One bugger that i've seen at least one in the source tree is code
i = foo & bar;
if (i) ...
if foo and bar are longs, and you're on a machine where sizeof(int) !=
sizeof(long) (say, and ALPHA! 8-), and the bits which are set in both
foo and bar are in the bits which don't exist in an int... you lose.
example: foo = bar = 0x10000000;
foo & bar = 0x100000000;
(int) (foo & bar) = 0;
moral of the story: always use (foo & bar) != 0, or == 0...