zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 0d249e558a5b88cebad0efd4dd06a5b2ac349bcf (tree)
parent a7209e7d1215c025d814d981c83bc15a6ea4a117
Author: kcbanner <kcbanner@gmail.com>
Date:   Sat, 21 Jan 2023 02:22:40 -0500

cbe: fixup handling of c_longdouble for msvc abi

Diffstat:
Mlib/zig.h | 7+++++++
1 file changed, 7 insertions(+), 0 deletions(-)

diff --git a/lib/zig.h b/lib/zig.h @@ -1871,6 +1871,7 @@ typedef zig_i32 zig_f32; #define zig_bitSizeOf_f64 64 #define zig_libc_name_f64(name) name #if _MSC_VER +#define zig_bitSizeOf_c_longdouble 64 #define zig_as_special_constant_f64(sign, name, arg, repr) sign zig_as_f64(zig_msvc_flt_##name, ) #else #define zig_as_special_constant_f64(sign, name, arg, repr) zig_as_special_f64(sign, name, arg, repr) @@ -2000,12 +2001,18 @@ typedef zig_i128 zig_c_longdouble; static inline zig_##Type zig_float_from_repr_##Type(zig_##ReprType repr) { \ return *((zig_##Type*)&repr); \ } + zig_float_from_repr(f16, u16) zig_float_from_repr(f32, u32) zig_float_from_repr(f64, u64) zig_float_from_repr(f80, u128) zig_float_from_repr(f128, u128) +#if zig_bitSizeOf_c_longdouble == 80 zig_float_from_repr(c_longdouble, u128) +#else +#define zig_expand_float_from_repr(Type, ReprType) zig_float_from_repr(Type, ReprType) +zig_expand_float_from_repr(c_longdouble, zig_expand_concat(u, zig_bitSizeOf_c_longdouble)) +#endif #endif #define zig_cast_f16 (zig_f16)