clang: apply LLVM patch r201729

This fixes an issue when compiling with GCC 4.9.
For details, see: http://reviews.llvm.org/rL201729

Change-Id: Iaa522715798016f6edb433b01b02aa664fcb5d1c
This commit is contained in:
Erik van der Kouwe 2015-04-29 22:59:26 +02:00 committed by David van Moolenbroek
parent b329f2c73b
commit 35a4831d02
2 changed files with 14 additions and 0 deletions

View file

@ -84,6 +84,16 @@ using ::std::nullptr_t;
#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 */

View file

@ -22,6 +22,10 @@ _Static_assert(__alignof(c) == 4, "");
#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).