On Wed, Jun 15, 2011 at 19:10, Joshua Radel wrote: > Without this fix, the following statement erroneously echoed "true" (at least > on the microblaze architecture): > if itest.l 0 == 1; then echo "true"; else echo "false"; fi > > (using itest.w or itest.b worked as expected even without this change)
the subject should read something like: itest: avoid undefined C semantics with large shift values > Signed-off-by: Josh Radel <josh.radel_at_intusurg.com> your s-o-b tag is invalid. you must have a proper e-mail address here. > mode change 100644 => 100755 common/cmd_itest.c this is wrong. i guess you're editing on a windows machine or something. no .c file should be executable. > - return (l & ((1 << (w * 8)) - 1)); > + if (w < sizeof(long)) { > + return (l & ((1 << (w * 8)) - 1)); > + } else { > + return (l); > + } please add a comment as to why the sizeof(long) test is here. i dont think most people reading the code at a glance will grok what it's doing. -mike _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot