authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-12-01 15:19:06+01:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-12-03 11:57:20+01:00
logfa6946f645852363303082447b8087f8213512bb
tree0f69ea8cc032990270f1130c4abd60ec21abcbee
parent023a7fefb1f468f5679ad6f10c0cf0f2946a2ab6
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

zig.h: Add support for C23 keywords.

The old spellings from C11 are deprecated in C23.

1 files changed, 12 insertions(+), 6 deletions(-)

lib/zig.h+12-6
...@@ -15,15 +15,15 @@...@@ -15,15 +15,15 @@
15#include <cpuid.h>15#include <cpuid.h>
16#endif16#endif
1717
18#if !defined(__cplusplus) && __STDC_VERSION__ <= 201710L18#if __STDC_VERSION__ >= 202311L
19#if __STDC_VERSION__ >= 199901L19/* bool, true, and false are provided by the language. */
20#elif __STDC_VERSION__ >= 199901L
20#include <stdbool.h>21#include <stdbool.h>
21#else22#else
22typedef char bool;23typedef char bool;
23#define false 024#define false 0
24#define true 125#define true 1
25#endif26#endif
26#endif
2727
28#if defined(__clang__)28#if defined(__clang__)
29#define zig_clang29#define zig_clang
...@@ -57,7 +57,9 @@ typedef char bool;...@@ -57,7 +57,9 @@ typedef char bool;
57#define zig_big_endian 157#define zig_big_endian 1
58#endif58#endif
5959
60#if __STDC_VERSION__ >= 201112L60#if __STDC_VERSION__ >= 202311L
61#define zig_threadlocal thread_local
62#elif __STDC_VERSION__ >= 201112L
61#define zig_threadlocal _Thread_local63#define zig_threadlocal _Thread_local
62#elif defined(__GNUC__)64#elif defined(__GNUC__)
63#define zig_threadlocal __thread65#define zig_threadlocal __thread
...@@ -140,7 +142,9 @@ typedef char bool;...@@ -140,7 +142,9 @@ typedef char bool;
140#define zig_under_align zig_align_unavailable142#define zig_under_align zig_align_unavailable
141#endif143#endif
142144
143#if __STDC_VERSION__ >= 201112L145#if __STDC_VERSION__ >= 202311L
146#define zig_align(alignment) alignas(alignment)
147#elif __STDC_VERSION__ >= 201112L
144#define zig_align(alignment) _Alignas(alignment)148#define zig_align(alignment) _Alignas(alignment)
145#else149#else
146#define zig_align(alignment) zig_under_align(alignment)150#define zig_align(alignment) zig_under_align(alignment)
...@@ -332,7 +336,9 @@ typedef char bool;...@@ -332,7 +336,9 @@ typedef char bool;
332#define zig_wasm_memory_grow(index, delta) zig_unimplemented()336#define zig_wasm_memory_grow(index, delta) zig_unimplemented()
333#endif337#endif
334338
335#if __STDC_VERSION__ >= 201112L339#if __STDC_VERSION__ >= 202311L
340#define zig_noreturn [[noreturn]]
341#elif __STDC_VERSION__ >= 201112L
336#define zig_noreturn _Noreturn342#define zig_noreturn _Noreturn
337#elif zig_has_attribute(noreturn) || defined(zig_gnuc) || defined(zig_tinyc)343#elif zig_has_attribute(noreturn) || defined(zig_gnuc) || defined(zig_tinyc)
338#define zig_noreturn __attribute__((noreturn))344#define zig_noreturn __attribute__((noreturn))