From fdbe13a0e9fe866310ec198fec43172ccad89106 Mon Sep 17 00:00:00 2001 From: lemon Date: Thu, 19 Mar 2026 21:42:42 +0100 Subject: c: fix isboollike() for phis --- src/c.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/c.c b/src/c.c index c8a040b..e7f902e 100644 --- a/src/c.c +++ b/src/c.c @@ -3179,16 +3179,17 @@ isboollike(Function *fn, Ref r) if (ins->op == Ophi) { /* check if all the phi args are boollike */ Block *blk; Ref *phi = NULL; - for (blk = fn->curblk; phi == NULL; blk = blk->lprev) { + for (blk = fn->curblk;; blk = blk->lprev) { /* find blk that defines phi */ assert(blk != fn->entry); for (int i = 0; i < blk->phi.n; ++i){ if (blk->phi.p[i] == r.i) { phi = phitab.p[ins->l.i]; - break; + goto Found; } } } + Found: for (int i = 0; i < blk->npred; ++i) { if (!isboollike(fn, phi[i])) { return 0; -- cgit v1.2.3