diff options
author | Jemma Issroff <jemmaissroff@gmail.com> | 2023-12-01 13:00:20 -0500 |
---|---|---|
committer | Jemma Issroff <jemmaissroff@gmail.com> | 2023-12-01 13:23:23 -0500 |
commit | 2a8d9c59ff151e8e2274e5f788745e070111b8ab (patch) | |
tree | 23d0f35c24bb73f613927dda6e38ccfe215c8d27 /prism_compile.c | |
parent | d6584a02011120c15b520fa08e5e5f0132b686de (diff) | |
download | ruby-2a8d9c59ff151e8e2274e5f788745e070111b8ab.tar.gz |
[PRISM] Account for RescueNodes with no statements
We need a PUTNIL if a RescueNode has no statements.
Diffstat (limited to 'prism_compile.c')
-rw-r--r-- | prism_compile.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/prism_compile.c b/prism_compile.c index 04cdb89ce4..1b55396b0b 100644 --- a/prism_compile.c +++ b/prism_compile.c @@ -3658,9 +3658,14 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret, ADD_GETLOCAL(ret, &dummy_line_node, LVAR_ERRINFO, 0); PM_COMPILE((pm_node_t *)rescue_node->reference); } + if (rescue_node->statements) { PM_COMPILE((pm_node_t *)rescue_node->statements); } + else { + PM_PUTNIL; + } + ADD_INSN(ret, &dummy_line_node, leave); ADD_LABEL(ret, rescue_end); |