mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-13 05:41:26 +01:00
Roll back r271012 even more aggressively.
I've looked at the GCC sources and I now understand what's going wrong. THe C11 keywords are simply nonexistent when using C++ mode. They are marked as C-only in the parser. This is absolutely impractical for multiple reasons: - The C11 keywords do not conflict with C++ naming rules. They all start with _[A-Z]. There is no reason to make them C-only. - It makes it practically impossible for people to use these keywords in C header files and expect them to work from within C++ sources. As I said in my previous commit message: GCC is by far the weirdest compiler that I've ever used.
This commit is contained in:
parent
7aa83a16bc
commit
b58aba6b66
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=271155
@ -61,7 +61,7 @@
|
||||
*/
|
||||
|
||||
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
|
||||
__has_extension(c_generic_selections) || __GNUC_PREREQ__(4, 9)
|
||||
__has_extension(c_generic_selections)
|
||||
#define __tg_generic(x, cfnl, cfn, cfnf, fnl, fn, fnf) \
|
||||
_Generic(x, \
|
||||
long double _Complex: cfnl, \
|
||||
|
@ -254,7 +254,7 @@
|
||||
|
||||
#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L
|
||||
|
||||
#if !__has_extension(c_alignas) && !__GNUC_PREREQ__(4, 7)
|
||||
#if !__has_extension(c_alignas)
|
||||
#if (defined(__cplusplus) && __cplusplus >= 201103L) || \
|
||||
__has_extension(cxx_alignas)
|
||||
#define _Alignas(x) alignas(x)
|
||||
@ -264,13 +264,11 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !__GNUC_PREREQ__(4, 7)
|
||||
#if defined(__cplusplus) && __cplusplus >= 201103L
|
||||
#define _Alignof(x) alignof(x)
|
||||
#else
|
||||
#define _Alignof(x) __alignof(x)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !__has_extension(c_atomic) && !__has_extension(cxx_atomic)
|
||||
/*
|
||||
@ -286,7 +284,7 @@
|
||||
#define _Noreturn __dead2
|
||||
#endif
|
||||
|
||||
#if !__has_extension(c_static_assert) && !__GNUC_PREREQ__(4, 7)
|
||||
#if !__has_extension(c_static_assert)
|
||||
#if (defined(__cplusplus) && __cplusplus >= 201103L) || \
|
||||
__has_extension(cxx_static_assert)
|
||||
#define _Static_assert(x, y) static_assert(x, y)
|
||||
@ -325,7 +323,7 @@
|
||||
*/
|
||||
|
||||
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
|
||||
__has_extension(c_generic_selections) || __GNUC_PREREQ__(4, 9)
|
||||
__has_extension(c_generic_selections)
|
||||
#define __generic(expr, t, yes, no) \
|
||||
_Generic(expr, t: yes, default: no)
|
||||
#elif __GNUC_PREREQ__(3, 1) && !defined(__cplusplus)
|
||||
|
Loading…
Reference in New Issue
Block a user