|
81 | 81 | #error EMSCRIPTEN is not defined
|
82 | 82 | #endif
|
83 | 83 |
|
| 84 | +#include <stdalign.h> |
84 | 85 | #include <stdint.h>
|
85 | 86 | #include <stddef.h>
|
86 | 87 | #include <string.h>
|
|
91 | 92 |
|
92 | 93 | int main() {
|
93 | 94 | #if __wasm64__
|
94 |
| - assert(sizeof(void*) == 8); |
95 |
| - assert(sizeof(long) == 8); |
96 |
| - assert(sizeof(intptr_t) == 8); |
97 |
| - assert(sizeof(size_t) == 8); |
98 |
| - assert(sizeof(ptrdiff_t) == 8); |
| 95 | + assert(__SIZEOF_POINTER__ == 8); |
99 | 96 | #else
|
100 |
| - assert(sizeof(void*) == 4); |
101 |
| - assert(sizeof(long) == 4); |
102 |
| - assert(sizeof(intptr_t) == 4); |
103 |
| - assert(sizeof(size_t) == 4); |
104 |
| - assert(sizeof(ptrdiff_t) == 4); |
| 97 | + assert(__SIZEOF_POINTER__ == 4); |
105 | 98 | #endif
|
| 99 | + assert(sizeof(void*) == __SIZEOF_POINTER__); |
| 100 | + assert(sizeof(long) == __SIZEOF_POINTER__); |
| 101 | + assert(sizeof(intptr_t) == __SIZEOF_POINTER__); |
| 102 | + assert(sizeof(size_t) == __SIZEOF_POINTER__); |
| 103 | + assert(sizeof(ptrdiff_t) == __SIZEOF_POINTER__); |
106 | 104 | assert(sizeof(intmax_t) == 8);
|
107 |
| - assert(__alignof(double) == 8); |
| 105 | + assert(alignof(double) == 8); |
108 | 106 | assert(sizeof(long double) == 16);
|
109 |
| - assert(__alignof(long double) == 8); |
| 107 | + assert(alignof(long double) == 8); |
| 108 | + assert(alignof(max_align_t) == 8); |
| 109 | + // __BIGGEST_ALIGNMENT__ corresponds to the default stack alignment |
| 110 | + // used by llvm. Unlike `alignof(max_align_t)` it includes SIMD types. |
| 111 | + // We use this in emscripten as our default stack alignment. |
| 112 | + assert(__BIGGEST_ALIGNMENT__ == 16); |
110 | 113 | assert(__FLT_EVAL_METHOD__ == 0);
|
111 | 114 | assert(strcmp(STRINGIZE(__USER_LABEL_PREFIX__), "") == 0);
|
112 | 115 | return 0;
|
|
0 commit comments