llvm-toolchain/debian/patches/gcc-4.9-support.diff

37 lines
1.5 KiB
Diff

Index: llvm-toolchain-snapshot_3.4~svn192346/clang/lib/Headers/stddef.h
===================================================================
--- llvm-toolchain-snapshot_3.4~svn192346/clang/lib/Headers/stddef.h (révision 201728)
+++ llvm-toolchain-snapshot_3.4~svn192346/clang/lib/Headers/stddef.h (révision 201729)
@@ -84,6 +84,16 @@
#endif
#endif
+#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
+typedef struct {
+ long long __clang_max_align_nonce1
+ __attribute__((__aligned__(__alignof__(long long))));
+ long double __clang_max_align_nonce2
+ __attribute__((__aligned__(__alignof__(long double))));
+} max_align_t;
+#define __CLANG_MAX_ALIGN_T_DEFINED
+#endif
+
#define offsetof(t, d) __builtin_offsetof(t, d)
#endif /* __STDDEF_H */
Index: llvm-toolchain-snapshot_3.4~svn192346/clang/test/Headers/c11.c
===================================================================
--- llvm-toolchain-snapshot_3.4~svn192346/clang/test/Headers/c11.c (révision 201728)
+++ llvm-toolchain-snapshot_3.4~svn192346/clang/test/Headers/c11.c (révision 201729)
@@ -22,6 +22,10 @@
#define __STDC_WANT_LIB_EXT1__ 1
#include <stddef.h>
rsize_t x = 0;
+_Static_assert(sizeof(max_align_t) >= sizeof(long long), "");
+_Static_assert(alignof(max_align_t) >= alignof(long long), "");
+_Static_assert(sizeof(max_align_t) >= sizeof(long double), "");
+_Static_assert(alignof(max_align_t) >= alignof(long double), "");
// If we are freestanding, then also check RSIZE_MAX (in a hosted implementation
// we will use the host stdint.h, which may not yet have C11 support).