diff options
Diffstat (limited to 'mjit.h')
-rw-r--r-- | mjit.h | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -125,13 +125,15 @@ mjit_exec(rb_execution_context_t *ec) total_calls = ++body->total_calls; func = body->jit_func; - if (UNLIKELY((uintptr_t)func <= (uintptr_t)LAST_JIT_ISEQ_FUNC)) { + uintptr_t func_i = (uintptr_t)func; + if (UNLIKELY(func_i <= LAST_JIT_ISEQ_FUNC)) { # ifdef MJIT_HEADER RB_DEBUG_COUNTER_INC(mjit_frame_JT2VM); # else RB_DEBUG_COUNTER_INC(mjit_frame_VM2VM); # endif - switch ((enum rb_mjit_iseq_func)func) { + ASSUME(func_i <= LAST_JIT_ISEQ_FUNC); + switch ((enum rb_mjit_iseq_func)func_i) { case NOT_ADDED_JIT_ISEQ_FUNC: RB_DEBUG_COUNTER_INC(mjit_exec_not_added); if (total_calls == mjit_opts.min_calls && mjit_target_iseq_p(body)) { |