This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug math/19032] [i386] acosh (-qNaN) spurious "invalid" exception
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Wed, 30 Sep 2015 21:45:49 +0000
- Subject: [Bug math/19032] [i386] acosh (-qNaN) spurious "invalid" exception
- Auto-submitted: auto-generated
- References: <bug-19032-131 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=19032
--- Comment #2 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
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 8c6c9236361fbc077769673c259828216403bc33 (commit)
from 93e448cbed1095c88133f2a304b1bbba72e480af (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 -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8c6c9236361fbc077769673c259828216403bc33
commit 8c6c9236361fbc077769673c259828216403bc33
Author: Joseph Myers <joseph@codesourcery.com>
Date: Wed Sep 30 21:44:42 2015 +0000
Fix i386 acosh (-qNaN) spurious "invalid" exception.
The i386 versions of acoshf and acosh raise a spurious "invalid"
exception for an argument that is a quiet NaN with the sign bit set.
The integer arithmetic to detect arguments < 1 also detects -NaN, and
then the computation 0 / 0 in that case raises the exception. This
patch fixes this by using (x - x) / (x - x) as the computation in that
case instead, which will always raise the exception for non-NaN
arguments reaching that code, but not for quiet NaN arguments.
Tested for x86_64 and x86.
[BZ #19032]
* sysdeps/i386/fpu/e_acosh.S (__ieee754_acosh): For arguments < 1,
compute result as (x - x) / (x - x) not as 0 / 0.
* sysdeps/i386/fpu/e_acoshf.S (__ieee754_acoshf): Likewise.
* math/libm-test.inc (acosh_test_data): Add another test of acosh.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
NEWS | 2 +-
math/libm-test.inc | 1 +
sysdeps/i386/fpu/e_acosh.S | 5 +++--
sysdeps/i386/fpu/e_acoshf.S | 5 +++--
5 files changed, 14 insertions(+), 5 deletions(-)
--
You are receiving this mail because:
You are on the CC list for the bug.