|
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