glibc/sysdeps/ieee754
Joseph Myers a820f9b3c0 Fix remquo spurious overflows (bug 17978).
Various remquo implementations, when computing the last three bits of
the quotient, have spurious overflows when 4 times the second argument
to remquo overflows.  These overflows can in turn cause bad results in
rounding modes where that overflow results in a finite value.  This
patch adds tests to avoid the problem multiplications in cases where
they would overflow, similar to those that control an earlier
multiplication by 8.

Tested for x86_64, x86, mips64 and powerpc.

	[BZ #17978]
	* sysdeps/ieee754/dbl-64/s_remquo.c (__remquo): Do not form
	products 4 * y and 2 * y where those would overflow.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c (__remquo):
	Likewise.
	* sysdeps/ieee754/flt-32/s_remquof.c (__remquof): Likewise.
	* sysdeps/ieee754/ldbl-128/s_remquol.c (__remquol): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_remquol.c (__remquol): Likewise.
	* sysdeps/ieee754/ldbl-96/s_remquol.c (__remquol): Likewise.
	* math/libm-test.inc (remquo_test_data): Add more tests.
2015-02-16 22:38:28 +00:00
..
bits Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dbl-64 Fix remquo spurious overflows (bug 17978). 2015-02-16 22:38:28 +00:00
flt-32 Fix remquo spurious overflows (bug 17978). 2015-02-16 22:38:28 +00:00
ldbl-64-128 Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ldbl-96 Fix remquo spurious overflows (bug 17978). 2015-02-16 22:38:28 +00:00
ldbl-128 Fix remquo spurious overflows (bug 17978). 2015-02-16 22:38:28 +00:00
ldbl-128ibm Fix remquo spurious overflows (bug 17978). 2015-02-16 22:38:28 +00:00
ldbl-opt Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ieee754.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
k_standard.c Split __kernel_standard* functions (fixes bug 17724). 2014-12-22 18:45:50 +00:00
k_standardf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
k_standardl.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Makefile
s_lib_version.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
s_matherr.c
s_signgam.c
support.c Fix leading whitespaces. 2013-06-06 20:36:07 +02:00