From 5556d30caee170384553d2ae3247ec77a66b9ae8 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 10 Apr 2015 20:45:30 +0000 Subject: Fix strtof decimal rounding close to half least subnormal (bug 18247). Bug 18247 is an off-by-one error in strtof's determination of a decimal exponent such that any value with that decimal exponent is at most half the least subnormal and so the appropriate underflowing value for the rounding mode can be determined with no multiple-precision computations. (Whether the value is in fact safe despite the off-by-one depends on the floating-point format in question. It's wrong for float and for m68k ldbl-96 but not for other supported formats.) This patch corrects the computation of the exponent in question to be safe in general, adding a comment explaining the new computation. Tested for x86_64. [BZ #18247] * stdlib/strtod_l.c (____STRTOF_INTERNAL): Decrease minimum decimal exponent by 1. * stdlib/tst-strtod-round-data: Add more tests. * stdlib/tst-strtod-round.c (tests): Regenerated. --- NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'NEWS') diff --git a/NEWS b/NEWS index 0709bac08e..22ce5e30c6 100644 --- a/NEWS +++ b/NEWS @@ -16,7 +16,7 @@ Version 2.22 17969, 17978, 17987, 17991, 17996, 17998, 17999, 18019, 18020, 18029, 18030, 18032, 18036, 18038, 18039, 18042, 18043, 18046, 18047, 18068, 18080, 18093, 18100, 18104, 18110, 18111, 18128, 18138, 18185, 18197, - 18210, 18211. + 18210, 18211, 18247. * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors for LD and GD on x86 and x86-64, has been implemented. You will need -- cgit v1.2.3