59 lines
1.9 KiB
Diff
59 lines
1.9 KiB
Diff
From 35dded99a89db873b06270ca7f21245a0faf712a Mon Sep 17 00:00:00 2001
|
|
From: "Gabriel F. T. Gomes" <gftg@linux.vnet.ibm.com>
|
|
Date: Wed, 23 Aug 2017 10:16:54 -0300
|
|
Subject: [PATCH 17] 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.
|
|
|
|
(cherry picked from commit 3d7b66f66cb223e899a7ebc0f4c20f13e711c9e0)
|
|
---
|
|
ChangeLog | 6 ++++++
|
|
math/math.h | 10 +++++++++-
|
|
2 files changed, 15 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/ChangeLog b/ChangeLog
|
|
index 527026ba5d..04b56b555c 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-22 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
|
|
|
|
* math/math.h [defined __cplusplus] (issignaling): Provide a C++
|
|
diff --git a/math/math.h b/math/math.h
|
|
index add86af724..60dfa31592 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
|
|
|