From fa6946f645852363303082447b8087f8213512bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sun, 1 Dec 2024 15:19:06 +0100 Subject: [PATCH] zig.h: Add support for C23 keywords. The old spellings from C11 are deprecated in C23. --- lib/zig.h | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index d0a2350b62..344adb7fa2 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -15,15 +15,15 @@ #include #endif -#if !defined(__cplusplus) && __STDC_VERSION__ <= 201710L -#if __STDC_VERSION__ >= 199901L +#if __STDC_VERSION__ >= 202311L +/* bool, true, and false are provided by the language. */ +#elif __STDC_VERSION__ >= 199901L #include #else typedef char bool; #define false 0 #define true 1 #endif -#endif #if defined(__clang__) #define zig_clang @@ -57,7 +57,9 @@ typedef char bool; #define zig_big_endian 1 #endif -#if __STDC_VERSION__ >= 201112L +#if __STDC_VERSION__ >= 202311L +#define zig_threadlocal thread_local +#elif __STDC_VERSION__ >= 201112L #define zig_threadlocal _Thread_local #elif defined(__GNUC__) #define zig_threadlocal __thread @@ -140,7 +142,9 @@ typedef char bool; #define zig_under_align zig_align_unavailable #endif -#if __STDC_VERSION__ >= 201112L +#if __STDC_VERSION__ >= 202311L +#define zig_align(alignment) alignas(alignment) +#elif __STDC_VERSION__ >= 201112L #define zig_align(alignment) _Alignas(alignment) #else #define zig_align(alignment) zig_under_align(alignment) @@ -332,7 +336,9 @@ typedef char bool; #define zig_wasm_memory_grow(index, delta) zig_unimplemented() #endif -#if __STDC_VERSION__ >= 201112L +#if __STDC_VERSION__ >= 202311L +#define zig_noreturn [[noreturn]] +#elif __STDC_VERSION__ >= 201112L #define zig_noreturn _Noreturn #elif zig_has_attribute(noreturn) || defined(zig_gnuc) || defined(zig_tinyc) #define zig_noreturn __attribute__((noreturn))