Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Apr 2021 17:25:42 GMT
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 81c5f1451c4e - stable/12 - Avoid -pedantic warnings about using _Generic in __fp_type_select
Message-ID:  <202104151725.13FHPghH083368@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/12 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=81c5f1451c4e2221413a9b05aadcfd74a1182848

commit 81c5f1451c4e2221413a9b05aadcfd74a1182848
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2021-04-08 11:13:15 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2021-04-15 16:50:56 +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 6ce45cbb5280..2a42c14c6cc2 100644
--- a/lib/msun/src/math.h
+++ b/lib/msun/src/math.h
@@ -77,9 +77,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),							\



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202104151725.13FHPghH083368>