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_2@57216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
usa 2016-12-27 10:49:55 +00:00
parent ed8c211a64
commit 04d79490da
8 changed files with 21 additions and 16 deletions

View file

@ -462,8 +462,8 @@ rb_threadptr_unlock_all_locking_mutexes(rb_thread_t *th)
void
rb_thread_terminate_all(void)
{
rb_thread_t *th = GET_THREAD(); /* main thread */
rb_vm_t *vm = th->vm;
rb_thread_t *volatile th = GET_THREAD(); /* main thread */
rb_vm_t *volatile vm = th->vm;
if (vm->main_thread != th) {
rb_bug("rb_thread_terminate_all: called by child thread (%p, %p)",