authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-12-01 15:31:32+01:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-12-03 11:57:20+01:00
logd19e1919da7f9ecd36a4e9da1ffbe6a10c62d449
tree9ac6cb0fc6ab6f2540d192afff26ff7a168c6676
parentdd1d9cce3c068c76e99fbe9028bba4219d5d5792
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

zig.h: Define zig_gnuc for both GCC and Clang and stop using __GNUC__.

There's only one spot in the header where we want to handle GCC but not Clang, so just add an extra check there.

1 files changed, 9 insertions(+), 8 deletions(-)

lib/zig.h+9-8
......@@ -4,6 +4,7 @@
44#define zig_msvc
55#elif defined(__clang__)
66#define zig_clang
7#define zig_gnuc
78#elif defined(__GNUC__)
89#define zig_gnuc
910#elif defined(__TINYC__)
......@@ -65,7 +66,7 @@ typedef char bool;
6566#define zig_threadlocal thread_local
6667#elif __STDC_VERSION__ >= 201112L
6768#define zig_threadlocal _Thread_local
68#elif defined(__GNUC__) || defined(zig_slimcc)
69#elif defined(zig_gnuc) || defined(zig_slimcc)
6970#define zig_threadlocal __thread
7071#elif defined(zig_msvc)
7172#define zig_threadlocal __declspec(thread)
......@@ -73,7 +74,7 @@ typedef char bool;
7374#define zig_threadlocal zig_threadlocal_unavailable
7475#endif
7576
76#if defined(zig_gnuc) && (defined(__i386__) || defined(__x86_64__))
77#if !defined(zig_clang) && defined(zig_gnuc) && (defined(__i386__) || defined(__x86_64__))
7778#define zig_f128_has_miscompilations 1
7879#else
7980#define zig_f128_has_miscompilations 0
......@@ -132,7 +133,7 @@ typedef char bool;
132133
133134#if __STDC_VERSION__ >= 199901L
134135#define zig_restrict restrict
135#elif defined(__GNUC__) || defined(zig_tinyc)
136#elif defined(zig_gnuc) || defined(zig_tinyc)
136137#define zig_restrict __restrict
137138#else
138139#define zig_restrict
......@@ -3626,7 +3627,7 @@ typedef enum memory_order zig_memory_order;
36263627#define zig_atomicrmw_add_float zig_atomicrmw_add
36273628#undef zig_atomicrmw_sub_float
36283629#define zig_atomicrmw_sub_float zig_atomicrmw_sub
3629#elif defined(__GNUC__)
3630#elif defined(zig_gnuc)
36303631typedef int zig_memory_order;
36313632#define zig_memory_order_relaxed __ATOMIC_RELAXED
36323633#define zig_memory_order_acquire __ATOMIC_ACQUIRE
......@@ -3948,7 +3949,7 @@ static inline void* zig_thumb_windows_teb(void) {
39483949 void* teb = 0;
39493950#if defined(zig_msvc)
39503951 teb = (void*)_MoveFromCoprocessor(15, 0, 13, 0, 2);
3951#elif defined(__GNUC__)
3952#elif defined(zig_gnuc)
39523953 __asm__ ("mrc p15, 0, %[ptr], c13, c0, 2" : [ptr] "=r" (teb));
39533954#endif
39543955 return teb;
......@@ -3960,7 +3961,7 @@ static inline void* zig_aarch64_windows_teb(void) {
39603961 void* teb = 0;
39613962#if defined(zig_msvc)
39623963 teb = (void*)__readx18qword(0x0);
3963#elif defined(__GNUC__)
3964#elif defined(zig_gnuc)
39643965 __asm__ ("mov %[ptr], x18" : [ptr] "=r" (teb));
39653966#endif
39663967 return teb;
......@@ -3972,7 +3973,7 @@ static inline void* zig_x86_windows_teb(void) {
39723973 void* teb = 0;
39733974#if defined(zig_msvc)
39743975 teb = (void*)__readfsdword(0x18);
3975#elif defined(__GNUC__)
3976#elif defined(zig_gnuc)
39763977 __asm__ ("movl %%fs:0x18, %[ptr]" : [ptr] "=r" (teb));
39773978#endif
39783979 return teb;
......@@ -3984,7 +3985,7 @@ static inline void* zig_x86_64_windows_teb(void) {
39843985 void* teb = 0;
39853986#if defined(zig_msvc)
39863987 teb = (void*)__readgsqword(0x30);
3987#elif defined(__GNUC__)
3988#elif defined(zig_gnuc)
39883989 __asm__ ("movq %%gs:0x30, %[ptr]" : [ptr] "=r" (teb));
39893990#endif
39903991 return teb;