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

Corinna Vinschen vinschen@redhat.com
Mon Aug 10 09:30:49 GMT 2020


On Aug  7 22:40, Keith Packard via Newlib wrote:
> 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>
> ---
>  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 */ 
> -- 
> 2.28.0

Pushed.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat



More information about the Newlib mailing list