summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yjit_codegen.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/yjit_codegen.c b/yjit_codegen.c
index 80270e64d4..1dcd26843d 100644
--- a/yjit_codegen.c
+++ b/yjit_codegen.c
@@ -4119,6 +4119,9 @@ rb_vm_get_cref(const VALUE *ep);
static codegen_status_t
gen_getclassvariable(jitstate_t* jit, ctx_t* ctx, codeblock_t* cb)
{
+ // rb_vm_getclassvariable can raise exceptions.
+ jit_prepare_routine_call(jit, ctx, REG0);
+
mov(cb, C_ARG_REGS[0], member_opnd(REG_CFP, rb_control_frame_t, ep));
call_ptr(cb, REG0, (void *)rb_vm_get_cref);