summary refs log tree commit diff
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)) {