diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-01-16 19:29:32 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-01-16 19:29:32 +0000 |
commit | 8cc9818463fc72c08118ae83cd6a1d8c91106d86 (patch) | |
tree | 9eadedbc19286c24b3799056df723e5f0ef5db1f /vm_eval.c | |
parent | bc059aa6d5a5987628b19108b5448915ae3012af (diff) |
merge revision(s) 57020,57021: [Backport #13014]
Add clang volatile fixes from FreeBSD and NetBSD.
Use volatile instead of optnone to avoid optimization which causes
segmentation faults.
Patch by Dimitry Andric. [ruby-core:78531] [Bug #13014]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_3@57347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_eval.c')
-rw-r--r-- | vm_eval.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1272,7 +1272,7 @@ eval_string_with_cref(VALUE self, VALUE src, VALUE scope, rb_cref_t *const cref_ int state; VALUE result = Qundef; VALUE envval; - rb_thread_t *th = GET_THREAD(); + rb_thread_t *volatile th = GET_THREAD(); rb_env_t *env = NULL; rb_block_t block, *base_block; volatile int parse_in_eval; @@ -2007,7 +2007,7 @@ rb_catch_protect(VALUE t, rb_block_call_func *func, VALUE data, int *stateptr) int state; volatile VALUE val = Qnil; /* OK */ rb_thread_t *th = GET_THREAD(); - rb_control_frame_t *saved_cfp = th->cfp; + rb_control_frame_t *volatile saved_cfp = th->cfp; volatile VALUE tag = t; TH_PUSH_TAG(th); |