mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-26 04:31:03 +00:00
1a84c3d6d4
Bug 16564 is spurious overflow of log1pl (LDBL_MAX) in FE_UPWARD mode, resulting from log1pl adding 1 to its argument (for arguments not close to 0), which overflows in that mode. This patch fixes this by avoiding adding 1 to large arguments (precisely what counts as large depends on the floating-point format). Tested x86_64 and x86, and spot-checked log1pl tests on mips64 and powerpc64. [BZ #16564] * sysdeps/i386/fpu/s_log1pl.S (__log1pl): Do not add 1 to positive arguments with exponent 65 or above. * sysdeps/ieee754/ldbl-128/s_log1pl.c (__log1pl): Do not add 1 to arguments 0x1p113L or above. * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Do not add 1 to arguments 0x1p107L or above. * sysdeps/x86_64/fpu/s_log1pl.S (__log1pl): Do not add 1 to positive arguments with exponent 65 or above. * math/auto-libm-test-in: Add more tests of log1p. * math/auto-libm-test-out: Regenerated. |
||
---|---|---|
.. | ||
bits | ||
dbl-64 | ||
flt-32 | ||
ldbl-64-128 | ||
ldbl-96 | ||
ldbl-128 | ||
ldbl-128ibm | ||
ldbl-opt | ||
ieee754.h | ||
k_standard.c | ||
Makefile | ||
s_lib_version.c | ||
s_matherr.c | ||
s_signgam.c | ||
support.c |