[PATCH 3/5] libm/math: Set errno to ERANGE for pow(0, -y)
Keith Packard
keithp@keithp.com
Tue Aug 4 22:22:22 GMT 2020
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(-)
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;
}
--
2.28.0
More information about the Newlib
mailing list