aboutsummaryrefslogtreecommitdiffhomepage
path: root/ir/ir.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2025-11-23 12:02:27 +0100
committerlemon <lsof@mailbox.org>2025-11-23 15:29:55 +0100
commit1f72464c6451fcff16180d00af537225acc9b83c (patch)
tree3ea1d99164f990fb2ce331abbf44de2a0db48f25 /ir/ir.c
parentf4488e9153a4ead6f427902237cca93c67fec2bd (diff)
implement float varargs, and some other fixes
Diffstat (limited to 'ir/ir.c')
-rw-r--r--ir/ir.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ir/ir.c b/ir/ir.c
index 3b37405..412d0f9 100644
--- a/ir/ir.c
+++ b/ir/ir.c
@@ -326,7 +326,7 @@ blksplitafter(struct function *fn, struct block *blk, int idx)
memset(blk->jmp.arg, 0, sizeof blk->jmp.arg);
for (int i = 0; i < 2; ++i) {
struct block *s = (&blk->s1)[i];
- for (int i = 0; i < s->npred; ++i) {
+ if (s) for (int i = 0; i < s->npred; ++i) {
if (blkpred(s, i) == blk)
blkpred(s, i) = new;
}
@@ -334,6 +334,7 @@ blksplitafter(struct function *fn, struct block *blk, int idx)
new->s1 = blk->s1, new->s2 = blk->s2;
blk->s1 = new, blk->s2 = NULL;
addpred(new, blk);
+ fn->prop &= ~FNUSE;
return new;
}