diff --git a/lib/zig.h b/lib/zig.h index f1fc5ebfdd..51e646485c 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1,5 +1,8 @@ #undef linux +#include +#include + #if defined(_MSC_VER) #define zig_msvc #elif defined(__clang__) @@ -68,38 +71,23 @@ #define zig_x86 #endif +#if defined(zig_msvc) || __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#define zig_little_endian 1 +#define zig_big_endian 0 +#else +#define zig_little_endian 0 +#define zig_big_endian 1 +#endif + +#define zig_concat(lhs, rhs) lhs##rhs +#define zig_expand_concat(lhs, rhs) zig_concat(lhs, rhs) + #if defined(__has_include) #define zig_has_include(include) __has_include(include) #else #define zig_has_include(include) 0 #endif -#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ -#define __STDC_WANT_IEC_60559_TYPES_EXT__ -#endif - -#include -#include -#include -#include - -#if defined(zig_msvc) -#include -#endif - -#if __STDC_VERSION__ >= 202311L -/* bool, true, and false are provided by the language. */ -#elif __STDC_VERSION__ >= 199901L || zig_has_include() -#include -#else -typedef char bool; -#define false 0 -#define true 1 -#endif - -#define zig_concat(lhs, rhs) lhs##rhs -#define zig_expand_concat(lhs, rhs) zig_concat(lhs, rhs) - #if defined(__has_builtin) #define zig_has_builtin(builtin) __has_builtin(__builtin_##builtin) #else @@ -113,14 +101,6 @@ typedef char bool; #define zig_has_attribute(attribute) 0 #endif -#if defined(zig_msvc) || __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ -#define zig_little_endian 1 -#define zig_big_endian 0 -#else -#define zig_little_endian 0 -#define zig_big_endian 1 -#endif - #if __STDC_VERSION__ >= 202311L #define zig_threadlocal thread_local #elif __STDC_VERSION__ >= 201112L @@ -133,12 +113,6 @@ typedef char bool; #define zig_threadlocal zig_threadlocal_unavailable #endif -#if !defined(zig_clang) && defined(zig_gnuc) && defined(zig_x86) -#define zig_f128_has_miscompilations 1 -#else -#define zig_f128_has_miscompilations 0 -#endif - #if defined(zig_msvc) #define zig_const_arr #define zig_callconv(c) __##c @@ -416,8 +390,6 @@ typedef char bool; #define zig_noreturn #endif -#define zig_bitSizeOf(T) (CHAR_BIT * sizeof(T)) - #define zig_compiler_rt_abbrev_uint32_t si #define zig_compiler_rt_abbrev_int32_t si #define zig_compiler_rt_abbrev_uint64_t di @@ -433,12 +405,25 @@ typedef char bool; zig_extern void *memcpy (void *zig_restrict, void const *zig_restrict, size_t); zig_extern void *memset (void *, int, size_t); -/* ===================== 8/16/32/64-bit Integer Support ===================== */ +/* ================ Bool and 8/16/32/64-bit Integer Support ================= */ + +#include + +#define zig_bitSizeOf(T) (CHAR_BIT * sizeof(T)) + +#if __STDC_VERSION__ >= 202311L +/* bool, true, and false are provided by the language. */ +#elif __STDC_VERSION__ >= 199901L || zig_has_include() +#include +#else +typedef char bool; +#define false 0 +#define true 1 +#endif #if __STDC_VERSION__ >= 199901L || defined(zig_msvc) || zig_has_include() #include #else - #if SCHAR_MIN == ~0x7F && SCHAR_MAX == 0x7F && UCHAR_MAX == 0xFF typedef unsigned char uint8_t; typedef signed char int8_t; @@ -3096,6 +3081,12 @@ static inline uint16_t zig_popcount_big(const void *val, bool is_signed, uint16_ /* ========================= Floating Point Support ========================= */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +#define __STDC_WANT_IEC_60559_TYPES_EXT__ +#endif + +#include + #if defined(zig_msvc) float __cdecl nanf(char const* input); double __cdecl nan(char const* input); @@ -3263,6 +3254,12 @@ typedef zig_u128 zig_f80; #define zig_init_special_f80(sign, name, arg, repr) repr #endif +#if !defined(zig_clang) && defined(zig_gnuc) && defined(zig_x86) +#define zig_f128_has_miscompilations 1 +#else +#define zig_f128_has_miscompilations 0 +#endif + #define zig_has_f128 1 #define zig_libc_name_f128(name) name##q #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 /* ======================== Special Case Intrinsics ========================= */ +#if defined(zig_msvc) +#include +#endif + #if defined(zig_thumb) static inline void* zig_thumb_windows_teb(void) {