Hi Csaba,Yes, thanks. nasal demons, indeed. I forgot that the signed integer overflow causes undefined behavior unlike unsigned integer overflow, which causes wrap around.
The code
return (long)(0ul - (unsigned long)x) > 0;
does what I want.
I am impressed by clang's ability to use this undefinedness to enable
optimizations like (-x) > 0 to x < 0, which seems to be valid for all
valid arguments.
Best regards, Artem On 23-2-2015 9:44, Csaba Raduly wrote:
cast to an unsigned type to negate this value to itself
<<attachment: artem_alimarin.vcf>>
_______________________________________________ cfe-users mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users
