Re: 2.4.21-pre4 comparison bugs

J.A. Magallon (jamagallon@able.es)
Sun, 9 Feb 2003 00:25:10 +0100


On 2003.02.08 Oleg Drokin wrote:
> Hello!
>
> Thanks to whoever mentioned "gcc -W", it's *sweet* ;)
> Looking at it's output I found few cases where error checking
> does not work.
> Though nothing too serious it seems (except maybe IDE setup-pci stuff,
> I just do not know about that, and may be in that case
> we actually want to change all the functions to return signed
> value, though my fix is certainly less intrusive ;) )
> Most of the patched stuff in here assigns signed value to unsigned
> variable and then checks if it is less than zero which does not work
> for obvious reasons ;)
> I decided taht in most cases simple casting to int would be best
> and least intrusive resolution of a problem.
> The only exception is fs/isofs/inode.c, there we have unsigned int
> (so it is unsigned not depending on any arch) and so '> some num'
> stuff will also check for former negative numbers anyway. So
> I removed one extra comparison in that case.
> See the patch below.
>

So:

unsgined f()
{
return -1;
}

if ((int)f()<0)
??

Wouldn't you get killed by some kind of bit/sign extension in the return ?
Just to be sure, probably the answer is just 'go learn C internals'...

-- 
J.A. Magallon <jamagallon@able.es>      \                 Software is like sex:
werewolf.able.es                         \           It's better when it's free
Mandrake Linux release 9.1 (Cooker) for i586
Linux 2.4.21-pre4-jam1 (gcc 3.2.1 (Mandrake Linux 9.1 3.2.1-5mdk))
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/