diff options
author | Ed Schouten <ed@FreeBSD.org> | 2014-09-05 05:36:32 +0000 |
---|---|---|
committer | Ed Schouten <ed@FreeBSD.org> | 2014-09-05 05:36:32 +0000 |
commit | b58aba6b66b24b993f1f241d88fb9f9a2025e1f7 (patch) | |
tree | b2602da980966fa5a29c2e911dc374a37179bed3 /sys/sys | |
parent | 7aa83a16bce6adca4c7e3af643705dc4acb031a0 (diff) | |
download | src-b58aba6b66b24b993f1f241d88fb9f9a2025e1f7.tar.gz src-b58aba6b66b24b993f1f241d88fb9f9a2025e1f7.zip |
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.
Notes
Notes:
svn path=/head/; revision=271155
Diffstat (limited to 'sys/sys')
-rw-r--r-- | sys/sys/cdefs.h | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h index da92817a7623..328ce7cd81c5 100644 --- a/sys/sys/cdefs.h +++ b/sys/sys/cdefs.h @@ -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) |