C++ Logo

sg12

Advanced search

Re: [ub] A proposal to define signed overflow submitted?

From: Arthur O'Dwyer <arthur.j.odwyer_at_[hidden]>
Date: Thu, 15 Feb 2018 16:16:23 -0800
On Thu, Feb 15, 2018 at 3:51 PM, Hubert Tong <
hubert.reinterpretcast_at_[hidden]> wrote:

> On Thu, Feb 15, 2018 at 6:44 PM, David Vandevoorde <daveed_at_[hidden]> wrote:
>>
>> > On Feb 15, 2018, at 5:14 PM, Myria <myriachan_at_[hidden]> wrote:
>> >
>> > I'm personally on the side of defining signed overflow as wrapping,
>> > but compiler people do have a point that it would inhibit
>> > optimizations in certain cases involving signed integers.
>>
>> My understanding is that it kills a significant optimization opportunity
>> (that is currently taken advantage of by compilers).
>>
> I also believe that it makes it harder for tooling to flag unintentional
> signed overflow.
>

Yes.

I am considering writing a response to JF's P0907 in which I would propose
"just the good bits" — namely, remove sign-magnitude and ones'-complement
from the standard, and perhaps give defined behavior to (-1 << 1) and (-1
>> 1), but conservatively retain the undefined behavior of (INT_MAX + 1)
and (1 << 100). I think such a conservative proposal might stand a chance
these days; it feels analogous to the removal of trigraphs.
Defining (INT_MAX+1 == INT_MIN), as proposed by P0907? No, that will never
happen in a million years.

However, I personally will not be at JAX, and if someone beats me to
writing this paper, I will not be upset. :)

–Arthur

Received on 2018-02-16 01:16:25