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 @@...@@ -4,6 +4,7 @@
4#define zig_msvc4#define zig_msvc
5#elif defined(__clang__)5#elif defined(__clang__)
6#define zig_clang6#define zig_clang
7#define zig_gnuc
7#elif defined(__GNUC__)8#elif defined(__GNUC__)
8#define zig_gnuc9#define zig_gnuc
9#elif defined(__TINYC__)10#elif defined(__TINYC__)
...@@ -65,7 +66,7 @@ typedef char bool;...@@ -65,7 +66,7 @@ typedef char bool;
65#define zig_threadlocal thread_local66#define zig_threadlocal thread_local
66#elif __STDC_VERSION__ >= 201112L67#elif __STDC_VERSION__ >= 201112L
67#define zig_threadlocal _Thread_local68#define zig_threadlocal _Thread_local
68#elif defined(__GNUC__) || defined(zig_slimcc)69#elif defined(zig_gnuc) || defined(zig_slimcc)
69#define zig_threadlocal __thread70#define zig_threadlocal __thread
70#elif defined(zig_msvc)71#elif defined(zig_msvc)
71#define zig_threadlocal __declspec(thread)72#define zig_threadlocal __declspec(thread)
...@@ -73,7 +74,7 @@ typedef char bool;...@@ -73,7 +74,7 @@ typedef char bool;
73#define zig_threadlocal zig_threadlocal_unavailable74#define zig_threadlocal zig_threadlocal_unavailable
74#endif75#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__))
77#define zig_f128_has_miscompilations 178#define zig_f128_has_miscompilations 1
78#else79#else
79#define zig_f128_has_miscompilations 080#define zig_f128_has_miscompilations 0
...@@ -132,7 +133,7 @@ typedef char bool;...@@ -132,7 +133,7 @@ typedef char bool;
132133
133#if __STDC_VERSION__ >= 199901L134#if __STDC_VERSION__ >= 199901L
134#define zig_restrict restrict135#define zig_restrict restrict
135#elif defined(__GNUC__) || defined(zig_tinyc)136#elif defined(zig_gnuc) || defined(zig_tinyc)
136#define zig_restrict __restrict137#define zig_restrict __restrict
137#else138#else
138#define zig_restrict139#define zig_restrict
...@@ -3626,7 +3627,7 @@ typedef enum memory_order zig_memory_order;...@@ -3626,7 +3627,7 @@ typedef enum memory_order zig_memory_order;
3626#define zig_atomicrmw_add_float zig_atomicrmw_add3627#define zig_atomicrmw_add_float zig_atomicrmw_add
3627#undef zig_atomicrmw_sub_float3628#undef zig_atomicrmw_sub_float
3628#define zig_atomicrmw_sub_float zig_atomicrmw_sub3629#define zig_atomicrmw_sub_float zig_atomicrmw_sub
3629#elif defined(__GNUC__)3630#elif defined(zig_gnuc)
3630typedef int zig_memory_order;3631typedef int zig_memory_order;
3631#define zig_memory_order_relaxed __ATOMIC_RELAXED3632#define zig_memory_order_relaxed __ATOMIC_RELAXED
3632#define zig_memory_order_acquire __ATOMIC_ACQUIRE3633#define zig_memory_order_acquire __ATOMIC_ACQUIRE
...@@ -3948,7 +3949,7 @@ static inline void* zig_thumb_windows_teb(void) {...@@ -3948,7 +3949,7 @@ static inline void* zig_thumb_windows_teb(void) {
3948 void* teb = 0;3949 void* teb = 0;
3949#if defined(zig_msvc)3950#if defined(zig_msvc)
3950 teb = (void*)_MoveFromCoprocessor(15, 0, 13, 0, 2);3951 teb = (void*)_MoveFromCoprocessor(15, 0, 13, 0, 2);
3951#elif defined(__GNUC__)3952#elif defined(zig_gnuc)
3952 __asm__ ("mrc p15, 0, %[ptr], c13, c0, 2" : [ptr] "=r" (teb));3953 __asm__ ("mrc p15, 0, %[ptr], c13, c0, 2" : [ptr] "=r" (teb));
3953#endif3954#endif
3954 return teb;3955 return teb;
...@@ -3960,7 +3961,7 @@ static inline void* zig_aarch64_windows_teb(void) {...@@ -3960,7 +3961,7 @@ static inline void* zig_aarch64_windows_teb(void) {
3960 void* teb = 0;3961 void* teb = 0;
3961#if defined(zig_msvc)3962#if defined(zig_msvc)
3962 teb = (void*)__readx18qword(0x0);3963 teb = (void*)__readx18qword(0x0);
3963#elif defined(__GNUC__)3964#elif defined(zig_gnuc)
3964 __asm__ ("mov %[ptr], x18" : [ptr] "=r" (teb));3965 __asm__ ("mov %[ptr], x18" : [ptr] "=r" (teb));
3965#endif3966#endif
3966 return teb;3967 return teb;
...@@ -3972,7 +3973,7 @@ static inline void* zig_x86_windows_teb(void) {...@@ -3972,7 +3973,7 @@ static inline void* zig_x86_windows_teb(void) {
3972 void* teb = 0;3973 void* teb = 0;
3973#if defined(zig_msvc)3974#if defined(zig_msvc)
3974 teb = (void*)__readfsdword(0x18);3975 teb = (void*)__readfsdword(0x18);
3975#elif defined(__GNUC__)3976#elif defined(zig_gnuc)
3976 __asm__ ("movl %%fs:0x18, %[ptr]" : [ptr] "=r" (teb));3977 __asm__ ("movl %%fs:0x18, %[ptr]" : [ptr] "=r" (teb));
3977#endif3978#endif
3978 return teb;3979 return teb;
...@@ -3984,7 +3985,7 @@ static inline void* zig_x86_64_windows_teb(void) {...@@ -3984,7 +3985,7 @@ static inline void* zig_x86_64_windows_teb(void) {
3984 void* teb = 0;3985 void* teb = 0;
3985#if defined(zig_msvc)3986#if defined(zig_msvc)
3986 teb = (void*)__readgsqword(0x30);3987 teb = (void*)__readgsqword(0x30);
3987#elif defined(__GNUC__)3988#elif defined(zig_gnuc)
3988 __asm__ ("movq %%gs:0x30, %[ptr]" : [ptr] "=r" (teb));3989 __asm__ ("movq %%gs:0x30, %[ptr]" : [ptr] "=r" (teb));
3989#endif3990#endif
3990 return teb;3991 return teb;