Actions
Bug #20341
closedParser segfault with shareable constant with array of more than 1 element
Description
# shareable_constant_value: literal
C = [foo, bar]
results in
./ruby: [BUG] unexpected node: NODE_LIT
Updated by yui-knk (Kaneko Yuichiro) 10 months ago
- Status changed from Open to Closed
Applied in changeset git|8ba4d7d75fd231b61727eb0561eb686c1d67bfd4.
Fix unexpected node bug for shareable_constant_value: literal
const_decl_path
changes the value of NODE **dest
, LHS of an assignment,
with NODE_LIT
created by const_decl_path
. shareable_literal_constant
calls
const_decl_path
via ensure_shareable_node
multiple times if RHS of an assignment
is array or hash. This means NODE **dest
argument of const_decl_path
can be NODE_LIT
from the second time then causes [BUG] unexpected node: NODE_LIT
in
rb_node_const_decl_val
.
This commit change to not update NODE **dest
in const_decl_path
to
fix the issue.
Actions
Like0
Like0