Re: [PATCH 02/27] drivers/net: fix sparse warnings: make do-while acompound statement

From: Junio C Hamano
Date: Thu Dec 25 2008 - 01:17:44 EST


Krzysztof Halasa <khc@xxxxxxxxx> writes:

> Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes:
> ...
>> Another example of "common vs non-common" is this:
>>
>> if (0 <= x)
>> do something..
>>
>> is something that crazy people do (sadly, one of the crazy people taught
>> the git maintainer C programming, so now even sane people do it). It's
>> crazy because it's uncommon, which means that most people have to think
>> about it A LOT MORE than about
>>
>> if (x >= 0)
>> do something..
>
> No. It's crazy not because it's uncommon, but because this is how we
> have been taught in school.
>
> I don't know reasons for "0 >= x" but I know one for
> if (0 == x)
> do something..
>
> It's because people sometimes write "=" instead of "==" and "0 = x"
> doesn't make sense to gcc.

It does not have anything to do with the assignment confusion.

It is "textual order should reflect actual order" (aka "have number line
in your head when you write your comparison conditional"):

http://thread.gmane.org/gmane.comp.version-control.git/3903/focus=4126

Even if it may make logical sense, I would not suggest using it when other
people are not familiar with the convention, though.

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