From 06c5bffcfc657df7216987aba5319761da9bbd97 Mon Sep 17 00:00:00 2001 From: lemon Date: Sat, 24 Jun 2023 22:53:14 +0200 Subject: ir: dattab shouldn't reset for every function this was causing later functions' data to override earlier data --- ir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ir.c b/ir.c index 4ed798e..69cb1fa 100644 --- a/ir.c +++ b/ir.c @@ -38,7 +38,7 @@ irinit(struct function *fn) vinit(&calltab, callsbuf, arraylength(callsbuf)); for (int i = 0; i < phitab.n; ++i) xbfree(phitab.p[i]); vinit(&phitab, phisbuf, arraylength(phisbuf)); - vinit(&dattab, datsbuf, arraylength(datsbuf)); + if (!dattab.p) vinit(&dattab, datsbuf, arraylength(datsbuf)); if (naddrht >= arraylength(addrht)/2) memset(addrht, naddrht = 0, sizeof addrht); if (nconht >= arraylength(conht)/2) -- cgit v1.2.3