From 373f81d17c2ab1ab9a7b37c26c1ed067174a42e5 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Sat, 26 Mar 2016 20:29:20 +0100 Subject: [PATCH] finitel: Use correct GCC builtin __builtin_isinf_sign doesn't reflect the correct return value for NaN to emulate finite function. Use __builtin_isfinite instead whichg is available since GCC 4.4 just as __builtin_isinf_sign. * libm/common/sl_finite.c (finitel): Use __builtin_isfinite. Signed-off-by: Corinna Vinschen --- newlib/libm/common/sl_finite.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/newlib/libm/common/sl_finite.c b/newlib/libm/common/sl_finite.c index 0c27b4fae..9ec629018 100644 --- a/newlib/libm/common/sl_finite.c +++ b/newlib/libm/common/sl_finite.c @@ -19,7 +19,7 @@ finitel (long double x) Some architectures for example have an 80-bit long double whereas others use 128-bits. We use macros and comiler builtin functions to avoid specific knowledge of the long double format. */ - return __builtin_isinf_sign (x) == 0; + return __builtin_isfinite (x); #endif }