|
Boost : |
From: Matthias Troyer (troyer_at_[hidden])
Date: 2003-02-05 14:52:45
On Wednesday, February 5, 2003, at 08:22 PM, Dave Abrahams wrote:
> On Wednesday, February 05, 2003 2:04 PM [GMT+1=CET],
> Matthias Troyer <troyer_at_[hidden]> wrote:
>>
>> Actually there were two problems. One was the one you mentioned above.
>> The other was that we needed either a masking to 32 bits or the type
>> made unsigned to prevent an optimization (integer calculations done on
>> FPU), which led to non-conforming overflow behavior.
>
>
> I never got very clear feedback from your guys about what was
> happening,
> but:
we very quite confused for a long time, but it is becoming clear now.
>
> If the calculations are only done in the FPU when the integers are
> signed,
> then the overflow behavior is conforming, since signed integer
> overflow is
> undefined behavior.
Great, then the compiler is actually conforming and the jam hashing
code was incorrect with signed integers. The SV1 uses the FPU only for
signed integers.
I believe I need to go and buy a copy of the C standard some time.
Thanks,
Matthias
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk