mirror of git://sourceware.org/git/glibc.git
Fix ldbl-128ibm nextafterl, nexttowardl sign of zero result (bug 19678).
The ldbl-128ibm implementation of nextafterl / nexttowardl returns -0 in FE_DOWNWARD mode when taking the next value below the least positive subnormal, when it should return +0. This patch fixes it to check explicitly for this case. Tested for powerpc. [BZ #19678] * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (__nextafterl): Ensure +0.0 is returned when taking the next value below the least positive value.
This commit is contained in:
parent
59eda029a8
commit
7b428e744b
|
|
@ -1,3 +1,10 @@
|
||||||
|
2016-02-19 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
[BZ #19678]
|
||||||
|
* sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (__nextafterl):
|
||||||
|
Ensure +0.0 is returned when taking the next value below the least
|
||||||
|
positive value.
|
||||||
|
|
||||||
2016-02-19 Florian Weimer <fweimer@redhat.com>
|
2016-02-19 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
* sysdeps/generic/malloc-machine.h: Assume mutex_init is always
|
* sysdeps/generic/malloc-machine.h: Assume mutex_init is always
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,9 @@ long double __nextafterl(long double x, long double y)
|
||||||
math_force_eval (u); /* raise underflow flag */
|
math_force_eval (u); /* raise underflow flag */
|
||||||
__set_errno (ERANGE);
|
__set_errno (ERANGE);
|
||||||
}
|
}
|
||||||
|
/* Avoid returning -0 in FE_DOWNWARD mode. */
|
||||||
|
if (x == 0.0L)
|
||||||
|
return 0.0L;
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
/* If the high double is an exact power of two and the low
|
/* If the high double is an exact power of two and the low
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue