Actions
Bug #20341
closedParser segfault with shareable constant with array of more than 1 element
Bug #20341:
Parser 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) over 1 year 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