mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-25 02:33:36 +08:00
Fix errno for boundary conditions in 128-bit long double.
Similar to the changes which went already in for the other formats, follow POSIX rules for errno.
This commit is contained in:
parent
b8bb339f7d
commit
7f3394bdf3
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
|||||||
|
2009-05-29 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/ieee754/ldbl-128/s_expm1l.c: Include <errno.h>.
|
||||||
|
(__expm1l): Set errno to ERANGE on overflow.
|
||||||
|
* sysdeps/ieee754/ldbl-128/s_tanl.c: Include <errno.h>.
|
||||||
|
(__tanl): Set errno to EDOM for ±Inf.
|
||||||
|
* sysdeps/ieee754/ldbl-128/s_cosl.c: Include <errno.h>.
|
||||||
|
(__cosl): Set errno to EDOM for ±Inf.
|
||||||
|
* sysdeps/ieee754/ldbl-128/s_sinl.c: Include <errno.h>.
|
||||||
|
(__sinl): Set errno to EDOM for ±Inf.
|
||||||
|
|
||||||
2009-05-29 Jakub Jelinek <jakub@redhat.com>
|
2009-05-29 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* sysdeps/s390/s390-32/__longjmp.c (__longjmp): If CHECK_SP is
|
* sysdeps/s390/s390-32/__longjmp.c (__longjmp): If CHECK_SP is
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
* TRIG(x) returns trig(x) nearly rounded
|
* TRIG(x) returns trig(x) nearly rounded
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
#include "math_private.h"
|
#include "math_private.h"
|
||||||
|
|
||||||
@ -66,7 +67,14 @@
|
|||||||
return __kernel_cosl(x,z);
|
return __kernel_cosl(x,z);
|
||||||
|
|
||||||
/* cos(Inf or NaN) is NaN */
|
/* cos(Inf or NaN) is NaN */
|
||||||
else if (ix>=0x7fff000000000000LL) return x-x;
|
else if (ix>=0x7fff000000000000LL) {
|
||||||
|
if (ix == 0x7fff000000000000LL) {
|
||||||
|
GET_LDOUBLE_LSW64(n,x);
|
||||||
|
if (n == 0)
|
||||||
|
__set_errno (EDOM);
|
||||||
|
}
|
||||||
|
return x-x;
|
||||||
|
}
|
||||||
|
|
||||||
/* argument reduction needed */
|
/* argument reduction needed */
|
||||||
else {
|
else {
|
||||||
|
@ -53,6 +53,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
#include "math_private.h"
|
#include "math_private.h"
|
||||||
|
|
||||||
@ -121,7 +122,10 @@ __expm1l (long double x)
|
|||||||
|
|
||||||
/* Overflow. */
|
/* Overflow. */
|
||||||
if (x > maxlog)
|
if (x > maxlog)
|
||||||
return (big * big);
|
{
|
||||||
|
__set_errno (ERANGE);
|
||||||
|
return (big * big);
|
||||||
|
}
|
||||||
|
|
||||||
/* Minimum value. */
|
/* Minimum value. */
|
||||||
if (x < minarg)
|
if (x < minarg)
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
* TRIG(x) returns trig(x) nearly rounded
|
* TRIG(x) returns trig(x) nearly rounded
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
#include "math_private.h"
|
#include "math_private.h"
|
||||||
|
|
||||||
@ -66,7 +67,14 @@
|
|||||||
return __kernel_sinl(x,z,0);
|
return __kernel_sinl(x,z,0);
|
||||||
|
|
||||||
/* sin(Inf or NaN) is NaN */
|
/* sin(Inf or NaN) is NaN */
|
||||||
else if (ix>=0x7fff000000000000LL) return x-x;
|
else if (ix>=0x7fff000000000000LL) {
|
||||||
|
if (ix == 0x7fff000000000000LL) {
|
||||||
|
GET_LDOUBLE_LSW64(n,x);
|
||||||
|
if (n == 0)
|
||||||
|
__set_errno (EDOM);
|
||||||
|
}
|
||||||
|
return x-x;
|
||||||
|
}
|
||||||
|
|
||||||
/* argument reduction needed */
|
/* argument reduction needed */
|
||||||
else {
|
else {
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
* TRIG(x) returns trig(x) nearly rounded
|
* TRIG(x) returns trig(x) nearly rounded
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
#include "math_private.h"
|
#include "math_private.h"
|
||||||
|
|
||||||
@ -65,7 +66,14 @@
|
|||||||
if(ix <= 0x3ffe921fb54442d1LL) return __kernel_tanl(x,z,1);
|
if(ix <= 0x3ffe921fb54442d1LL) return __kernel_tanl(x,z,1);
|
||||||
|
|
||||||
/* tanl(Inf or NaN) is NaN */
|
/* tanl(Inf or NaN) is NaN */
|
||||||
else if (ix>=0x7fff000000000000LL) return x-x; /* NaN */
|
else if (ix>=0x7fff000000000000LL) {
|
||||||
|
if (ix == 0x7fff000000000000LL) {
|
||||||
|
GET_LDOUBLE_LSW64(n,x);
|
||||||
|
if (n == 0)
|
||||||
|
__set_errno (EDOM);
|
||||||
|
}
|
||||||
|
return x-x; /* NaN */
|
||||||
|
}
|
||||||
|
|
||||||
/* argument reduction needed */
|
/* argument reduction needed */
|
||||||
else {
|
else {
|
||||||
|
Loading…
Reference in New Issue
Block a user