add static_assert and protect the other new C11 keyword macros
with #ifndef __cplusplus so they don't conflict with C++ keywords.
#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
#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)))
#define alignas _Alignas
#define alignof _Alignof
+
+#endif
+
#define __alignas_is_defined 1
#define __alignof_is_defined 1
#ifndef _STDNORETURN_H
#define _STDNORETURN_H
+#ifndef __cplusplus
#include <features.h>
#define noreturn _Noreturn
#endif
+#endif