
On Thu, 2009-04-02 at 15:23 +0200, Abramo Bagnara wrote:
Tobias Grosser ha scritto:
Hey Abramo,
thanks for working on this.
I see something very strange about long double that I find suspect, the binary format is said to be non iec559 conformant and this is definitely unexpected on i386.
Can you check if the attached file exits with 1 and why it fails?
It is a convert() that give a different result or std::numeric_limits<long double>::is_iec559 is false?
Yes it exits with one.
It fails in these two cases.
if (!convert(0x00000000UL, 0x0000000000000001ULL) == ...
convert returns: 3.6451995318824746025284059336194198e-4951
if (!convert(0x80000000UL, 0x0000000000000001ULL) == ...
convert returns: 3.6451995318824746025284059336194198e-4951
I attached a detailed typescript with the gdb sessions.
Tobi