aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--eval_intern.h2
-rw-r--r--test/ruby/test_exception.rb9
2 files changed, 10 insertions, 1 deletions
diff --git a/eval_intern.h b/eval_intern.h
index 9db0fd1bdb..c5210b14de 100644
--- a/eval_intern.h
+++ b/eval_intern.h
@@ -131,7 +131,7 @@ LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);
#define TH_PUSH_TAG(th) do { \
rb_thread_t * const _th = (th); \
struct rb_vm_tag _tag; \
- _tag.tag = 0; \
+ _tag.tag = Qundef; \
_tag.prev = _th->tag;
#define TH_POP_TAG() \
diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb
index 03c0c819f5..2b8a378734 100644
--- a/test/ruby/test_exception.rb
+++ b/test/ruby/test_exception.rb
@@ -181,6 +181,15 @@ class TestException < Test::Unit::TestCase
}
end
+ def test_throw_false
+ bug12743 = '[ruby-core:77229] [Bug #12743]'
+ assert_raise_with_message(UncaughtThrowError, /false/, bug12743) {
+ Thread.start {
+ throw false
+ }.join
+ }
+ end
+
def test_else_no_exception
begin
assert(true)