summaryrefslogtreecommitdiffstats
path: root/sys/sys/cdefs.h
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2014-09-05 05:36:32 +0000
committered <ed@FreeBSD.org>2014-09-05 05:36:32 +0000
commit059046bff7cb209ee92b7a510584f1527d7c73d4 (patch)
treeb2602da980966fa5a29c2e911dc374a37179bed3 /sys/sys/cdefs.h
parent88f6292fc6797241959653b23bba08b173e98be8 (diff)
downloadFreeBSD-src-059046bff7cb209ee92b7a510584f1527d7c73d4.zip
FreeBSD-src-059046bff7cb209ee92b7a510584f1527d7c73d4.tar.gz
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.
Diffstat (limited to 'sys/sys/cdefs.h')
-rw-r--r--sys/sys/cdefs.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h
index da92817..328ce7c 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)
OpenPOWER on IntegriCloud