diff --git a/vm.c b/vm.c index c8124a35b0..9897bc37b1 100644 --- a/vm.c +++ b/vm.c @@ -682,7 +682,7 @@ static VALUE vm_invoke_proc(rb_thread_t *th, rb_proc_t *proc, VALUE self, VALUE defined_class, int argc, const VALUE *argv, const rb_block_t *blockptr) { - VALUE val = Qundef; + volatile VALUE val = Qundef; int state; volatile int stored_safe = th->safe_level; @@ -1190,7 +1190,7 @@ vm_exec(rb_thread_t *th) int state; VALUE result, err; VALUE initial = 0; - VALUE *escape_ep = NULL; + VALUE *volatile escape_ep = NULL; TH_PUSH_TAG(th); _tag.retval = Qnil; diff --git a/vm_eval.c b/vm_eval.c index b4efcdb162..3f52c43e3b 100644 --- a/vm_eval.c +++ b/vm_eval.c @@ -1432,7 +1432,7 @@ VALUE rb_eval_cmd(VALUE cmd, VALUE arg, int level) { int state; - VALUE val = Qnil; /* OK */ + volatile VALUE val = Qnil; /* OK */ volatile int safe = rb_safe_level(); if (OBJ_TAINTED(cmd)) {