This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.23-442-g09096b3
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 8 Jun 2016 22:59:45 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.23-442-g09096b3
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 09096b36152dca599ca781b7299d0d662ca74ce7 (commit)
from df179d88080ad7a733edccc655cf5f6bbec6f8fc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=09096b36152dca599ca781b7299d0d662ca74ce7
commit 09096b36152dca599ca781b7299d0d662ca74ce7
Author: Joseph Myers <joseph@codesourcery.com>
Date: Wed Jun 8 22:59:18 2016 +0000
Fix i386/x86_64 log10l (sNaN) (bug 20228).
The i386/x86_64 versions of log10l return sNaN for sNaN input. This
patch fixes them to add a NaN input to itself so that qNaN is returned
in this case.
Tested for x86_64 and x86.
[BZ #20228]
* sysdeps/i386/fpu/e_log10l.S (__ieee754_log10l): Add NaN input to
itself.
* sysdeps/x86_64/fpu/e_log10l.S (__ieee754_log10l): Likewise.
* math/libm-test.inc (log10_test_data): Add sNaN tests.
diff --git a/ChangeLog b/ChangeLog
index 82c698d..42d296c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2016-06-08 Joseph Myers <joseph@codesourcery.com>
+ [BZ #20228]
+ * sysdeps/i386/fpu/e_log10l.S (__ieee754_log10l): Add NaN input to
+ itself.
+ * sysdeps/x86_64/fpu/e_log10l.S (__ieee754_log10l): Likewise.
+ * math/libm-test.inc (log10_test_data): Add sNaN tests.
+
[BZ #20227]
* sysdeps/i386/fpu/e_logl.S (__ieee754_logl): Add NaN input to
itself.
diff --git a/math/libm-test.inc b/math/libm-test.inc
index c16009b..e2a4ed3 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -9026,6 +9026,8 @@ static const struct test_f_f_data log10_test_data[] =
TEST_f_f (log10, plus_infty, plus_infty, ERRNO_UNCHANGED),
TEST_f_f (log10, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_f (log10, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_f (log10, snan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_f_f (log10, -snan_value, qnan_value, INVALID_EXCEPTION),
AUTO_TESTS_f_f (log10),
};
diff --git a/sysdeps/i386/fpu/e_log10l.S b/sysdeps/i386/fpu/e_log10l.S
index 45b9c6d..9326b19 100644
--- a/sysdeps/i386/fpu/e_log10l.S
+++ b/sysdeps/i386/fpu/e_log10l.S
@@ -65,6 +65,7 @@ ENTRY(__ieee754_log10l)
3: jp 4b // in case x is ±Inf
fstp %st(1)
fstp %st(1)
+ fadd %st(0)
ret
END(__ieee754_log10l)
strong_alias (__ieee754_log10l, __log10l_finite)
diff --git a/sysdeps/x86_64/fpu/e_log10l.S b/sysdeps/x86_64/fpu/e_log10l.S
index 8fa6164..e0cb88e 100644
--- a/sysdeps/x86_64/fpu/e_log10l.S
+++ b/sysdeps/x86_64/fpu/e_log10l.S
@@ -64,6 +64,7 @@ ENTRY(__ieee754_log10l)
jnz 4b // in case x is ±Inf
fstp %st(1)
fstp %st(1)
+ fadd %st(0)
ret
END(__ieee754_log10l)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
math/libm-test.inc | 2 ++
sysdeps/i386/fpu/e_log10l.S | 1 +
sysdeps/x86_64/fpu/e_log10l.S | 1 +
4 files changed, 10 insertions(+), 0 deletions(-)
hooks/post-receive
--
GNU C Library master sources