@@ -44,13 +44,19 @@ typedef char bool;
4444#define zig_threadlocal zig_threadlocal_unavailable
4545#endif
4646
47+ #if defined(__clang__ )
48+ #define zig_clang
49+ #elif defined(__GNUC__ )
50+ #define zig_gnuc
51+ #endif
52+
4753#if _MSC_VER
4854#define zig_const_arr
4955#else
5056#define zig_const_arr static const
5157#endif
5258
53- #if zig_has_attribute (naked ) || defined(__GNUC__ )
59+ #if zig_has_attribute (naked ) || defined(zig_gnuc )
5460#define zig_naked __attribute__((naked))
5561#elif defined(_MSC_VER )
5662#define zig_naked __declspec(naked)
@@ -90,7 +96,7 @@ typedef char bool;
9096#define zig_align_fn zig_align_fn_unavailable
9197#endif
9298
93- #if zig_has_builtin (unreachable ) || defined(__GNUC__ )
99+ #if zig_has_builtin (unreachable ) || defined(zig_gnuc )
94100#define zig_unreachable () __builtin_unreachable()
95101#else
96102#define zig_unreachable ()
@@ -113,7 +119,7 @@ typedef char bool;
113119
114120#if zig_has_builtin (debugtrap )
115121#define zig_breakpoint () __builtin_debugtrap()
116- #elif zig_has_builtin (trap ) || defined(__GNUC__ )
122+ #elif zig_has_builtin (trap ) || defined(zig_gnuc )
117123#define zig_breakpoint () __builtin_trap()
118124#elif defined(_MSC_VER ) || defined(__MINGW32__ ) || defined(__MINGW64__ )
119125#define zig_breakpoint () __debugbreak()
@@ -123,21 +129,21 @@ typedef char bool;
123129#define zig_breakpoint () raise(SIGTRAP)
124130#endif
125131
126- #if zig_has_builtin (return_address ) || defined(__GNUC__ )
132+ #if zig_has_builtin (return_address ) || defined(zig_gnuc )
127133#define zig_return_address () __builtin_extract_return_addr(__builtin_return_address(0))
128134#elif defined(_MSC_VER )
129135#define zig_return_address () _ReturnAddress()
130136#else
131137#define zig_return_address () 0
132138#endif
133139
134- #if zig_has_builtin (frame_address ) || defined(__GNUC__ )
140+ #if zig_has_builtin (frame_address ) || defined(zig_gnuc )
135141#define zig_frame_address () __builtin_frame_address(0)
136142#else
137143#define zig_frame_address () 0
138144#endif
139145
140- #if zig_has_builtin (prefetch ) || defined(__GNUC__ )
146+ #if zig_has_builtin (prefetch ) || defined(zig_gnuc )
141147#define zig_prefetch (addr , rw , locality ) __builtin_prefetch(addr, rw, locality)
142148#else
143149#define zig_prefetch (addr , rw , locality )
@@ -242,7 +248,7 @@ typedef char bool;
242248
243249#if __STDC_VERSION__ >= 201112L
244250#define zig_noreturn _Noreturn void
245- #elif zig_has_attribute (noreturn ) || defined(__GNUC__ )
251+ #elif zig_has_attribute (noreturn ) || defined(zig_gnuc )
246252#define zig_noreturn __attribute__((noreturn)) void
247253#elif _MSC_VER
248254#define zig_noreturn __declspec(noreturn) void
@@ -412,7 +418,7 @@ zig_int_helpers(32)
412418zig_int_helpers (64 )
413419
414420static inline bool zig_addo_u32 (zig_u32 * res , zig_u32 lhs , zig_u32 rhs , zig_u8 bits ) {
415- #if zig_has_builtin (add_overflow ) || defined(__GNUC__ )
421+ #if zig_has_builtin (add_overflow ) || defined(zig_gnuc )
416422 zig_u32 full_res ;
417423 bool overflow = __builtin_add_overflow (lhs , rhs , & full_res );
418424 * res = zig_wrap_u32 (full_res , bits );
@@ -431,7 +437,7 @@ static inline void zig_vaddo_u32(zig_u8 *ov, zig_u32 *res, int n,
431437
432438zig_extern zig_i32 __addosi4 (zig_i32 lhs , zig_i32 rhs , zig_c_int * overflow );
433439static inline bool zig_addo_i32 (zig_i32 * res , zig_i32 lhs , zig_i32 rhs , zig_u8 bits ) {
434- #if zig_has_builtin (add_overflow ) || defined(__GNUC__ )
440+ #if zig_has_builtin (add_overflow ) || defined(zig_gnuc )
435441 zig_i32 full_res ;
436442 bool overflow = __builtin_add_overflow (lhs , rhs , & full_res );
437443#else
@@ -450,7 +456,7 @@ static inline void zig_vaddo_i32(zig_u8 *ov, zig_i32 *res, int n,
450456}
451457
452458static inline bool zig_addo_u64 (zig_u64 * res , zig_u64 lhs , zig_u64 rhs , zig_u8 bits ) {
453- #if zig_has_builtin (add_overflow ) || defined(__GNUC__ )
459+ #if zig_has_builtin (add_overflow ) || defined(zig_gnuc )
454460 zig_u64 full_res ;
455461 bool overflow = __builtin_add_overflow (lhs , rhs , & full_res );
456462 * res = zig_wrap_u64 (full_res , bits );
@@ -469,7 +475,7 @@ static inline void zig_vaddo_u64(zig_u8 *ov, zig_u64 *res, int n,
469475
470476zig_extern zig_i64 __addodi4 (zig_i64 lhs , zig_i64 rhs , zig_c_int * overflow );
471477static inline bool zig_addo_i64 (zig_i64 * res , zig_i64 lhs , zig_i64 rhs , zig_u8 bits ) {
472- #if zig_has_builtin (add_overflow ) || defined(__GNUC__ )
478+ #if zig_has_builtin (add_overflow ) || defined(zig_gnuc )
473479 zig_i64 full_res ;
474480 bool overflow = __builtin_add_overflow (lhs , rhs , & full_res );
475481#else
@@ -488,7 +494,7 @@ static inline void zig_vaddo_i64(zig_u8 *ov, zig_i64 *res, int n,
488494}
489495
490496static inline bool zig_addo_u8 (zig_u8 * res , zig_u8 lhs , zig_u8 rhs , zig_u8 bits ) {
491- #if zig_has_builtin (add_overflow ) || defined(__GNUC__ )
497+ #if zig_has_builtin (add_overflow ) || defined(zig_gnuc )
492498 zig_u8 full_res ;
493499 bool overflow = __builtin_add_overflow (lhs , rhs , & full_res );
494500 * res = zig_wrap_u8 (full_res , bits );
@@ -508,7 +514,7 @@ static inline void zig_vaddo_u8(zig_u8 *ov, zig_u8 *res, int n,
508514}
509515
510516static inline bool zig_addo_i8 (zig_i8 * res , zig_i8 lhs , zig_i8 rhs , zig_u8 bits ) {
511- #if zig_has_builtin (add_overflow ) || defined(__GNUC__ )
517+ #if zig_has_builtin (add_overflow ) || defined(zig_gnuc )
512518 zig_i8 full_res ;
513519 bool overflow = __builtin_add_overflow (lhs , rhs , & full_res );
514520 * res = zig_wrap_i8 (full_res , bits );
@@ -528,7 +534,7 @@ static inline void zig_vaddo_i8(zig_u8 *ov, zig_i8 *res, int n,
528534}
529535
530536static inline bool zig_addo_u16 (zig_u16 * res , zig_u16 lhs , zig_u16 rhs , zig_u8 bits ) {
531- #if zig_has_builtin (add_overflow ) || defined(__GNUC__ )
537+ #if zig_has_builtin (add_overflow ) || defined(zig_gnuc )
532538 zig_u16 full_res ;
533539 bool overflow = __builtin_add_overflow (lhs , rhs , & full_res );
534540 * res = zig_wrap_u16 (full_res , bits );
@@ -548,7 +554,7 @@ static inline void zig_vaddo_u16(zig_u8 *ov, zig_u16 *res, int n,
548554}
549555
550556static inline bool zig_addo_i16 (zig_i16 * res , zig_i16 lhs , zig_i16 rhs , zig_u8 bits ) {
551- #if zig_has_builtin (add_overflow ) || defined(__GNUC__ )
557+ #if zig_has_builtin (add_overflow ) || defined(zig_gnuc )
552558 zig_i16 full_res ;
553559 bool overflow = __builtin_add_overflow (lhs , rhs , & full_res );
554560 * res = zig_wrap_i16 (full_res , bits );
@@ -568,7 +574,7 @@ static inline void zig_vaddo_i16(zig_u8 *ov, zig_i16 *res, int n,
568574}
569575
570576static inline bool zig_subo_u32 (zig_u32 * res , zig_u32 lhs , zig_u32 rhs , zig_u8 bits ) {
571- #if zig_has_builtin (sub_overflow ) || defined(__GNUC__ )
577+ #if zig_has_builtin (sub_overflow ) || defined(zig_gnuc )
572578 zig_u32 full_res ;
573579 bool overflow = __builtin_sub_overflow (lhs , rhs , & full_res );
574580 * res = zig_wrap_u32 (full_res , bits );
@@ -587,7 +593,7 @@ static inline void zig_vsubo_u32(zig_u8 *ov, zig_u32 *res, int n,
587593
588594zig_extern zig_i32 __subosi4 (zig_i32 lhs , zig_i32 rhs , zig_c_int * overflow );
589595static inline bool zig_subo_i32 (zig_i32 * res , zig_i32 lhs , zig_i32 rhs , zig_u8 bits ) {
590- #if zig_has_builtin (sub_overflow ) || defined(__GNUC__ )
596+ #if zig_has_builtin (sub_overflow ) || defined(zig_gnuc )
591597 zig_i32 full_res ;
592598 bool overflow = __builtin_sub_overflow (lhs , rhs , & full_res );
593599#else
@@ -606,7 +612,7 @@ static inline void zig_vsubo_i32(zig_u8 *ov, zig_i32 *res, int n,
606612}
607613
608614static inline bool zig_subo_u64 (zig_u64 * res , zig_u64 lhs , zig_u64 rhs , zig_u8 bits ) {
609- #if zig_has_builtin (sub_overflow ) || defined(__GNUC__ )
615+ #if zig_has_builtin (sub_overflow ) || defined(zig_gnuc )
610616 zig_u64 full_res ;
611617 bool overflow = __builtin_sub_overflow (lhs , rhs , & full_res );
612618 * res = zig_wrap_u64 (full_res , bits );
@@ -625,7 +631,7 @@ static inline void zig_vsubo_u64(zig_u8 *ov, zig_u64 *res, int n,
625631
626632zig_extern zig_i64 __subodi4 (zig_i64 lhs , zig_i64 rhs , zig_c_int * overflow );
627633static inline bool zig_subo_i64 (zig_i64 * res , zig_i64 lhs , zig_i64 rhs , zig_u8 bits ) {
628- #if zig_has_builtin (sub_overflow ) || defined(__GNUC__ )
634+ #if zig_has_builtin (sub_overflow ) || defined(zig_gnuc )
629635 zig_i64 full_res ;
630636 bool overflow = __builtin_sub_overflow (lhs , rhs , & full_res );
631637#else
@@ -644,7 +650,7 @@ static inline void zig_vsubo_i64(zig_u8 *ov, zig_i64 *res, int n,
644650}
645651
646652static inline bool zig_subo_u8 (zig_u8 * res , zig_u8 lhs , zig_u8 rhs , zig_u8 bits ) {
647- #if zig_has_builtin (sub_overflow ) || defined(__GNUC__ )
653+ #if zig_has_builtin (sub_overflow ) || defined(zig_gnuc )
648654 zig_u8 full_res ;
649655 bool overflow = __builtin_sub_overflow (lhs , rhs , & full_res );
650656 * res = zig_wrap_u8 (full_res , bits );
@@ -664,7 +670,7 @@ static inline void zig_vsubo_u8(zig_u8 *ov, zig_u8 *res, int n,
664670}
665671
666672static inline bool zig_subo_i8 (zig_i8 * res , zig_i8 lhs , zig_i8 rhs , zig_u8 bits ) {
667- #if zig_has_builtin (sub_overflow ) || defined(__GNUC__ )
673+ #if zig_has_builtin (sub_overflow ) || defined(zig_gnuc )
668674 zig_i8 full_res ;
669675 bool overflow = __builtin_sub_overflow (lhs , rhs , & full_res );
670676 * res = zig_wrap_i8 (full_res , bits );
@@ -685,7 +691,7 @@ static inline void zig_vsubo_i8(zig_u8 *ov, zig_i8 *res, int n,
685691
686692
687693static inline bool zig_subo_u16 (zig_u16 * res , zig_u16 lhs , zig_u16 rhs , zig_u8 bits ) {
688- #if zig_has_builtin (sub_overflow ) || defined(__GNUC__ )
694+ #if zig_has_builtin (sub_overflow ) || defined(zig_gnuc )
689695 zig_u16 full_res ;
690696 bool overflow = __builtin_sub_overflow (lhs , rhs , & full_res );
691697 * res = zig_wrap_u16 (full_res , bits );
@@ -706,7 +712,7 @@ static inline void zig_vsubo_u16(zig_u8 *ov, zig_u16 *res, int n,
706712
707713
708714static inline bool zig_subo_i16 (zig_i16 * res , zig_i16 lhs , zig_i16 rhs , zig_u8 bits ) {
709- #if zig_has_builtin (sub_overflow ) || defined(__GNUC__ )
715+ #if zig_has_builtin (sub_overflow ) || defined(zig_gnuc )
710716 zig_i16 full_res ;
711717 bool overflow = __builtin_sub_overflow (lhs , rhs , & full_res );
712718 * res = zig_wrap_i16 (full_res , bits );
@@ -726,7 +732,7 @@ static inline void zig_vsubo_i16(zig_u8 *ov, zig_i16 *res, int n,
726732}
727733
728734static inline bool zig_mulo_u32 (zig_u32 * res , zig_u32 lhs , zig_u32 rhs , zig_u8 bits ) {
729- #if zig_has_builtin (mul_overflow ) || defined(__GNUC__ )
735+ #if zig_has_builtin (mul_overflow ) || defined(zig_gnuc )
730736 zig_u32 full_res ;
731737 bool overflow = __builtin_mul_overflow (lhs , rhs , & full_res );
732738 * res = zig_wrap_u32 (full_res , bits );
@@ -745,7 +751,7 @@ static inline void zig_vmulo_u32(zig_u8 *ov, zig_u32 *res, int n,
745751
746752zig_extern zig_i32 __mulosi4 (zig_i32 lhs , zig_i32 rhs , zig_c_int * overflow );
747753static inline bool zig_mulo_i32 (zig_i32 * res , zig_i32 lhs , zig_i32 rhs , zig_u8 bits ) {
748- #if zig_has_builtin (mul_overflow ) || defined(__GNUC__ )
754+ #if zig_has_builtin (mul_overflow ) || defined(zig_gnuc )
749755 zig_i32 full_res ;
750756 bool overflow = __builtin_mul_overflow (lhs , rhs , & full_res );
751757#else
@@ -764,7 +770,7 @@ static inline void zig_vmulo_i32(zig_u8 *ov, zig_i32 *res, int n,
764770}
765771
766772static inline bool zig_mulo_u64 (zig_u64 * res , zig_u64 lhs , zig_u64 rhs , zig_u8 bits ) {
767- #if zig_has_builtin (mul_overflow ) || defined(__GNUC__ )
773+ #if zig_has_builtin (mul_overflow ) || defined(zig_gnuc )
768774 zig_u64 full_res ;
769775 bool overflow = __builtin_mul_overflow (lhs , rhs , & full_res );
770776 * res = zig_wrap_u64 (full_res , bits );
@@ -783,7 +789,7 @@ static inline void zig_vmulo_u64(zig_u8 *ov, zig_u64 *res, int n,
783789
784790zig_extern zig_i64 __mulodi4 (zig_i64 lhs , zig_i64 rhs , zig_c_int * overflow );
785791static inline bool zig_mulo_i64 (zig_i64 * res , zig_i64 lhs , zig_i64 rhs , zig_u8 bits ) {
786- #if zig_has_builtin (mul_overflow ) || defined(__GNUC__ )
792+ #if zig_has_builtin (mul_overflow ) || defined(zig_gnuc )
787793 zig_i64 full_res ;
788794 bool overflow = __builtin_mul_overflow (lhs , rhs , & full_res );
789795#else
@@ -802,7 +808,7 @@ static inline void zig_vmulo_i64(zig_u8 *ov, zig_i64 *res, int n,
802808}
803809
804810static inline bool zig_mulo_u8 (zig_u8 * res , zig_u8 lhs , zig_u8 rhs , zig_u8 bits ) {
805- #if zig_has_builtin (mul_overflow ) || defined(__GNUC__ )
811+ #if zig_has_builtin (mul_overflow ) || defined(zig_gnuc )
806812 zig_u8 full_res ;
807813 bool overflow = __builtin_mul_overflow (lhs , rhs , & full_res );
808814 * res = zig_wrap_u8 (full_res , bits );
@@ -822,7 +828,7 @@ static inline void zig_vmulo_u8(zig_u8 *ov, zig_u8 *res, int n,
822828}
823829
824830static inline bool zig_mulo_i8 (zig_i8 * res , zig_i8 lhs , zig_i8 rhs , zig_u8 bits ) {
825- #if zig_has_builtin (mul_overflow ) || defined(__GNUC__ )
831+ #if zig_has_builtin (mul_overflow ) || defined(zig_gnuc )
826832 zig_i8 full_res ;
827833 bool overflow = __builtin_mul_overflow (lhs , rhs , & full_res );
828834 * res = zig_wrap_i8 (full_res , bits );
@@ -842,7 +848,7 @@ static inline void zig_vmulo_i8(zig_u8 *ov, zig_i8 *res, int n,
842848}
843849
844850static inline bool zig_mulo_u16 (zig_u16 * res , zig_u16 lhs , zig_u16 rhs , zig_u8 bits ) {
845- #if zig_has_builtin (mul_overflow ) || defined(__GNUC__ )
851+ #if zig_has_builtin (mul_overflow ) || defined(zig_gnuc )
846852 zig_u16 full_res ;
847853 bool overflow = __builtin_mul_overflow (lhs , rhs , & full_res );
848854 * res = zig_wrap_u16 (full_res , bits );
@@ -862,7 +868,7 @@ static inline void zig_vmulo_u16(zig_u8 *ov, zig_u16 *res, int n,
862868}
863869
864870static inline bool zig_mulo_i16 (zig_i16 * res , zig_i16 lhs , zig_i16 rhs , zig_u8 bits ) {
865- #if zig_has_builtin (mul_overflow ) || defined(__GNUC__ )
871+ #if zig_has_builtin (mul_overflow ) || defined(zig_gnuc )
866872 zig_i16 full_res ;
867873 bool overflow = __builtin_mul_overflow (lhs , rhs , & full_res );
868874 * res = zig_wrap_i16 (full_res , bits );
@@ -977,7 +983,7 @@ static inline zig_i8 zig_byte_swap_i8(zig_i8 val, zig_u8 bits) {
977983
978984static inline zig_u16 zig_byte_swap_u16 (zig_u16 val , zig_u8 bits ) {
979985 zig_u16 full_res ;
980- #if zig_has_builtin (bswap16 ) || defined(__GNUC__ )
986+ #if zig_has_builtin (bswap16 ) || defined(zig_gnuc )
981987 full_res = __builtin_bswap16 (val );
982988#else
983989 full_res = (zig_u16 )zig_byte_swap_u8 ((zig_u8 )(val >> 0 ), 8 ) << 8 |
@@ -992,7 +998,7 @@ static inline zig_i16 zig_byte_swap_i16(zig_i16 val, zig_u8 bits) {
992998
993999static inline zig_u32 zig_byte_swap_u32 (zig_u32 val , zig_u8 bits ) {
9941000 zig_u32 full_res ;
995- #if zig_has_builtin (bswap32 ) || defined(__GNUC__ )
1001+ #if zig_has_builtin (bswap32 ) || defined(zig_gnuc )
9961002 full_res = __builtin_bswap32 (val );
9971003#else
9981004 full_res = (zig_u32 )zig_byte_swap_u16 ((zig_u16 )(val >> 0 ), 16 ) << 16 |
@@ -1007,7 +1013,7 @@ static inline zig_i32 zig_byte_swap_i32(zig_i32 val, zig_u8 bits) {
10071013
10081014static inline zig_u64 zig_byte_swap_u64 (zig_u64 val , zig_u8 bits ) {
10091015 zig_u64 full_res ;
1010- #if zig_has_builtin (bswap64 ) || defined(__GNUC__ )
1016+ #if zig_has_builtin (bswap64 ) || defined(zig_gnuc )
10111017 full_res = __builtin_bswap64 (val );
10121018#else
10131019 full_res = (zig_u64 )zig_byte_swap_u32 ((zig_u32 )(val >> 0 ), 32 ) << 32 |
@@ -1087,7 +1093,7 @@ static inline zig_i64 zig_bit_reverse_i64(zig_i64 val, zig_u8 bits) {
10871093 static inline zig_u8 zig_popcount_i##w(zig_i##w val, zig_u8 bits) { \
10881094 return zig_popcount_u##w((zig_u##w)val, bits); \
10891095 }
1090- #if zig_has_builtin (popcount ) || defined(__GNUC__ )
1096+ #if zig_has_builtin (popcount ) || defined(zig_gnuc )
10911097#define zig_builtin_popcount (w ) \
10921098 static inline zig_u8 zig_popcount_u##w(zig_u##w val, zig_u8 bits) { \
10931099 (void)bits; \
@@ -1116,7 +1122,7 @@ zig_builtin_popcount(64)
11161122 static inline zig_u8 zig_ctz_i##w(zig_i##w val, zig_u8 bits) { \
11171123 return zig_ctz_u##w((zig_u##w)val, bits); \
11181124 }
1119- #if zig_has_builtin (ctz ) || defined(__GNUC__ )
1125+ #if zig_has_builtin (ctz ) || defined(zig_gnuc )
11201126#define zig_builtin_ctz (w ) \
11211127 static inline zig_u8 zig_ctz_u##w(zig_u##w val, zig_u8 bits) { \
11221128 if (val == 0) return bits; \
@@ -1141,7 +1147,7 @@ zig_builtin_ctz(64)
11411147 static inline zig_u8 zig_clz_i##w(zig_i##w val, zig_u8 bits) { \
11421148 return zig_clz_u##w((zig_u##w)val, bits); \
11431149 }
1144- #if zig_has_builtin (clz ) || defined(__GNUC__ )
1150+ #if zig_has_builtin (clz ) || defined(zig_gnuc )
11451151#define zig_builtin_clz (w ) \
11461152 static inline zig_u8 zig_clz_u##w(zig_u##w val, zig_u8 bits) { \
11471153 if (val == 0) return bits; \
@@ -1764,7 +1770,7 @@ static inline zig_i128 zig_bit_reverse_i128(zig_i128 val, zig_u8 bits) {
17641770#define __builtin_infl () zig_msvc_flt_infl
17651771#endif
17661772
1767- #if (zig_has_builtin (nan ) && zig_has_builtin (nans ) && zig_has_builtin (inf )) || defined( __GNUC__ )
1773+ #if (zig_has_builtin (nan ) && zig_has_builtin (nans ) && zig_has_builtin (inf ))
17681774#define zig_has_float_builtins 1
17691775#define zig_as_special_f16 (sign , name , arg , repr ) sign zig_as_f16(__builtin_##name, )(arg)
17701776#define zig_as_special_f32 (sign , name , arg , repr ) sign zig_as_f32(__builtin_##name, )(arg)
@@ -1796,7 +1802,7 @@ typedef double zig_f16;
17961802#define zig_bitSizeOf_c_longdouble 16
17971803typedef long double zig_f16 ;
17981804#define zig_as_f16 (fp , repr ) fp##l
1799- #elif FLT16_MANT_DIG == 11 && (zig_has_builtin (inff16 ) || defined(__GNUC__ ))
1805+ #elif FLT16_MANT_DIG == 11 && (zig_has_builtin (inff16 ) || defined(zig_gnuc ))
18001806typedef _Float16 zig_f16 ;
18011807#define zig_as_f16 (fp , repr ) fp##f16
18021808#elif defined(__SIZEOF_FP16__ )
0 commit comments