Browse Source

fix C++ incompatibility in i386 definition of max_align_t

the C11 _Alignas keyword is not present in C++, and despite it being
in the reserved namespace and thus reasonable to support even in
non-C11 modes, compilers seem to fail to support it.
Rich Felker 10 years ago
parent
commit
bd082916b1
1 changed files with 4 additions and 0 deletions
  1. 4 0
      arch/i386/bits/alltypes.h.in

+ 4 - 0
arch/i386/bits/alltypes.h.in

@@ -27,7 +27,11 @@ TYPEDEF long double float_t;
 TYPEDEF long double double_t;
 #endif
 
+#ifdef __cplusplus
+TYPEDEF struct { alignas(8) long long __ll; long double __ld; } max_align_t;
+#else
 TYPEDEF struct { _Alignas(8) long long __ll; long double __ld; } max_align_t;
+#endif
 
 TYPEDEF long time_t;
 TYPEDEF long suseconds_t;