diff options
Diffstat (limited to 'sysdeps/libm-ieee754/w_powl.c')
-rw-r--r-- | sysdeps/libm-ieee754/w_powl.c | 5 |
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)) { |