summaryrefslogtreecommitdiff
path: root/src/lj_record.c
diff options
context:
space:
mode:
authorMike Pall <mike>2011-06-01 00:49:29 +0200
committerMike Pall <mike>2011-06-01 00:49:29 +0200
commit8dd09d5041545f95cd946ebc1e94b397fd2f4811 (patch)
tree4add62f892a7add41db9d27b6df3c247b5cbee4e /src/lj_record.c
parent2d0b32500ead55d9dc141e0328b9994db380fb18 (diff)
downloadluajit-8dd09d5041545f95cd946ebc1e94b397fd2f4811.tar.gz
luajit-8dd09d5041545f95cd946ebc1e94b397fd2f4811.tar.bz2
luajit-8dd09d5041545f95cd946ebc1e94b397fd2f4811.zip
DUALNUM: Fix missing type check for loop index slot.
Diffstat (limited to 'src/lj_record.c')
-rw-r--r--src/lj_record.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index b712ec56..689d7b80 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -388,7 +388,8 @@ static void rec_for_loop(jit_State *J, const BCIns *fori, ScEvEntry *scev,
388 rec_for_check(J, t, dir, stop, step); 388 rec_for_check(J, t, dir, stop, step);
389 scev->start = tref_ref(find_kinit(J, fori, ra+FORL_IDX, IRT_INT)); 389 scev->start = tref_ref(find_kinit(J, fori, ra+FORL_IDX, IRT_INT));
390 tc = (LJ_DUALNUM && 390 tc = (LJ_DUALNUM &&
391 !(scev->start && irref_isk(scev->stop) && irref_isk(scev->step))) ? 391 !(scev->start && irref_isk(scev->stop) && irref_isk(scev->step) &&
392 tvisint(&tv[FORL_IDX]) == (t == IRT_INT))) ?
392 IRSLOAD_TYPECHECK : 0; 393 IRSLOAD_TYPECHECK : 0;
393 if (tc) { 394 if (tc) {
394 J->base[ra+FORL_STOP] = stop; 395 J->base[ra+FORL_STOP] = stop;