From 1c7a4a51a30dd001c81630156458ee55fc2e883c Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 6 Feb 2015 15:44:07 +0000 Subject: soft-fp: Fix _FP_FMA when product is zero and third argument is finite (bug 17932). soft-fp's _FP_FMA fails to set the result's exponent for cases where the result of the multiplication is 0, yielding incorrect (arbitrary, depending on uninitialized values) results for those cases. This affects libm for architectures using soft-fp to implement fma. This patch adds the exponent setting and tests for this case. Tested for ARM soft-float (which uses soft-fp fma), x86_64 and x86 (to verify not introducing new libm test failures there). (This bug showed up in testing my patch to move the Linux kernel to current soft-fp. math/Makefile has "override CFLAGS += -Wno-uninitialized" which would have stopped compiler warnings from showing up this problem, although I wouldn't be surprised if removing that shows spurious warnings from this code, if the compiler fails to follow that various cases where the exponent is uninitialized don't need it initialized because the class is set to a value meaning the uninitialized exponent isn't used.) [BZ #17932] * soft-fp/op-common.h (_FP_FMA): Set exponent of result in case where multiplication results in zero and third argument is finite and nonzero. * math/auto-libm-test-in: Add more tests of fma. * math/auto-libm-test-out: Regenerated. --- NEWS | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'NEWS') diff --git a/NEWS b/NEWS index 617cdbb605..1f839bce2a 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,12 @@ See the end for copying conditions. Please send GNU C library bug reports via using `glibc' in the "product" field. +Version 2.22 + +* The following bugs are resolved with this release: + + 17932. + Version 2.21 * The following bugs are resolved with this release: -- cgit v1.2.3