aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/ldbl-128/s_sinl.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-05-29 12:00:22 -0700
committerUlrich Drepper <drepper@redhat.com>2009-05-29 12:00:22 -0700
commit7f3394bdf34e28b374e5569a7a74ddac734fb172 (patch)
tree70e5277461d3299d9706f79077843710dddbd177 /sysdeps/ieee754/ldbl-128/s_sinl.c
parentb8bb339f7d684654295aca2dedb69c2c069a7cab (diff)
downloadglibc-7f3394bdf34e28b374e5569a7a74ddac734fb172.tar
glibc-7f3394bdf34e28b374e5569a7a74ddac734fb172.tar.gz
glibc-7f3394bdf34e28b374e5569a7a74ddac734fb172.tar.bz2
glibc-7f3394bdf34e28b374e5569a7a74ddac734fb172.zip
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.
Diffstat (limited to 'sysdeps/ieee754/ldbl-128/s_sinl.c')
-rw-r--r--sysdeps/ieee754/ldbl-128/s_sinl.c10
1 files changed, 9 insertions, 1 deletions
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 <errno.h>
#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 {