Re: [announce] smatch 1.54

From: Roland Dreier
Date: Wed Jun 02 2010 - 15:20:54 EST


Hi Dan,

I'm trying out smatch on some kernel code now. Neat stuff, but I'm
seeing some puzzling false positives relating to signedness. Basically,
if I have code like:

__be16 foo;
__u16 bar;

foo = cpu_to_be16(128);
bar = cpu_to_be16(128);

then the first line warns about 32768 not fitting into foo, but while
the second line doesn't warn, even though __be16 is just a __bitwise__
__u16. I don't understand the sparse / smatch internals so I'm not sure
why applying __bitwise__ apparently kills the unsigned modifier. Maybe
it's an easy fix for you? Otherwise I'll poke at it a little later.

Thanks,
Roland
--
Roland Dreier <rolandd@xxxxxxxxx> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
--
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/