about summary refs log tree commit diff
path: root/sysdeps/libm-ieee754/w_pow.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/libm-ieee754/w_pow.c')
-rw-r--r--sysdeps/libm-ieee754/w_pow.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sysdeps/libm-ieee754/w_pow.c b/sysdeps/libm-ieee754/w_pow.c
index ea19e1f554..1711d71bda 100644
--- a/sysdeps/libm-ieee754/w_pow.c
+++ b/sysdeps/libm-ieee754/w_pow.c
@@ -43,7 +43,10 @@
 	    if(y==0.0)
 	        return __kernel_standard(x,y,20); /* pow(0.0,0.0) */
 	    if(__finite(y)&&y<0.0)
-	        return __kernel_standard(x,y,23); /* pow(0.0,negative) */
+	      if (signbit (x) && signbit (z))
+	        return __kernel_standard(x,y,23); /* pow(-0.0,negative) */
+	      else
+	        return __kernel_standard(x,y,43); /* pow(+0.0,negative) */
 	    return z;
 	}
 	if(!__finite(z)) {