This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc 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]

[Bug math/18980] i386 libm functions return with excess range and precision


https://sourceware.org/bugzilla/show_bug.cgi?id=18980

--- Comment #1 from Joseph Myers <jsm28 at gcc dot gnu.org> ---
Example failures for float:

Failure: cosh (-0x2.c5d374p+12): Exception "Overflow" not set

Failure: Test: cosh_downward (-0x2.c5d374p+12)
Result:
 is:          inf   inf
 should be:   3.40282346638528859811e+38   0x1.fffffe00000000000000p+127

I believe the mechanism is that previously the wrapper would call __finitef,
thereby forcing a return with excess range to overflow.  Now, isfinite, without
-fexcess-precision=standard, knows nothing about the excess precision, compares
with FLT_MAX and deduces independent of the rounding mode that the value with
excess precision is infinite, so resulting in __kernel_standard_f returning an
infinity (also without overflow exception resulting) independent of the
rounding mode.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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