
Tobias Grosser wrote:
On Thu, 2009-04-02 at 15:23 +0200, Abramo Bagnara wrote:
Tobias Grosser ha scritto:
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.
Dear Tobias,
the output with gdb is not precise enough to see what happens. Can you please compile and run the attached program and post the output? Thanks,
Roberto