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
>

Reply via email to