summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/msun/src/math.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/msun/src/math.h b/lib/msun/src/math.h
index 766a36c..14073cb 100644
--- a/lib/msun/src/math.h
+++ b/lib/msun/src/math.h
@@ -81,12 +81,13 @@ extern const union __nan_un {
#define FP_SUBNORMAL 0x08
#define FP_ZERO 0x10
-#if __STDC_VERSION__ >= 201112L && defined(__clang__)
+#if (__STDC_VERSION__ >= 201112L && defined(__clang__)) || \
+ __has_extension(c_generic_selections)
#define __fp_type_select(x, f, d, ld) _Generic((x), \
float: f(x), \
double: d(x), \
long double: ld(x))
-#elif __GNUC_PREREQ__(3, 1)
+#elif __GNUC_PREREQ__(3, 1) && !defined(__cplusplus)
#define __fp_type_select(x, f, d, ld) __builtin_choose_expr( \
__builtin_types_compatible_p(__typeof(x), long double), ld(x), \
__builtin_choose_expr( \
OpenPOWER on IntegriCloud