summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-04-02 10:57:45 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-04-02 10:57:45 +0000
commitb230d20ec4d4b34dbbdfe5830fee8095d41af044 (patch)
treee2b36bd2e1bd52810f479f3dfcd0ee08a6aa14a8
parent4ad0071dc8784c1d262e8bd3dd3e9e62d322a395 (diff)
eval_intern.h: __builtin_longjmp requires literal 1 on gcc 4.9
* eval_intern.h (rb_threadptr_tag_jump): gcc 4.9 disallows other than literal 1 as the second argument of __builtin_longjmp(). [ruby-core:61800] [Bug #9692] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--eval_intern.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/eval_intern.h b/eval_intern.h
index 69e9134dbb..f81f922269 100644
--- a/eval_intern.h
+++ b/eval_intern.h
@@ -141,7 +141,8 @@ NORETURN(static inline void rb_threadptr_tag_jump(rb_thread_t *, int));
static inline void
rb_threadptr_tag_jump(rb_thread_t *th, int st)
{
- ruby_longjmp(th->tag->buf, (th->state = st));
+ th->state = st;
+ ruby_longjmp(th->tag->buf, 1);
}
/*