authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-12-02 10:00:41+01:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-12-03 12:07:34+01:00
logace8396076992a51be0e71cc0dafa8ecd55b64b5
tree6bca12d3c7e5bb9d63e8e2f019f598b2e31c8858
parent0e934c7df1aa82e72dfb3654e8f0f3a42bad9f01
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

zig.h: Move some macros and includes closer to where they're used.


1 files changed, 44 insertions(+), 43 deletions(-)

lib/zig.h+44-43
...@@ -1,5 +1,8 @@...@@ -1,5 +1,8 @@
1#undef linux1#undef linux
22
3#include <stdarg.h>
4#include <stddef.h>
5
3#if defined(_MSC_VER)6#if defined(_MSC_VER)
4#define zig_msvc7#define zig_msvc
5#elif defined(__clang__)8#elif defined(__clang__)
...@@ -68,38 +71,23 @@...@@ -68,38 +71,23 @@
68#define zig_x8671#define zig_x86
69#endif72#endif
7073
71#if defined(__has_include)74#if defined(zig_msvc) || __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
72#define zig_has_include(include) __has_include(include)75#define zig_little_endian 1
76#define zig_big_endian 0
73#else77#else
74#define zig_has_include(include) 078#define zig_little_endian 0
75#endif79#define zig_big_endian 1
76
77#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
78#define __STDC_WANT_IEC_60559_TYPES_EXT__
79#endif80#endif
8081
81#include <float.h>82#define zig_concat(lhs, rhs) lhs##rhs
82#include <limits.h>83#define zig_expand_concat(lhs, rhs) zig_concat(lhs, rhs)
83#include <stdarg.h>
84#include <stddef.h>
85
86#if defined(zig_msvc)
87#include <intrin.h>
88#endif
8984
90#if __STDC_VERSION__ >= 202311L85#if defined(__has_include)
91/* bool, true, and false are provided by the language. */86#define zig_has_include(include) __has_include(include)
92#elif __STDC_VERSION__ >= 199901L || zig_has_include(<stdbool.h>)
93#include <stdbool.h>
94#else87#else
95typedef char bool;88#define zig_has_include(include) 0
96#define false 0
97#define true 1
98#endif89#endif
9990
100#define zig_concat(lhs, rhs) lhs##rhs
101#define zig_expand_concat(lhs, rhs) zig_concat(lhs, rhs)
102
103#if defined(__has_builtin)91#if defined(__has_builtin)
104#define zig_has_builtin(builtin) __has_builtin(__builtin_##builtin)92#define zig_has_builtin(builtin) __has_builtin(__builtin_##builtin)
105#else93#else
...@@ -113,14 +101,6 @@ typedef char bool;...@@ -113,14 +101,6 @@ typedef char bool;
113#define zig_has_attribute(attribute) 0101#define zig_has_attribute(attribute) 0
114#endif102#endif
115103
116#if defined(zig_msvc) || __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
117#define zig_little_endian 1
118#define zig_big_endian 0
119#else
120#define zig_little_endian 0
121#define zig_big_endian 1
122#endif
123
124#if __STDC_VERSION__ >= 202311L104#if __STDC_VERSION__ >= 202311L
125#define zig_threadlocal thread_local105#define zig_threadlocal thread_local
126#elif __STDC_VERSION__ >= 201112L106#elif __STDC_VERSION__ >= 201112L
...@@ -133,12 +113,6 @@ typedef char bool;...@@ -133,12 +113,6 @@ typedef char bool;
133#define zig_threadlocal zig_threadlocal_unavailable113#define zig_threadlocal zig_threadlocal_unavailable
134#endif114#endif
135115
136#if !defined(zig_clang) && defined(zig_gnuc) && defined(zig_x86)
137#define zig_f128_has_miscompilations 1
138#else
139#define zig_f128_has_miscompilations 0
140#endif
141
142#if defined(zig_msvc)116#if defined(zig_msvc)
143#define zig_const_arr117#define zig_const_arr
144#define zig_callconv(c) __##c118#define zig_callconv(c) __##c
...@@ -416,8 +390,6 @@ typedef char bool;...@@ -416,8 +390,6 @@ typedef char bool;
416#define zig_noreturn390#define zig_noreturn
417#endif391#endif
418392
419#define zig_bitSizeOf(T) (CHAR_BIT * sizeof(T))
420
421#define zig_compiler_rt_abbrev_uint32_t si393#define zig_compiler_rt_abbrev_uint32_t si
422#define zig_compiler_rt_abbrev_int32_t si394#define zig_compiler_rt_abbrev_int32_t si
423#define zig_compiler_rt_abbrev_uint64_t di395#define zig_compiler_rt_abbrev_uint64_t di
...@@ -433,12 +405,25 @@ typedef char bool;...@@ -433,12 +405,25 @@ typedef char bool;
433zig_extern void *memcpy (void *zig_restrict, void const *zig_restrict, size_t);405zig_extern void *memcpy (void *zig_restrict, void const *zig_restrict, size_t);
434zig_extern void *memset (void *, int, size_t);406zig_extern void *memset (void *, int, size_t);
435407
436/* ===================== 8/16/32/64-bit Integer Support ===================== */408/* ================ Bool and 8/16/32/64-bit Integer Support ================= */
409
410#include <limits.h>
411
412#define zig_bitSizeOf(T) (CHAR_BIT * sizeof(T))
413
414#if __STDC_VERSION__ >= 202311L
415/* bool, true, and false are provided by the language. */
416#elif __STDC_VERSION__ >= 199901L || zig_has_include(<stdbool.h>)
417#include <stdbool.h>
418#else
419typedef char bool;
420#define false 0
421#define true 1
422#endif
437423
438#if __STDC_VERSION__ >= 199901L || defined(zig_msvc) || zig_has_include(<stdint.h>)424#if __STDC_VERSION__ >= 199901L || defined(zig_msvc) || zig_has_include(<stdint.h>)
439#include <stdint.h>425#include <stdint.h>
440#else426#else
441
442#if SCHAR_MIN == ~0x7F && SCHAR_MAX == 0x7F && UCHAR_MAX == 0xFF427#if SCHAR_MIN == ~0x7F && SCHAR_MAX == 0x7F && UCHAR_MAX == 0xFF
443typedef unsigned char uint8_t;428typedef unsigned char uint8_t;
444typedef signed char int8_t;429typedef signed char int8_t;
...@@ -3096,6 +3081,12 @@ static inline uint16_t zig_popcount_big(const void *val, bool is_signed, uint16_...@@ -3096,6 +3081,12 @@ static inline uint16_t zig_popcount_big(const void *val, bool is_signed, uint16_
30963081
3097/* ========================= Floating Point Support ========================= */3082/* ========================= Floating Point Support ========================= */
30983083
3084#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
3085#define __STDC_WANT_IEC_60559_TYPES_EXT__
3086#endif
3087
3088#include <float.h>
3089
3099#if defined(zig_msvc)3090#if defined(zig_msvc)
3100float __cdecl nanf(char const* input);3091float __cdecl nanf(char const* input);
3101double __cdecl nan(char const* input);3092double __cdecl nan(char const* input);
...@@ -3263,6 +3254,12 @@ typedef zig_u128 zig_f80;...@@ -3263,6 +3254,12 @@ typedef zig_u128 zig_f80;
3263#define zig_init_special_f80(sign, name, arg, repr) repr3254#define zig_init_special_f80(sign, name, arg, repr) repr
3264#endif3255#endif
32653256
3257#if !defined(zig_clang) && defined(zig_gnuc) && defined(zig_x86)
3258#define zig_f128_has_miscompilations 1
3259#else
3260#define zig_f128_has_miscompilations 0
3261#endif
3262
3266#define zig_has_f128 13263#define zig_has_f128 1
3267#define zig_libc_name_f128(name) name##q3264#define zig_libc_name_f128(name) name##q
3268#define zig_init_special_f128(sign, name, arg, repr) zig_make_special_f128(sign, name, arg, repr)3265#define zig_init_special_f128(sign, name, arg, repr) zig_make_special_f128(sign, name, arg, repr)
...@@ -4006,6 +4003,10 @@ static inline void zig_msvc_atomic_store_i128(zig_i128 volatile* obj, zig_i128 a...@@ -4006,6 +4003,10 @@ static inline void zig_msvc_atomic_store_i128(zig_i128 volatile* obj, zig_i128 a
40064003
4007/* ======================== Special Case Intrinsics ========================= */4004/* ======================== Special Case Intrinsics ========================= */
40084005
4006#if defined(zig_msvc)
4007#include <intrin.h>
4008#endif
4009
4009#if defined(zig_thumb)4010#if defined(zig_thumb)
40104011
4011static inline void* zig_thumb_windows_teb(void) {4012static inline void* zig_thumb_windows_teb(void) {