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-453-gf00faa4
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 9 Jun 2016 18:04:58 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.23-453-gf00faa4
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 f00faa4a43706d85ad8d4d2c970d3f52f0f63bfb (commit)
from b7519f61fe2c57981c69c0c65996968b9a4d9b62 (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=f00faa4a43706d85ad8d4d2c970d3f52f0f63bfb
commit f00faa4a43706d85ad8d4d2c970d3f52f0f63bfb
Author: Joseph Myers <joseph@codesourcery.com>
Date: Thu Jun 9 18:04:30 2016 +0000
Fix i386/x86_64 log2l (sNaN) (bug 20235).
The i386/x86_64 versions of log2l return sNaN for sNaN input. This
patch fixes them to add NaN inputs to themselves so that qNaN is
returned in this case.
Tested for x86_64 and x86.
[BZ #20235]
* sysdeps/i386/fpu/e_log2l.S (__ieee754_log2l): Add NaN input to
itself.
* sysdeps/x86_64/fpu/e_log2l.S (__ieee754_log2l): Likewise.
* math/libm-test.inc (log2_test_data): Add sNaN tests.
diff --git a/ChangeLog b/ChangeLog
index 81192ce..c0a3278 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2016-06-09 Joseph Myers <joseph@codesourcery.com>
+ [BZ #20235]
+ * sysdeps/i386/fpu/e_log2l.S (__ieee754_log2l): Add NaN input to
+ itself.
+ * sysdeps/x86_64/fpu/e_log2l.S (__ieee754_log2l): Likewise.
+ * math/libm-test.inc (log2_test_data): Add sNaN tests.
+
[BZ #20234]
* sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Add positive
infinity or NaN input to itself.
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 4371c4c..2df6f29 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -9076,6 +9076,8 @@ static const struct test_f_f_data log2_test_data[] =
TEST_f_f (log2, plus_infty, plus_infty, ERRNO_UNCHANGED),
TEST_f_f (log2, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_f (log2, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_f (log2, snan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_f_f (log2, -snan_value, qnan_value, INVALID_EXCEPTION),
AUTO_TESTS_f_f (log2),
};
diff --git a/sysdeps/i386/fpu/e_log2l.S b/sysdeps/i386/fpu/e_log2l.S
index 0f5f7e5..73e62ea 100644
--- a/sysdeps/i386/fpu/e_log2l.S
+++ b/sysdeps/i386/fpu/e_log2l.S
@@ -64,6 +64,7 @@ ENTRY(__ieee754_log2l)
3: jp 4b // in case x is ±Inf
fstp %st(1)
fstp %st(1)
+ fadd %st(0)
ret
END (__ieee754_log2l)
strong_alias (__ieee754_log2l, __log2l_finite)
diff --git a/sysdeps/x86_64/fpu/e_log2l.S b/sysdeps/x86_64/fpu/e_log2l.S
index a063255..023ec29 100644
--- a/sysdeps/x86_64/fpu/e_log2l.S
+++ b/sysdeps/x86_64/fpu/e_log2l.S
@@ -63,6 +63,7 @@ ENTRY(__ieee754_log2l)
jnz 4b // in case x is ±Inf
fstp %st(1)
fstp %st(1)
+ fadd %st(0)
ret
END (__ieee754_log2l)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
math/libm-test.inc | 2 ++
sysdeps/i386/fpu/e_log2l.S | 1 +
sysdeps/x86_64/fpu/e_log2l.S | 1 +
4 files changed, 10 insertions(+), 0 deletions(-)
hooks/post-receive
--
GNU C Library master sources