This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: PATCH: New test for breakage from real.c rewrite on i386-unknown-freebsd
- From: Richard Henderson <rth at redhat dot com>
- To: rittle at labs dot mot dot com
- Cc: libstdc++ at gcc dot gnu dot org
- Date: Wed, 18 Sep 2002 22:03:19 -0700
- Subject: Re: PATCH: New test for breakage from real.c rewrite on i386-unknown-freebsd
- References: <200209190435.g8J4ZG41097395@latour.rsch.comm.mot.com>
On Wed, Sep 18, 2002 at 11:35:16PM -0500, Loren James Rittle wrote:
> Before recent real change:
>
> (gdb) print epsilon
> $1 = 2.2204460492503130808472633361816406e-16
> (gdb) print/x (long double)1
> $2 = 0x082a3fff8000000000000000
> (gdb) print/x (1+epsilon)
> $3 = 0x082a3fff8000000000000800
> (gdb) print extrema_max
> $4 = 1.7976931348623157081452742373170436e+308
> (gdb) print/x extrema_max
> $5 = 0x000043fefffffffffffff800
These values are only correct for 64-bit double, not 80-bit long double.
The compiler is completely unprepared for you to do
#define __glibcpp_long_double_bits __glibcpp_double_bits
without doing
#define LONG_DOUBLE_TYPE_SIZE 64
I.e. you've got a mismatch here in your definition of long double.
Address that (one way or the other) and things will work.
r~