diff options
author | Joseph Myers <joseph@codesourcery.com> | 2013-12-04 14:39:37 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2013-12-04 14:39:37 +0000 |
commit | 699ff83712b5796ac50ed332d9dad55d38450e81 (patch) | |
tree | 8e2470bbcf5d1d18813aa9d063771b083c8667af /sysdeps/ieee754/ldbl-96/e_jnl.c | |
parent | 5b118558f9fb0620508d51c34c2cb5ba4f1f01c2 (diff) | |
download | glibc-699ff83712b5796ac50ed332d9dad55d38450e81.tar.gz glibc-699ff83712b5796ac50ed332d9dad55d38450e81.tar.xz glibc-699ff83712b5796ac50ed332d9dad55d38450e81.zip |
Fix Bessel function error handling (bug 6807, bug 15901).
Diffstat (limited to 'sysdeps/ieee754/ldbl-96/e_jnl.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_jnl.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sysdeps/ieee754/ldbl-96/e_jnl.c b/sysdeps/ieee754/ldbl-96/e_jnl.c index 58a9107f7d..fa8e27efec 100644 --- a/sysdeps/ieee754/ldbl-96/e_jnl.c +++ b/sysdeps/ieee754/ldbl-96/e_jnl.c @@ -302,7 +302,8 @@ __ieee754_ynl (int n, long double x) if (__builtin_expect ((ix == 0x7fff) && ((i0 & 0x7fffffff) != 0), 0)) return x + x; if (__builtin_expect ((ix | i0 | i1) == 0, 0)) - return -HUGE_VALL + x; /* -inf and overflow exception. */ + /* -inf or inf and divide-by-zero exception. */ + return ((n < 0 && (n & 1) != 0) ? 1.0L : -1.0L) / 0.0L; if (__builtin_expect (se & 0x8000, 0)) return zero / (zero * x); sign = 1; |