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).

Reply via email to