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

Corinna Vinschen corinna@sourceware.org
Wed Aug 5 20:43:16 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=98a4f8de47602e3aaff50715d53fc49fb43d0d9e

commit 98a4f8de47602e3aaff50715d53fc49fb43d0d9e
Author: Keith Packard via Newlib <newlib@sourceware.org>
Date:   Tue Aug 4 15:22:22 2020 -0700

    libm/math: Set errno to ERANGE for pow(0, -y)
    
    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>

Diff:
---
 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;
 	}


More information about the Newlib-cvs mailing list