From 7f3394bdf34e28b374e5569a7a74ddac734fb172 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 29 May 2009 12:00:22 -0700 Subject: 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. --- sysdeps/ieee754/ldbl-128/s_sinl.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'sysdeps/ieee754/ldbl-128/s_sinl.c') diff --git a/sysdeps/ieee754/ldbl-128/s_sinl.c b/sysdeps/ieee754/ldbl-128/s_sinl.c index 446a75f126..dc509e72e5 100644 --- a/sysdeps/ieee754/ldbl-128/s_sinl.c +++ b/sysdeps/ieee754/ldbl-128/s_sinl.c @@ -44,6 +44,7 @@ * TRIG(x) returns trig(x) nearly rounded */ +#include #include "math.h" #include "math_private.h" @@ -66,7 +67,14 @@ return __kernel_sinl(x,z,0); /* 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 */ else { -- cgit 1.4.1