about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSzabolcs Nagy <nsz@port70.net>2014-08-26 17:42:15 +0200
committerRich Felker <dalias@aerifal.cx>2014-08-27 02:55:54 -0400
commit70729de075bfe3138b05af91ecefcd5786bed5ac (patch)
tree728f053fe4790f7b7cce78b83d187305a378b74d
parent18dde0071334e2e7f71972b80df7779280c801cf (diff)
downloadmusl-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.
-rw-r--r--include/assert.h4
-rw-r--r--include/stdalign.h5
-rw-r--r--include/stdnoreturn.h2
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