authorgravatar for topolarity@tapscott.meCody Tapscott <topolarity@tapscott.me> 2022-11-01 06:20:28-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-11-02 14:11:40-07:00
log3ee5cf627fbf2e5e006535b25d48e070b4442ce8
tree80a5640da04a3eaf02de8d5f4e159e0126844cdd
parenta0ac10d90310ae8c6f4400b522f4a5264e028ea5

stage2: Ensure f128 alignment matches c_longdouble alignment

On platforms where c_longdouble is 128-bits, interop with C code is simplified by making f128 match the alignment of c_longdouble. I intended to make this change as part of #13257, but I missed this part.

1 files changed, 4 insertions(+), 1 deletions(-)

src/type.zig+4-1
......@@ -2919,7 +2919,10 @@ pub const Type = extern union {
29192919 return AbiAlignmentAdvanced{ .scalar = abiAlignment(u80_ty, target) };
29202920 },
29212921 },
2922 .f128 => return AbiAlignmentAdvanced{ .scalar = 16 },
2922 .f128 => switch (CType.longdouble.sizeInBits(target)) {
2923 128 => return AbiAlignmentAdvanced{ .scalar = CType.longdouble.alignment(target) },
2924 else => return AbiAlignmentAdvanced{ .scalar = 16 },
2925 },
29232926
29242927 // TODO revisit this when we have the concept of the error tag type
29252928 .anyerror_void_error_union,