Mike Stump schrieb:
On Jan 12, 2012, at 8:44 AM, Georg-Johann Lay wrote:
Again: A test case that fails because it incorrectly assumes int is 32 bits
wide.
Ok to apply?
I'd think the testcase is more naturally:
return ~((uint32_t) (arg > -3));
That not equivalent to the proposed patch: It extends to 32 and then
inverts all bits.
Does that work for you? Anyone want to weigh in on which version is better (if
the second version works)? I think I have a preference for the form above.
- return ~(arg > -3);
+ return ~((unsigned) (arg > -3));
This inverts the 16 bits of unsigned and then zero-extends to 32 bits
(the original code sign extends to 32 bits as "arg > 3" is int (16 bits).