On Sat, Apr 26, 2014 at 04:44:13PM -0700, Linus Torvalds wrote: > On Sat, Apr 26, 2014 at 2:57 PM, Sam Ravnborg <sam@xxxxxxxxxxxx> wrote: > > > > Following code snippet generate these warnings: > > t.c:9:9: warning: asm output is not an lvalue > > Yeah. That code snippet is pure and utter garbage. > > Gcc has this totally insane extension that makes casts be lvalues. > It's stupid and horrid, and pointless to boot. So apparently gcc > accepts that crap. > > But it is very much total crap. > > Those casts to (USItype) are all pointless to begin with (since the > values are of that type already!) and they mean that the expression > isn't something you can assign to (lvalue). The fact that gcc accepts > code like that is an embarrassment. Thanks. When I dropped the casts to the output values the warnings were gone. Now the code is down to ~30 warnings - looks like this. math_32.c:371:17: warning: shift too big (4294967267) for type unsigned long math_32.c:428:21: warning: shift too big (63) for type unsigned long But this code is so full of macros that it is not funny :-( Sam -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html