summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel F. T. Gomes <gftg@linux.vnet.ibm.com>2017-08-23 10:16:54 -0300
committerGabriel F. T. Gomes <gftg@linux.vnet.ibm.com>2017-08-24 16:06:42 -0300
commit3d7b66f66cb223e899a7ebc0f4c20f13e711c9e0 (patch)
tree15ec87ce030652ea6f3dc31ee7b5d056a1f1d1ae
parentebd6f0076a83bb25a9853773fbfbcff00b4c9a32 (diff)
downloadglibc-3d7b66f66cb223e899a7ebc0f4c20f13e711c9e0.tar.gz
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.
-rw-r--r--ChangeLog6
-rw-r--r--math/math.h10
2 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 3521ed197d..a628344882 100644
--- 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-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* sysdeps/unix/make-syscalls.sh: Remove cancellable tagging for
diff --git a/math/math.h b/math/math.h
index b5d6c43fcf..5acbe88906 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