commit 6128adac3d9f4dac846455639136cbc5f89b32b5
parent ff579235416fd8ab1d71782c281ae308af8b57b7
Author: erai <erai@omiltem.net>
Date: Thu, 6 Feb 2025 00:07:33 +0000
fix varref fold
Diffstat:
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/bootstrap.sh b/bootstrap.sh
@@ -5,7 +5,7 @@ LIBS="bufio.om lib.om alloc.om syscall.om"
SOURCES="cc1.om type.om parse2.om parse3.om peglib.om as.om decl.om node.om peg.om parsepeg.om ir.om ircout.om"
# Build the bootstrap compiler from c
-gcc -std=c99 ${BOOTSTRAP} -o cc0
+gcc -O1 -g -std=c99 ${BOOTSTRAP} -o cc0
./cc0 -P P_ cc3.peg -o parse3.om
./cc0 -P PEG_ peg.peg -o parsepeg.om
./cc0 ${LIBS} ${SOURCES} -o cc1 -n cc1.lines -G cc1.call
diff --git a/cc0.c b/cc0.c
@@ -36723,7 +36723,7 @@ b17:
#line 2176 "ir.om"
v_ret = v22;
#line 2177 "ir.om"
- *(unsigned long *)((v_ret) + (24UL)) = *(unsigned long *)((v_o) + (24UL));
+ *(unsigned long *)((v_ret) + (24UL)) = *(unsigned long *)((v_a) + (24UL));
#line 2178 "ir.om"
*(unsigned long *)((v_ret) + (64UL)) = *(unsigned long *)((v_o) + (64UL));
#line 2179 "ir.om"
@@ -77863,7 +77863,7 @@ b34:
}
b44:
#line 902 "ir.om"
- v_ic = *(unsigned long *)((v_ic) + (32UL));
+ *v_loopctx = *(unsigned long *)((v_ic) + (32UL));
#line 903 "ir.om"
v54 = (unsigned long)&my_mkirblock;
#line 903 "ir.om"
@@ -77916,7 +77916,7 @@ b49:
v73 = ((unsigned long (*)())(v69))(v70, v71, v72);
b50:
#line 917 "ir.om"
- *(unsigned long *)((v_ic) + (32UL)) = v_ic;
+ *(unsigned long *)((v_ic) + (32UL)) = *v_loopctx;
#line 917 "ir.om"
goto b7;
b45:
diff --git a/ir.om b/ir.om
@@ -2174,7 +2174,7 @@ func irexpr_fold(ic: *irfunc, o: *irop): *irop {
// Eliminate *& redundant operations
if (kind == IOP_LOAD && a.kind == IOP_VARREF) {
ret = mkirop(ic, IOP_VAR, nil, nil);
- ret.n = o.n;
+ ret.n = a.n;
ret.filename = o.filename;
ret.lineno = o.lineno;
ret.colno = o.colno;