summaryrefslogtreecommitdiff
path: root/vm_core.h
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2019-09-19 00:04:29 -0700
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-09-21 13:24:58 +0900
commite006b992c29decb01865b0749e35a4cfc872bdaf (patch)
treee17f2049abd0a273ea9dc6980b9968f86bbda42e /vm_core.h
parent27144de2bd95c5886c3d4400c3b8aea932b856f1 (diff)
typedef rb_jmpbuf_t to void *[5] if __builtin_setjmp is used
The built-in version operates on a buffer of 5 words, much smaller than the size of jmp_buf defined in libc. Note, powerpc requires 5 words, while arm and x86_64 just require 3.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/2471
Diffstat (limited to 'vm_core.h')
-rw-r--r--vm_core.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/vm_core.h b/vm_core.h
index 99c4d13f66..bc7e6bec55 100644
--- a/vm_core.h
+++ b/vm_core.h
@@ -775,7 +775,11 @@ enum rb_thread_status {
THREAD_KILLED
};
+#ifdef RUBY_JMP_BUF
typedef RUBY_JMP_BUF rb_jmpbuf_t;
+#else
+typedef void *rb_jmpbuf_t[5];
+#endif
/*
the members which are written in EC_PUSH_TAG() should be placed at