aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-11-13 01:38:46 -0500
committerGitHub <noreply@github.com>2023-11-13 01:38:46 -0500
commitcaae40c216000be156f87c9e27cba3d0c45bb8c7 (patch)
treedf72a728eb4440c4fb3745ffaceb33d34cb7f335 /lib
parent91b897ef581aec65dd7a080754ab09d2e176ed8f (diff)
parent557cb646918fd58e6a71e7be9fb49434e2930c18 (diff)
downloadzig-caae40c216000be156f87c9e27cba3d0c45bb8c7.tar.gz
zig-caae40c216000be156f87c9e27cba3d0c45bb8c7.zip
Merge pull request #17892 from ziglang/bootstrap-without-llvm
Add an easy way to build from source without LLVM
Diffstat (limited to 'lib')
-rw-r--r--lib/zig.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/zig.h b/lib/zig.h
index 233c2961cb..acd7b1d700 100644
--- a/lib/zig.h
+++ b/lib/zig.h
@@ -61,6 +61,12 @@ typedef char bool;
#define zig_gnuc
#endif
+#if defined(zig_gnuc) && (defined(__i386__) || defined(__x86_64__))
+#define zig_f128_has_miscompilations 1
+#else
+#define zig_f128_has_miscompilations 0
+#endif
+
#if _MSC_VER
#define zig_const_arr
#define zig_callconv(c) __##c
@@ -3155,22 +3161,22 @@ typedef zig_u128 zig_f80;
#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)
-#if FLT_MANT_DIG == 113
+#if !zig_f128_has_miscompilations && FLT_MANT_DIG == 113
typedef float zig_f128;
#define zig_make_f128(fp, repr) fp##f
-#elif DBL_MANT_DIG == 113
+#elif !zig_f128_has_miscompilations && DBL_MANT_DIG == 113
typedef double zig_f128;
#define zig_make_f128(fp, repr) fp
-#elif LDBL_MANT_DIG == 113
+#elif !zig_f128_has_miscompilations && LDBL_MANT_DIG == 113
typedef long double zig_f128;
#define zig_make_f128(fp, repr) fp##l
-#elif FLT128_MANT_DIG == 113
+#elif !zig_f128_has_miscompilations && FLT128_MANT_DIG == 113
typedef _Float128 zig_f128;
#define zig_make_f128(fp, repr) fp##f128
-#elif FLT64X_MANT_DIG == 113
+#elif !zig_f128_has_miscompilations && FLT64X_MANT_DIG == 113
typedef _Float64x zig_f128;
#define zig_make_f128(fp, repr) fp##f64x
-#elif defined(__SIZEOF_FLOAT128__)
+#elif !zig_f128_has_miscompilations && defined(__SIZEOF_FLOAT128__)
typedef __float128 zig_f128;
#define zig_make_f128(fp, repr) fp##q
#undef zig_make_special_f128