[newlib-cygwin] libm/math: ensure that expf(-huge) sets FE_UNDERFLOW exception

Corinna Vinschen corinna@sourceware.org
Mon Aug 10 08:35:36 GMT 2020


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

commit 73b02710ecbea5ace2508527fbc4f939c87069cd
Author: Keith Packard via Newlib <newlib@sourceware.org>
Date:   Fri Aug 7 22:40:21 2020 -0700

    libm/math: ensure that expf(-huge) sets FE_UNDERFLOW exception
    
    It was calling __math_uflow(0) instead of __math_uflowf(0), which
    resulted in no exception being set on machines with exception support
    for float but not double.
    
    Signed-off-by: Keith Packard <keithp@keithp.com>

Diff:
---
 newlib/libm/math/ef_exp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/newlib/libm/math/ef_exp.c b/newlib/libm/math/ef_exp.c
index 0cd0c00b3..d6e25bfcd 100644
--- a/newlib/libm/math/ef_exp.c
+++ b/newlib/libm/math/ef_exp.c
@@ -64,7 +64,7 @@ P5   =  4.1381369442e-08; /* 0x3331bb4c */
 	if(sx > FLT_UWORD_LOG_MAX)
 	    return __math_oflowf(0); /* overflow */
 	if(sx < 0 && hx > FLT_UWORD_LOG_MIN)
-	    return __math_uflow(0); /* underflow */
+	    return __math_uflowf(0); /* underflow */
 	
     /* argument reduction */
 	if(hx > 0x3eb17218) {		/* if  |x| > 0.5 ln2 */


More information about the Newlib-cvs mailing list