1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- From bb21afc362a3ecba07ab386a0bc4385e75fbd4b5 Mon Sep 17 00:00:00 2001
- From: "Gabriel F. T. Gomes" <gftg@linux.vnet.ibm.com>
- Date: Mon, 14 Aug 2017 17:51:51 -0300
- Subject: [PATCH] Do not use generic selection in C++ mode
- The logic to protect the use of generic selection (_Generic) does not
- check for C or C++ mode, however, generic selection is a C-only
- feature.
- Tested for powerpc64le.
- * misc/sys/cdefs.h (__HAVE_GENERIC_SELECTION): Define to 0, if
- in C++ mode.
- (cherry picked from commit 6913ad65e00bb32417ad39c41d292b976171e27e)
- [Romain rebase on glibc 2.26]
- Signed-off-by: Romain Naour <romain.naour@gmail.com>
- ---
- misc/sys/cdefs.h | 19 ++++++++++---------
- 1 file changed, 10 insertions(+), 9 deletions(-)
- diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
- index 06523bf..0c80821 100644
- --- a/misc/sys/cdefs.h
- +++ b/misc/sys/cdefs.h
- @@ -464,17 +464,18 @@
- # define __glibc_macro_warning(msg)
- #endif
-
- -/* Support for generic selection (ISO C11) is available in GCC since
- - version 4.9. Previous versions do not provide generic selection,
- - even though they might set __STDC_VERSION__ to 201112L, when in
- - -std=c11 mode. Thus, we must check for !defined __GNUC__ when
- - testing __STDC_VERSION__ for generic selection support.
- +/* Generic selection (ISO C11) is a C-only feature, available in GCC
- + since version 4.9. Previous versions do not provide generic
- + selection, even though they might set __STDC_VERSION__ to 201112L,
- + when in -std=c11 mode. Thus, we must check for !defined __GNUC__
- + when testing __STDC_VERSION__ for generic selection support.
- On the other hand, Clang also defines __GNUC__, so a clang-specific
- check is required to enable the use of generic selection. */
- -#if __GNUC_PREREQ (4, 9) \
- - || __glibc_clang_has_extension (c_generic_selections) \
- - || (!defined __GNUC__ && defined __STDC_VERSION__ \
- - && __STDC_VERSION__ >= 201112L)
- +#if !defined __cplusplus \
- + && (__GNUC_PREREQ (4, 9) \
- + || __glibc_clang_has_extension (c_generic_selections) \
- + || (!defined __GNUC__ && defined __STDC_VERSION__ \
- + && __STDC_VERSION__ >= 201112L))
- # define __HAVE_GENERIC_SELECTION 1
- #else
- # define __HAVE_GENERIC_SELECTION 0
- --
- 2.9.5
|