summaryrefslogtreecommitdiff
path: root/vm_eval.c
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-05-16 08:17:00 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-05-16 08:17:00 +0000
commit940a99ac7c76f986e338bb2a75086d467940b162 (patch)
tree2525985886e321c1ee6af0e1de70065e75e518c1 /vm_eval.c
parent67f562a417e988d06c1d81885d8f3ab271cbf85d (diff)
* vm_eval.c (rb_catch_obj): add volatile to tag to prevent crash
experimentally. http://www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20130515T133500Z.log.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_eval.c')
-rw-r--r--vm_eval.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/vm_eval.c b/vm_eval.c
index 3f52c43e3b..5ba8668790 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -1798,12 +1798,13 @@ rb_catch(const char *tag, VALUE (*func)(), VALUE data)
}
VALUE
-rb_catch_obj(VALUE tag, VALUE (*func)(), VALUE data)
+rb_catch_obj(VALUE t, VALUE (*func)(), VALUE data)
{
int state;
volatile VALUE val = Qnil; /* OK */
rb_thread_t *th = GET_THREAD();
rb_control_frame_t *saved_cfp = th->cfp;
+ volatile VALUE tag = t;
TH_PUSH_TAG(th);