aboutsummaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-18 18:22:12 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-20 20:00:40 +0900
commit701dfe4eb741628213e4d701c13ad6d76904ac4f (patch)
tree6ab2acd1b798fa2aedd4d473038ca1cbb2302237 /eval.c
parent12b7b852272c23d8449af507405ac93cedcb6dd6 (diff)
downloadruby-701dfe4eb741628213e4d701c13ad6d76904ac4f.tar.gz
[Bug #19016] Handle syntax error in main script like other errors
So that `SyntaxError#detailed_message` will be used also in the case exiting by such syntax error.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 94177e1d79..24d9b39774 100644
--- a/eval.c
+++ b/eval.c
@@ -121,6 +121,7 @@ ruby_options(int argc, char **argv)
else {
rb_ec_clear_current_thread_trace_func(ec);
state = error_handle(ec, state);
+ ec->errinfo = Qnil; /* just been handled */
iseq = (void *)INT2FIX(state);
}
EC_POP_TAG();
@@ -317,7 +318,7 @@ ruby_run_node(void *n)
rb_execution_context_t *ec = GET_EC();
int status;
if (!ruby_executable_node(n, &status)) {
- rb_ec_cleanup(ec, 0);
+ rb_ec_cleanup(ec, (NIL_P(ec->errinfo) ? TAG_NONE : TAG_RAISE));
return status;
}
ruby_init_stack((void *)&status);