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
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