about summary refs log tree commit diff
path: root/sysdeps/ieee754/flt-32/s_asinhf.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754/flt-32/s_asinhf.c')
-rw-r--r--sysdeps/ieee754/flt-32/s_asinhf.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/ieee754/flt-32/s_asinhf.c b/sysdeps/ieee754/flt-32/s_asinhf.c
index b7fa2b4443..697faa843c 100644
--- a/sysdeps/ieee754/flt-32/s_asinhf.c
+++ b/sysdeps/ieee754/flt-32/s_asinhf.c
@@ -13,6 +13,7 @@
  * ====================================================
  */
 
+#include <float.h>
 #include <math.h>
 #include <math_private.h>
 
@@ -29,6 +30,11 @@ __asinhf(float x)
 	GET_FLOAT_WORD(hx,x);
 	ix = hx&0x7fffffff;
 	if(__builtin_expect(ix< 0x38000000, 0)) {	/* |x|<2**-14 */
+	    if (fabsf (x) < FLT_MIN)
+	      {
+		float force_underflow = x * x;
+		math_force_eval (force_underflow);
+	      }
 	    if(huge+x>one) return x;	/* return x inexact except 0 */
 	}
 	if(__builtin_expect(ix>0x47000000, 0)) {	/* |x| > 2**14 */