Integer overflow and underflow semantics

Paul D. Anderson paul.d.removethis.anderson at comcast.andthis.net
Fri May 18 13:01:14 PDT 2012


On Friday, 18 May 2012 at 19:59:01 UTC, Paul D. Anderson wrote:
> On Sunday, 6 May 2012 at 16:27:34 UTC, Alex Rønne Petersen 
> wrote:
>> On 05-05-2012 06:57, Alex Rønne Petersen wrote:
>>> Hi,
>>>
>>> I don't think the language really makes it clear whether 
>>> overflows and
>>> underflows are well-defined. Do we guarantee that for any 
>>> integral type
>>> T, T.max + 1 == T.min and T.min - 1 == T.max?
>>>
>>> This is relevant in particular for GDC and LDC since they 
>>> target a lot
>>> of weird architectures.
>>>
>>
>> Can anyone give a definitive answer to this or at least 
>> confirm that it is an open issue?
>
> I don't have the reference at the moment but the C99(?) 
> standard requires wraparound behavior by UNSIGNED integer 
> values. I don't know if there is an equivalent requirement for 
> signed values.

Sorry, it's C++:

3.9.1/4
Unsigned integers, declared unsigned, shall obey the laws of 
arithmetic modulo 2n where n is the number of bits in the value 
representation of that particular size of integer.

Paul


More information about the Digitalmars-d mailing list