From 2801500a26084491ae035170cad4700513790890 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 24 May 2021 22:25:26 +0200 Subject: [PATCH] Fix use-def analysis for BC_VARG. Reported by Ryan Lucia. --- src/lj_snap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lj_snap.c b/src/lj_snap.c index fd7d806a..0c5e8e90 100644 --- a/src/lj_snap.c +++ b/src/lj_snap.c @@ -238,7 +238,7 @@ static BCReg snap_usedef(jit_State *J, uint8_t *udf, if (!(op == BC_ISTC || op == BC_ISFC)) DEF_SLOT(bc_a(ins)); break; case BCMbase: - if (op >= BC_CALLM && op <= BC_VARG) { + if (op >= BC_CALLM && op <= BC_ITERN) { BCReg top = (op == BC_CALLM || op == BC_CALLMT || bc_c(ins) == 0) ? maxslot : (bc_a(ins) + bc_c(ins)); s = bc_a(ins) - ((op == BC_ITERC || op == BC_ITERN) ? 3 : 0); @@ -248,6 +248,8 @@ static BCReg snap_usedef(jit_State *J, uint8_t *udf, for (s = 0; s < bc_a(ins); s++) DEF_SLOT(s); return 0; } + } else if (op == BC_VARG) { + return maxslot; /* NYI: punt. */ } else if (op == BC_KNIL) { for (s = bc_a(ins); s <= bc_d(ins); s++) DEF_SLOT(s); } else if (op == BC_TSETM) {