about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorPaul E. Murphy <murphyp@linux.vnet.ibm.com>2016-02-29 13:27:36 -0600
committerPaul E. Murphy <murphyp@linux.vnet.ibm.com>2016-03-31 12:14:33 -0500
commit37a4c70bd4c5c74ac562072e450dc02e8cb4c150 (patch)
treec9a631e747dcb7ca4213c93460d7e45d153a0771 /ChangeLog
parent830566307f038387ca0af3fd327706a8d1a2f595 (diff)
downloadglibc-37a4c70bd4c5c74ac562072e450dc02e8cb4c150.tar.gz
glibc-37a4c70bd4c5c74ac562072e450dc02e8cb4c150.tar.xz
glibc-37a4c70bd4c5c74ac562072e450dc02e8cb4c150.zip
Increase internal precision of ldbl-128ibm decimal printf [BZ #19853]
When the signs differ, the precision of the conversion sometimes
drops below 106 bits.  This strategy is identical to the
hexadecimal variant.

I've refactored tst-sprintf3 to enable testing a value with more
than 30 significant digits in order to demonstrate this failure
and its solution.

Additionally, this implicitly fixes a typo in the shift
quantities when subtracting from the high mantissa to compute
the difference.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog14
1 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 1a87d43e11..29dd164802 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2016-03-31  Paul E. Murphy  <murphyp@linux.vnet.ibm.com>
+
+	[BZ #19853]
+	* stdio-common/tst-sprintf3.c [TEST_N]: Refactor
+	TEST to take significant digits as second parameter.
+	[TEST]: Redefine in terms of TEST_N taking 30
+	significant digits.
+	(do_test): Add test case to demonstrate precision
+	failure in the ldbl-128ibm printf.
+	* sysdeps/ieee754/ldbl-128ibm/ldbl2pm.c:
+	(__mpn_extract_long_double): Carry 7 extra intermediate
+	bits of precision to aide computing difference when
+	signs differ.
+
 2016-03-31   H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #19881]