O2 and Overflow
Andrew Pinski
pinskia@gmail.com
Fri Apr 23 17:45:00 GMT 2010
Sent from my iPhone
On Apr 23, 2010, at 10:25 AM, Heinz Riener <hriener@student.tugraz.at>
wrote:
> Dear all,
>
> I'm using the native GCC version[1] of my GNU/Linux distribution. I
> wonder whether GCC's optimization behavior is in the following case
> correct. Consider the following two programs:
>
> (1)
> int test(int n) {
> if (n > 0)
> return 1;
> return 0;
> }
>
> (2)
> int test(int n) {
> if (2*n > 0)
> return 1;
> return 0;
> }
>
> After compiling both with the flags '-c -O2 -pedantic -Wall', they
> result in the same object file. I expected the object files to be
> different. (The second program may overflow, the first program does
> not.) Please, point me to the right direction.
Signed interger overflow is undefined. Use -fwrapv or -fno-strict-
overflow if you want gcc to behave as signed interger overflow being
defined.
>
> [1]: gcc (GCC) 4.4.3 20100316 (prerelease)
>
> Thanks,
> Heinz
More information about the Gcc
mailing list