From: Adhemerval Zanella Date: Fri, 1 Apr 2022 20:03:34 +0000 (-0300) Subject: x86: Do not use __builtin_isinf_sign on clang X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=67e9dabe5e46f6a8bb02908433383c70534771fc;p=thirdparty%2Fglibc.git x86: Do not use __builtin_isinf_sign on clang clang does not handle pseudo normal numbers, It fixes the regression on test-ldouble-isinf when built with clang: Failure: isinf (pseudo_zero): Exception "Invalid operation" set Failure: isinf (pseudo_inf): Exception "Invalid operation" set Failure: isinf (pseudo_qnan): Exception "Invalid operation" set Failure: isinf (pseudo_snan): Exception "Invalid operation" set Failure: isinf (pseudo_unnormal): Exception "Invalid operation" set Failure: isinf_downward (pseudo_zero): Exception "Invalid operation" set Failure: isinf_downward (pseudo_inf): Exception "Invalid operation" set Failure: isinf_downward (pseudo_qnan): Exception "Invalid operation" set Failure: isinf_downward (pseudo_snan): Exception "Invalid operation" set Failure: isinf_downward (pseudo_unnormal): Exception "Invalid operation" set Failure: isinf_towardzero (pseudo_zero): Exception "Invalid operation" set Failure: isinf_towardzero (pseudo_inf): Exception "Invalid operation" set Failure: isinf_towardzero (pseudo_qnan): Exception "Invalid operation" set Failure: isinf_towardzero (pseudo_snan): Exception "Invalid operation" set Failure: isinf_towardzero (pseudo_unnormal): Exception "Invalid operation" set Failure: isinf_upward (pseudo_zero): Exception "Invalid operation" set Failure: isinf_upward (pseudo_inf): Exception "Invalid operation" set Failure: isinf_upward (pseudo_qnan): Exception "Invalid operation" set Failure: isinf_upward (pseudo_snan): Exception "Invalid operation" set Failure: isinf_upward (pseudo_unnormal): Exception "Invalid operation" set --- diff --git a/math/math.h b/math/math.h index a26a5c530b..bd2025b5f7 100644 --- a/math/math.h +++ b/math/math.h @@ -999,7 +999,8 @@ enum (__builtin_types_compatible_p (__typeof (x), _Float128) \ ? __isinff128 (x) : __builtin_isinf_sign (x)) # elif (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \ - || __glibc_clang_prereq (3,7) + || __glibc_clang_prereq (3,7) \ + && __FP_BUILTIN_DENORMAL # define isinf(x) __builtin_isinf_sign (x) # else # define isinf(x) __MATH_TG ((x), __isinf, (x))