diff --git a/compile.c b/compile.c index 1d2c603f42..7d1ee0fadd 100644 --- a/compile.c +++ b/compile.c @@ -1406,6 +1406,7 @@ static int get_dyna_var_idx(const rb_iseq_t *iseq, ID id, int *level, int *ls) { int lv = 0, idx = -1; + const rb_iseq_t *const topmost_iseq = iseq; while (iseq) { idx = get_dyna_var_idx_at_raw(iseq, id); @@ -1417,7 +1418,7 @@ get_dyna_var_idx(const rb_iseq_t *iseq, ID id, int *level, int *ls) } if (idx < 0) { - COMPILE_ERROR(iseq, ISEQ_LAST_LINE(iseq), + COMPILE_ERROR(topmost_iseq, ISEQ_LAST_LINE(topmost_iseq), "get_dyna_var_idx: -1"); }