]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix the C++ version of issignaling when __NO_LONG_DOUBLE_MATH is defined
authorGabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
Wed, 23 Aug 2017 13:16:54 +0000 (10:16 -0300)
committerGabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
Tue, 29 Aug 2017 13:32:34 +0000 (10:32 -0300)
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.

(cherry picked from commit 3d7b66f66cb223e899a7ebc0f4c20f13e711c9e0)

ChangeLog
math/math.h

index 527026ba5df4d34c7666b55b994fb6dac9d9ccc3..04b56b555cc136b34bd6ffb33977f8dcb7f2c300 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-08-24  Gabriel F. T. Gomes  <gftg@linux.vnet.ibm.com>
+
+       * 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-22  Gabriel F. T. Gomes  <gftg@linux.vnet.ibm.com>
 
        * math/math.h [defined __cplusplus] (issignaling): Provide a C++
index add86af7242929574e32590fa04b959d919db506..60dfa315929cd8155d90b22ef87ba1f90786a1f6 100644 (file)
@@ -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