From: Gabriel F. T. Gomes Date: Wed, 23 Aug 2017 13:16:54 +0000 (-0300) Subject: Fix the C++ version of issignaling when __NO_LONG_DOUBLE_MATH is defined X-Git-Tag: glibc-2.27~1078 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d7b66f66cb223e899a7ebc0f4c20f13e711c9e0;p=thirdparty%2Fglibc.git Fix the C++ version of issignaling when __NO_LONG_DOUBLE_MATH is defined When __NO_LONG_DOUBLE_MATH is defined, __issignalingl is not available, thus issignaling with long double argument should call __issignaling, instead. Tested for powerpc64le. * math/math.h [defined __cplusplus] (issignaling): In the long double case, call __issignalingl only if __NO_LONG_DOUBLE_MATH is not defined. Call __issignaling, otherwise. --- diff --git a/ChangeLog b/ChangeLog index 3521ed197d8..a6283448823 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2017-08-24 Gabriel F. T. Gomes + + * math/math.h [defined __cplusplus] (issignaling): In the long + double case, call __issignalingl only if __NO_LONG_DOUBLE_MATH + is not defined. Call __issignaling, otherwise. + 2017-08-24 Adhemerval Zanella * sysdeps/unix/make-syscalls.sh: Remove cancellable tagging for diff --git a/math/math.h b/math/math.h index b5d6c43fcf5..5acbe889068 100644 --- a/math/math.h +++ b/math/math.h @@ -486,7 +486,15 @@ enum extern "C++" { inline int issignaling (float __val) { return __issignalingf (__val); } inline int issignaling (double __val) { return __issignaling (__val); } -inline int issignaling (long double __val) { return __issignalingl (__val); } +inline int +issignaling (long double __val) +{ +# ifdef __NO_LONG_DOUBLE_MATH + return __issignaling (__val); +# else + return __issignalingl (__val); +# endif +} # if __HAVE_DISTINCT_FLOAT128 inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); } # endif