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-424-g3d8b06b
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 6 Jun 2016 22:21:32 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.23-424-g3d8b06b
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 3d8b06bc6108aa20a6591f52e7d9cbbd63c20e0a (commit)
from af5fdf5a358329161cc3960f5e54fac16dbb8063 (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=3d8b06bc6108aa20a6591f52e7d9cbbd63c20e0a
commit 3d8b06bc6108aa20a6591f52e7d9cbbd63c20e0a
Author: Joseph Myers <joseph@codesourcery.com>
Date: Mon Jun 6 22:21:11 2016 +0000
Fix dbl-64 asin (sNaN) (bug 20213).
The dbl-64 version of asin returns sNaN for sNaN arguments. This
patch fixes it to add NaN arguments to themselves so that qNaN is
returned in this case.
Tested for x86_64 and x86.
[BZ #20213]
* sysdeps/ieee754/dbl-64/e_asin.c (__ieee754_asin): Add NaN
argument to itself.
* math/libm-test.inc (asin_test_data): Add sNaN tests.
diff --git a/ChangeLog b/ChangeLog
index e207a71..b839cfb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-06-06 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #20213]
+ * sysdeps/ieee754/dbl-64/e_asin.c (__ieee754_asin): Add NaN
+ argument to itself.
+ * math/libm-test.inc (asin_test_data): Add sNaN tests.
+
2016-06-06 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* misc/Makefile (CFLAGS-pwritev.c): New variable: add cancellation
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 6981720..f9b2c8a 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -1853,6 +1853,8 @@ static const struct test_f_f_data asin_test_data[] =
TEST_f_f (asin, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (asin, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_f (asin, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_f (asin, snan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_f_f (asin, -snan_value, qnan_value, INVALID_EXCEPTION),
/* asin x == qNaN plus invalid exception for |x| > 1. */
TEST_f_f (asin, 1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
diff --git a/sysdeps/ieee754/dbl-64/e_asin.c b/sysdeps/ieee754/dbl-64/e_asin.c
index 5d5fb01..23e9e7e 100644
--- a/sysdeps/ieee754/dbl-64/e_asin.c
+++ b/sysdeps/ieee754/dbl-64/e_asin.c
@@ -323,7 +323,7 @@ __ieee754_asin(double x){
/*---------------------------- |x|>=1 -------------------------------*/
else if (k==0x3ff00000 && u.i[LOW_HALF]==0) return (m>0)?hp0.x:-hp0.x;
else
- if (k>0x7ff00000 || (k == 0x7ff00000 && u.i[LOW_HALF] != 0)) return x;
+ if (k>0x7ff00000 || (k == 0x7ff00000 && u.i[LOW_HALF] != 0)) return x + x;
else {
u.i[HIGH_HALF]=0x7ff00000;
v.i[HIGH_HALF]=0x7ff00000;
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 7 +++++++
math/libm-test.inc | 2 ++
sysdeps/ieee754/dbl-64/e_asin.c | 2 +-
3 files changed, 10 insertions(+), 1 deletions(-)
hooks/post-receive
--
GNU C Library master sources