On 04.02.2012, at 19:06, Howard Hinnant wrote:
> On Feb 4, 2012, at 12:52 PM, Howard Hinnant wrote:
>
>> On Feb 4, 2012, at 12:04 PM, Eli Friedman wrote:
>>>
>>> [expr.shift]p2: [...] if E1 has a signed type and non-negative value,
>>> and E1×2E2 is representable in the result type, then that is the
>>> resulting value; otherwise, the behavior is undefined.
>>>
>>> -Eli
>>
>> I see, you're point is that I've walked into undefined territory because I
>> set the sign bit on the long long? Does changing 1LL to 1ULL make the
>> compiler happy?
>
> Another question: Is there a motivation for giving the compile time behavior
> of these operations a different behavior than they would have at run time?
The runtime behavior is undefined. Do you really want the compile time behavior
to be the same?
As a side note, I think the diagnostics here could still be improved.
Sebastian
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits