diff --git a/src/lj_record.c b/src/lj_record.c index 9e0f3501..20a7ea36 100644 --- a/src/lj_record.c +++ b/src/lj_record.c @@ -1570,7 +1570,7 @@ static void rec_varg(jit_State *J, BCReg dst, ptrdiff_t nresults) J->maxslot = dst + (BCReg)nresults; } } else if (select_detect(J)) { /* y = select(x, ...) */ - TRef tridx = J->base[dst-1]; + TRef tridx = getslot(J, dst-1); TRef tr = TREF_NIL; ptrdiff_t idx = lj_ffrecord_select_mode(J, tridx, &J->L->base[dst-1]); if (idx < 0) goto nyivarg;