From: nobu@... Date: 2007-07-02T12:14:02+09:00 Subject: [ruby-dev:31105] Re: v0,(*,v1,) = 0 dumps core なかだです。 At Mon, 2 Jul 2007 02:25:14 +0900, Tanaka Akira wrote in [ruby-dev:31104]: > > 以下のようにすると SEGV します。 > > % ./ruby -e 'v0,(*,v1,) = 0' POSTARGの前の無名のsplatが未対応? Index: compile.c =================================================================== --- compile.c (revision 12677) +++ compile.c (working copy) @@ -2040,6 +2040,6 @@ compile_massign(rb_iseq_t *iseq, LINK_AN if (lhs_splat) { if (nd_type(splatn) == NODE_POSTARG) { - int num = splatn->nd_2nd->nd_alen; NODE *n = splatn->nd_2nd; + int num = n->nd_alen; ADD_INSN (ret, nd_line(n), dup); @@ -2055,5 +2055,11 @@ compile_massign(rb_iseq_t *iseq, LINK_AN } - make_masgn_lhs(iseq, ret, splatn->nd_1st); + lhsn = splatn->nd_1st; + if (lhsn == (NODE *)-1) { + ADD_INSN(ret, nd_line(splatn), pop); + } + else { + make_masgn_lhs(iseq, ret, lhsn); + } } else { -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦