[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#8545: issues with recent doprnt-related changes

From: Jason Rumney
Subject: bug#8545: issues with recent doprnt-related changes
Date: Sun, 01 May 2011 12:25:45 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Paul Eggert <address@hidden> writes:

> On 04/29/11 05:28, Richard Stallman wrote:
>> We are concerned with standards insofar as they matter in practice
>> for the convenience and reliability of our software.
> Yes, of course, I should have made that clearer.  Standards are our
> tools, not our masters.
>>> If you assign i = INT_MAX + 1, the resulting behavior is undefined.
>> The result is INT_MIN.  We don't try to support any theoretical machine
>> where this would not be so.
>    long
>    foo (char *p, int i)
>    {
>      return &p[i + 1] - &p[i];
>    }
> On typical hosts where int is 32 bits, and long and char * are
> both 64 bits, most compilers optimize that "return" statement
> to "return 1;", even when I is INT_MAX and I + 1 therefore
> overflows.

That does not mean that INT_MAX + 1 is undefined.  You are also
involving implicit casts here. Exactly where those casts happen is what
is undefined.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]