[3/5] libm/math: Set errno to ERANGE for pow(0, -y)

Message ID 20200804222224.3061225-4-keithp@keithp.com
State New
Headers show
Series
  • errno changes for libm
Related show

Commit Message

Eshan dhawan via Newlib Aug. 4, 2020, 10:22 p.m.
POSIX says that the errno for pow(0, -y) should be ERANGE instead of
EDOM.

https://pubs.opengroup.org/onlinepubs/9699919799/functions/pow.html

Signed-off-by: Keith Packard <keithp@keithp.com>

---
 newlib/libm/math/w_pow.c  | 3 +--
 newlib/libm/math/wf_pow.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

-- 
2.28.0

Patch

diff --git a/newlib/libm/math/w_pow.c b/newlib/libm/math/w_pow.c
index 6e953360a..d8556a170 100644
--- a/newlib/libm/math/w_pow.c
+++ b/newlib/libm/math/w_pow.c
@@ -84,8 +84,7 @@  PORTABILITY
 	    }
 	    if(finite(y)&&y<0.0) {
 		/* 0**neg */
-		errno = EDOM;
-		return -HUGE_VAL;
+		errno = ERANGE;
 	    }
 	    return z;
 	}
diff --git a/newlib/libm/math/wf_pow.c b/newlib/libm/math/wf_pow.c
index 73648b83f..e551e6b48 100644
--- a/newlib/libm/math/wf_pow.c
+++ b/newlib/libm/math/wf_pow.c
@@ -50,8 +50,7 @@ 
 	    }
 	    if(finitef(y)&&y<0.0f) {
 		/* 0**neg */
-		errno = EDOM;
-		return -HUGE_VALF;
+		errno = ERANGE;
 	    }
 	    return z;
 	}