summaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/ldbl-96/s_asinhl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754/ldbl-96/s_asinhl.c')
-rw-r--r--sysdeps/ieee754/ldbl-96/s_asinhl.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/ieee754/ldbl-96/s_asinhl.c b/sysdeps/ieee754/ldbl-96/s_asinhl.c
index 5e679bd719..75e47c71ea 100644
--- a/sysdeps/ieee754/ldbl-96/s_asinhl.c
+++ b/sysdeps/ieee754/ldbl-96/s_asinhl.c
@@ -29,6 +29,7 @@ static char rcsid[] = "$NetBSD: $";
* := signl(x)*log1pl(|x| + x^2/(1 + sqrtl(1+x^2)))
*/
+#include <float.h>
#include <math.h>
#include <math_private.h>
@@ -44,6 +45,11 @@ long double __asinhl(long double x)
GET_LDOUBLE_EXP(hx,x);
ix = hx&0x7fff;
if(__builtin_expect(ix< 0x3fde, 0)) { /* |x|<2**-34 */
+ if (fabsl (x) < LDBL_MIN)
+ {
+ long double force_underflow = x * x;
+ math_force_eval (force_underflow);
+ }
if(huge+x>one) return x; /* return x inexact except 0 */
}
if(__builtin_expect(ix>0x4020,0)) { /* |x| > 2**34 */