commit d004f775ce4a288c03d6986518bc6fe423c99e3c (tree)
parent 10083cc23e66a62a85d642faf7891b9ef3a6cdde
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Fri, 19 Jun 2026 15:29:53 +0200
Merge pull request 'fix C ABI lowering for x32 + re-enable tests' (#35848) from alexrp/zig:x32-abi-tests into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/35848
Diffstat:
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/codegen/llvm/FuncGen.zig b/src/codegen/llvm/FuncGen.zig
@@ -6663,7 +6663,7 @@ const ParamTypeIterator = struct {
.async => {
@panic("TODO implement async function lowering in the LLVM backend");
},
- .x86_64_sysv => return it.nextSystemV(ty),
+ .x86_64_sysv, .x86_64_x32 => return it.nextSystemV(ty),
.x86_64_win => return it.nextWin64(ty),
.x86_stdcall => {
it.zig_index += 1;
@@ -6940,7 +6940,7 @@ pub fn firstParamSRet(fn_info: InternPool.Key.FuncType, zcu: *Zcu, target: *cons
return switch (fn_info.cc) {
.auto => returnTypeByRef(zcu, target, return_type),
- .x86_64_sysv => firstParamSRetSystemV(return_type, zcu, target),
+ .x86_64_sysv, .x86_64_x32 => firstParamSRetSystemV(return_type, zcu, target),
.x86_64_win => x86_64_abi.classifyWindows(return_type, zcu, target, .ret) == .memory,
.x86_sysv, .x86_win => isByRef(return_type, zcu),
.x86_stdcall => !isScalar(zcu, return_type),
@@ -6999,7 +6999,7 @@ pub fn lowerFnRetTy(o: *Object, fn_info: InternPool.Key.FuncType) Allocator.Erro
switch (fn_info.cc) {
.@"inline" => unreachable,
.auto => return if (returnTypeByRef(zcu, target, return_type)) .void else o.lowerType(return_type),
- .x86_64_sysv => return lowerSystemVFnRetTy(o, fn_info),
+ .x86_64_sysv, .x86_64_x32 => return lowerSystemVFnRetTy(o, fn_info),
.x86_64_win => return lowerWin64FnRetTy(o, fn_info),
.x86_stdcall => return if (isScalar(zcu, return_type)) o.lowerType(return_type) else .void,
.x86_fastcall => return lowerX86FastcallFnRetTy(o, zcu, return_type),
diff --git a/test/tests.zig b/test/tests.zig
@@ -1991,13 +1991,13 @@ const c_abi_targets = blk: {
},
.use_llvm = true,
},
- // .{
- // .target = .{
- // .cpu_arch = .x86_64,
- // .os_tag = .linux,
- // .abi = .muslx32,
- // },
- // },
+ .{
+ .target = .{
+ .cpu_arch = .x86_64,
+ .os_tag = .linux,
+ .abi = .muslx32,
+ },
+ },
// WASI Targets