This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: New test for breakage from real.c rewrite on i386-unknown-freebsd


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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]