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.26.9000-942-g5244527
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 6 Dec 2017 21:35:41 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.26.9000-942-g5244527
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 5244527da1bfa751492e146d3e6ae128c59bfcc4 (commit)
from d73fac82bedc124f00a39eba703e5a9c53e8028d (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=5244527da1bfa751492e146d3e6ae128c59bfcc4
commit 5244527da1bfa751492e146d3e6ae128c59bfcc4
Author: Joseph Myers <joseph@codesourcery.com>
Date: Wed Dec 6 21:35:20 2017 +0000
Make cacosh (0 + iNaN) return NaN + i pi/2 (bug 22561, DR#471).
As per C11 DR#471 (adjusted resolution accepted for C17), cacosh (0 +
iNaN) should return NaN +/- i pi/2, not NaN + iNaN.
This patch fixes the code accordingly. The test has hardcoded the
result with positive sign of the imaginary part (with an associated
comment), since the unspecified sign for a result other than 0 or
infinity isn't currently supported by the test infrastructure.
Tested for x86_64.
[BZ #22561]
* math/s_cacosh_template.c (M_DECL_FUNC (__cacosh)): Use pi/2 for
real part of result for argument 0 + i * NaN.
* math/libm-test-cacosh.inc (cacosh_test_data): Update expected
results for tests of 0 + i * NaN.
diff --git a/ChangeLog b/ChangeLog
index 9a57c30..b81d994 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2017-12-06 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22561]
+ * math/s_cacosh_template.c (M_DECL_FUNC (__cacosh)): Use pi/2 for
+ real part of result for argument 0 + i * NaN.
+ * math/libm-test-cacosh.inc (cacosh_test_data): Update expected
+ results for tests of 0 + i * NaN.
+
2017-12-06 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* sysdeps/alpha/fpu/libm-test-ulps: Update.
diff --git a/math/libm-test-cacosh.inc b/math/libm-test-cacosh.inc
index 518cb29..db700b9 100644
--- a/math/libm-test-cacosh.inc
+++ b/math/libm-test-cacosh.inc
@@ -46,8 +46,13 @@ static const struct test_c_c_data cacosh_test_data[] =
TEST_c_c (cacosh, plus_infty, qnan_value, plus_infty, qnan_value),
TEST_c_c (cacosh, minus_infty, qnan_value, plus_infty, qnan_value),
- TEST_c_c (cacosh, 0, qnan_value, qnan_value, qnan_value),
- TEST_c_c (cacosh, minus_zero, qnan_value, qnan_value, qnan_value),
+ /* The sign of the imaginary part of the result is unspecified
+ (see
+ <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2173.htm>),
+ but the libm-test infrastructure does not support describing
+ that. */
+ TEST_c_c (cacosh, 0, qnan_value, qnan_value, lit_pi_2_d),
+ TEST_c_c (cacosh, minus_zero, qnan_value, qnan_value, lit_pi_2_d),
TEST_c_c (cacosh, qnan_value, plus_infty, plus_infty, qnan_value),
TEST_c_c (cacosh, qnan_value, minus_infty, plus_infty, qnan_value),
diff --git a/math/s_cacosh_template.c b/math/s_cacosh_template.c
index 14f0b2a..0014fd4 100644
--- a/math/s_cacosh_template.c
+++ b/math/s_cacosh_template.c
@@ -57,7 +57,10 @@ M_DECL_FUNC (__cacosh) (CFLOAT x)
else
{
__real__ res = M_NAN;
- __imag__ res = M_NAN;
+ if (rcls == FP_ZERO)
+ __imag__ res = M_MLIT (M_PI_2);
+ else
+ __imag__ res = M_NAN;
}
}
else if (rcls == FP_ZERO && icls == FP_ZERO)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 8 ++++++++
math/libm-test-cacosh.inc | 9 +++++++--
math/s_cacosh_template.c | 5 ++++-
3 files changed, 19 insertions(+), 3 deletions(-)
hooks/post-receive
--
GNU C Library master sources