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:
parent
b329f2c73b
commit
35a4831d02
2 changed files with 14 additions and 0 deletions
|
@ -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 */
|
||||
|
|
|
@ -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).
|
||||
|
|
Loading…
Reference in a new issue