diff options
author | Szabolcs Nagy <nsz@port70.net> | 2014-08-26 17:42:15 +0200 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2014-08-27 02:55:54 -0400 |
commit | 70729de075bfe3138b05af91ecefcd5786bed5ac (patch) | |
tree | 728f053fe4790f7b7cce78b83d187305a378b74d /include | |
parent | 18dde0071334e2e7f71972b80df7779280c801cf (diff) | |
download | musl-70729de075bfe3138b05af91ecefcd5786bed5ac.tar.gz musl-70729de075bfe3138b05af91ecefcd5786bed5ac.tar.xz musl-70729de075bfe3138b05af91ecefcd5786bed5ac.zip |
add static_assert and hide noreturn, alignas, alignof from C++
add static_assert and protect the other new C11 keyword macros with #ifndef __cplusplus so they don't conflict with C++ keywords.
Diffstat (limited to 'include')
-rw-r--r-- | include/assert.h | 4 | ||||
-rw-r--r-- | include/stdalign.h | 5 | ||||
-rw-r--r-- | include/stdnoreturn.h | 2 |
3 files changed, 11 insertions, 0 deletions
diff --git a/include/assert.h b/include/assert.h index ab745db1..1ee02a4a 100644 --- a/include/assert.h +++ b/include/assert.h @@ -8,6 +8,10 @@ #define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0))) #endif +#ifndef __cplusplus +#define static_assert _Static_assert +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/include/stdalign.h b/include/stdalign.h index b6e50aeb..2cc94be3 100644 --- a/include/stdalign.h +++ b/include/stdalign.h @@ -1,6 +1,8 @@ #ifndef _STDALIGN_H #define _STDALIGN_H +#ifndef __cplusplus + /* this whole header only works in C11 or with compiler extensions */ #if __STDC_VERSION__ < 201112L && defined( __GNUC__) #define _Alignas(t) __attribute__((__aligned__(t))) @@ -9,6 +11,9 @@ #define alignas _Alignas #define alignof _Alignof + +#endif + #define __alignas_is_defined 1 #define __alignof_is_defined 1 diff --git a/include/stdnoreturn.h b/include/stdnoreturn.h index 60d924a0..5c6aeeb0 100644 --- a/include/stdnoreturn.h +++ b/include/stdnoreturn.h @@ -1,5 +1,7 @@ #ifndef _STDNORETURN_H #define _STDNORETURN_H +#ifndef __cplusplus #include <features.h> #define noreturn _Noreturn #endif +#endif |