summaryrefslogtreecommitdiff
path: root/lib/msun/src/s_sin.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/msun/src/s_sin.c')
-rw-r--r--lib/msun/src/s_sin.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/msun/src/s_sin.c b/lib/msun/src/s_sin.c
index 4d3b9d50cb9a..af9ee628b016 100644
--- a/lib/msun/src/s_sin.c
+++ b/lib/msun/src/s_sin.c
@@ -59,7 +59,11 @@ sin(double x)
/* |x| ~< pi/4 */
ix &= 0x7fffffff;
- if(ix <= 0x3fe921fb) return __kernel_sin(x,z,0);
+ if(ix <= 0x3fe921fb) {
+ if(ix<0x3e400000) /* |x| < 2**-27 */
+ {if((int)x==0) return x;} /* generate inexact */
+ return __kernel_sin(x,z,0);
+ }
/* sin(Inf or NaN) is NaN */
else if (ix>=0x7ff00000) return x-x;