(__expm1l, expm1l): Remove NO_LONG_DOUBLE aliases.
[kopensolaris-gnu/glibc.git] / sysdeps / ieee754 / ldbl-96 / s_floorl.c
index fb0c37e..7115dba 100644 (file)
@@ -60,8 +60,13 @@ static long double huge = 1.0e4930;
                if(((i0&i)|i1)==0) return x; /* x is integral */
                if(huge+x>0.0) {        /* raise inexact flag */
                    if(sx) {
-                       if (j0>0) i0 += (0x80000000)>>j0;
-                       else ++se;
+                       if (j0>0 && (i0+(0x80000000>>j0))>i0)
+                         i0 += (0x80000000)>>j0;
+                       else
+                         {
+                           i = 0x7fffffff;
+                           ++se;
+                         }
                    }
                    i0 &= (~i); i1=0;
                }