git: 74b123c0a5ec - stable/10 - Avoid -pedantic warnings about using _Generic in __fp_type_select
Dimitry Andric
dim at FreeBSD.org
Thu Apr 15 17:27:14 UTC 2021
The branch stable/10 has been updated by dim:
URL: https://cgit.FreeBSD.org/src/commit/?id=74b123c0a5ecfe2081c47de98820cdfabb64024d
commit 74b123c0a5ecfe2081c47de98820cdfabb64024d
Author: Dimitry Andric <dim at FreeBSD.org>
AuthorDate: 2021-04-08 11:13:15 +0000
Commit: Dimitry Andric <dim at FreeBSD.org>
CommitDate: 2021-04-15 10:26:48 +0000
Avoid -pedantic warnings about using _Generic in __fp_type_select
When compiling parts of math.h with clang using a C standard before C11,
and using -pedantic, it will result in warnings similar to:
bug254714.c:5:11: warning: '_Generic' is a C11 extension [-Wc11-extensions]
return !isfinite(1.0);
^
/usr/include/math.h:111:21: note: expanded from macro 'isfinite'
^
/usr/include/math.h:82:39: note: expanded from macro '__fp_type_select'
^
This is because the block that enables use of _Generic is conditional
not only on C11, but also on whether the compiler advertises support for
C generic selections via __has_extension(c_generic_selections).
To work around the warning without having to pessimize the code, use the
__extension__ keyword, which is supported by both clang and gcc. While
here, remove the check for __clang__, as _Generic has been supported for
a long time by gcc too now.
Reported by: yuri
PR: 254714
---
lib/msun/src/math.h | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/lib/msun/src/math.h b/lib/msun/src/math.h
index ae5286717146..a7a8994e6fb6 100644
--- a/lib/msun/src/math.h
+++ b/lib/msun/src/math.h
@@ -81,9 +81,8 @@ extern const union __nan_un {
#define FP_SUBNORMAL 0x08
#define FP_ZERO 0x10
-#if (__STDC_VERSION__ >= 201112L && defined(__clang__)) || \
- __has_extension(c_generic_selections)
-#define __fp_type_select(x, f, d, ld) _Generic((x), \
+#if __STDC_VERSION__ >= 201112L || __has_extension(c_generic_selections)
+#define __fp_type_select(x, f, d, ld) __extension__ _Generic((x), \
float: f(x), \
double: d(x), \
long double: ld(x), \
More information about the dev-commits-src-branches
mailing list