I added this question to the FAQ: http://gcc.gnu.org/wiki/FAQ#signed_overflow
Feel free to improve the answer for the future. Cheers, Manuel. On 23 April 2010 19:35, Andrew Pinski <pins...@gmail.com> wrote: > > > Sent from my iPhone > > On Apr 23, 2010, at 10:25 AM, Heinz Riener <hrie...@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 >