summaryrefslogtreecommitdiff
path: root/sysdeps/libm-ieee754/w_powl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/libm-ieee754/w_powl.c')
-rw-r--r--sysdeps/libm-ieee754/w_powl.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sysdeps/libm-ieee754/w_powl.c b/sysdeps/libm-ieee754/w_powl.c
index 019664e0f1..aea572d905 100644
--- a/sysdeps/libm-ieee754/w_powl.c
+++ b/sysdeps/libm-ieee754/w_powl.c
@@ -45,7 +45,10 @@
if(y==0.0)
return __kernel_standard(x,y,220); /* pow(0.0,0.0) */
if(__finite(y)&&y<0.0)
- return __kernel_standard(x,y,223); /* pow(0.0,negative) */
+ if (signbit (x) && signbit (z))
+ return __kernel_standard(x,y,223); /* pow(-0.0,negative) */
+ else
+ return __kernel_standard(x,y,243); /* pow(+0.0,negative) */
return z;
}
if(!__finitel(z)) {