summaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c')
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c b/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c
index 515aa1ef5b..e29f7d60a3 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c
@@ -27,6 +27,7 @@ static char rcsid[] = "$NetBSD: $";
#include <errno.h>
#include <float.h>
#include <math.h>
+#include <math-barriers.h>
#include <math_private.h>
#include <math_ldbl_opt.h>
@@ -87,6 +88,9 @@ long double __nextafterl(long double x, long double y)
math_force_eval (u); /* raise underflow flag */
__set_errno (ERANGE);
}
+ /* Avoid returning -0 in FE_DOWNWARD mode. */
+ if (x == 0.0L)
+ return 0.0L;
return x;
}
/* If the high double is an exact power of two and the low