aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ir_abi0.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2026-03-25 17:20:20 +0100
committerlemon <lsof@mailbox.org>2026-03-25 17:20:20 +0100
commitf38a3f2e78bc3fff37ab2107d448865f5b67a4d8 (patch)
treecc7ba23af9dc178e2994e7805dd041304a6a7911 /src/ir_abi0.c
parent79d6ac719042371d255ed1cf412e3232d13d1e56 (diff)
abi: fix use bug preventing mem2reg optimization of struct return
Diffstat (limited to 'src/ir_abi0.c')
-rw-r--r--src/ir_abi0.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/ir_abi0.c b/src/ir_abi0.c
index 8722438..dd8bc40 100644
--- a/src/ir_abi0.c
+++ b/src/ir_abi0.c
@@ -428,6 +428,7 @@ abi0(Function *fn)
if (isagg(fn->retty) && blk->jmp.t == Jret && blk->jmp.arg[0].bits) {
assert(!blk->jmp.arg[1].bits);
if (fn->nabiret) { /* aggregate return in register(s) */
+ deluse(blk, USERJUMP, blk->jmp.arg[0]);
Ref r[2];
int curi = blk->ins.n;
load2regs(r, mkirtype(fn->retty), blk->jmp.arg[0], fn->nabiret, fn->abiret, r2off, blk, &curi);