*v1,(*) = 0: Stack consistency error


#1

e$B<!$N$h$&$K$9$k$He(B Stack consistency error e$B$K$J$j$^$9!#e(B

% ./ruby -e ‘v1,() = 0’
-e:1: – control frame ----------
c:0003 p:0014 s:0007 b:0006 l:000005 d:000005 TOP -e:1
c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH :inherited
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------

– backtrace of native function call (Use addr2line) –
0x80f0624
0x8109e6e
0x80eb3b3
0x80eee4a
0x80ef487
0x80f07ce
0x80f08c8
0x8059c6c
0x8059ca9
0x8059ce4
0x8056e72
0xb7d76ea8
0x8056da1


#2

In article removed_email_address@domain.invalid,
Tanaka A. removed_email_address@domain.invalid writes:

e$B<!$N$h$&$K$9$k$He(B Stack consistency error e$B$K$J$j$^$9!#e(B

% ./ruby -e ‘v1,() = 0’

e$B860x$,F1$8$+$I$&$+$O$o$+$j$^$;$s$,!"0J2<$b0[>o=*N;$7$^$9!#e(B

(v0,()), = 0
v0,v1,(v2,v3) = 0
v0,v1,() = 0
v0,v1,v2,() = 0
v0,v1,(),v2 = 0
(
),v0,() = 0
v0,v1,v2,() = 0
v0,
,(v1,v2) = 0
v0,
,() = 0
v0,
,v1,() = 0
v0,
,(),v1 = 0
(
),,() = 0
v0,v1,,() = 0
*,(*v0,v1), = 0
,(), = 0
,v0,(), = 0
,(),v0, = 0
*v0,(v1,v2,) = 0
*v0,(v1,v2) = 0
*v0,(v1,*v2) = 0
*v0,(v1,*v2,v3) = 0
v0,(v1,,v2) = 0
v0,(,v1,) = 0
*v0,(*v1,v2) = 0
*v0,(v1,()) = 0
*v0,(v1,v2,v3) = 0
v0,() = 0
v0,v1,(v2,v3) = 0
v0,v1,() = 0
v0,(v1,v2),v3 = 0
v0,(),v1 = 0
v0,(),(
) = 0
v0,v1,v2,() = 0
v0,v1,(),v2 = 0
v0,(),v1,v2 = 0
(v0,v1,()) = 0
(v0,
,(
)) = 0
(
,(
),) = 0
(*v0,(*v1,v2)) = 0
(v0,()) = 0
(v0,v1,()) = 0
(v0,(),v1) = 0
((v0,())) = 0


#3

e$B!!$5$5$@$G$9!#e(B

Tanaka A. wrote:

In article removed_email_address@domain.invalid,
Tanaka A. removed_email_address@domain.invalid writes:

e$B<!$N$h$&$K$9$k$He(B Stack consistency error e$B$K$J$j$^$9!#e(B

% ./ruby -e ‘v1,() = 0’

e$B860x$,F1$8$+$I$&$+$O$o$+$j$^$;$s$,!"0J2<$b0[>o=*N;$7$^$9!#e(B

e$B!!$H$j$"$($:!“A4ItDL$9$h$&$K$7$^$7$?!#7k2L$,$”$C$F$k$+$O$"$s$^e(B
e$B$j<+?.$,$J$$$s$G$9$,!"$H$$$&$+!“A4ItL$GDI$$$?$/$J$$e(B
orze$B!!%i%se(B
e$B%@%`%F%9%H$H$$$&$+!“2?8D$+8+$?8B$j$G$O!”$3$&$J$C$F$[$7$$$N$+$Je(B
e$B$”$H$$$&F0$-$r$7$F$$$^$9!#e(B

./miniruby -I…/trunk/lib …/trunk/test.rb
program: (v0,()), = 0; [v0]
result : [[]]
program: (v0,()), =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0]
result : [[:a, :b]]
program: v0,v1,(v2,v3) = 0; ; [v0,v1,v2,v3]
result : [0, [], [], nil]
program: v0,v1,(v2,v3) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; ; [v0,v1,v2,v3]
result : [[:a, :b, :c], [[:d, :e, :f], [:g, :h, :i]], [:j,
:k], :m]
program: v0,v1,() = 0; [v0,v1]
result : [0, []]
program: v0,v1,() =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [[:a, :b, :c], [[:d, :e, :f], [:g, :h, :i]]]
program: v0,v1,v2,() = 0; [v0,v1,v2]
result : [0, [], nil]
program: v0,v1,v2,() =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[:a, :b, :c], [[:d, :e, :f]], [:g, :h, :i]]
program: v0,v1,(),v2 = 0; [v0,v1,v2]
result : [0, [], nil]
program: v0,v1,(),v2 =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[:a, :b, :c], [[:d, :e, :f]], [:j, :k, :m]]
program: (
),v0,() = 0; [v0]
result : [[]]
program: (
),v0,() =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0]
result : [[[:d, :e, :f], [:g, :h, :i]]]
program: v0,v1,v2,() = 0; [v0,v1,v2]
result : [0, nil, []]
program: v0,v1,v2,() =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[:a, :b, :c], [:d, :e, :f], [[:g, :h, :i]]]
program: v0,
,(v1,v2) = 0; [v0,v1,v2]
result : [0, [], nil]
program: v0,
,(v1,v2) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[:a, :b, :c], [:j, :k], :m]
program: v0,
,(
) = 0; [v0]
result : [0]
program: v0,,() = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k,
:m]]; [v0]
result : [[:a, :b, :c]]
program: v0,,v1,() = 0; [v0,v1]
result : [0, nil]
program: v0,,v1,() =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [[:a, :b, :c], [:g, :h, :i]]
program: v0,,(),v1 = 0; [v0,v1]
result : [0, nil]
program: v0,,(),v1 =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [[:a, :b, :c], [:j, :k, :m]]
program: (),,() = 0; []
result : []
program: (
),,() = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k,
:m]]; []
result : []
program: v0,v1,,() = 0; [v0,v1]
result : [0, nil]
program: v0,v1,,() =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [[:a, :b, :c], [:d, :e, :f]]
program: *,(*v0,v1), = 0; [v0,v1]
result : [[], 0]
program: *,(*v0,v1), =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [[:j, :k], :m]
program: ,(), = 0; []
result : []
program: ,(), = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k,
:m]]; []
result : []
program: ,v0,(), = 0; [v0]
result : [0]
program: ,v0,(), = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k,
:m]]; [v0]
result : [[:g, :h, :i]]
program: ,(),v0, = 0; [v0]
result : [nil]
program: ,(),v0, = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k,
:m]]; [v0]
result : [[:j, :k, :m]]
program: *v0,(v1,v2,) = 0; [v0,v1,v2]
result : [[], 0, nil]
program: *v0,(v1,v2,) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :j, :k]
program: *v0,(v1,v2) = 0; [v0,v1,v2]
result : [[], 0, nil]
program: *v0,(v1,v2) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :j, :k]
program: *v0,(v1,*v2) = 0; [v0,v1,v2]
result : [[], 0, []]
program: *v0,(v1,*v2) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :j, [:k,
:m]]
program: *v0,(v1,*v2,v3) = 0; [v0,v1,v2,v3]
result : [[], 0, [], nil]
program: *v0,(v1,*v2,v3) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2,v3]
result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :j,
[:k], :m]
program: v0,(v1,,v2) = 0; [v0,v1,v2]
result : [[], 0, nil]
program: v0,(v1,,v2) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :j, :m]
program: v0,(,v1,) = 0; [v0,v1]
result : [[], 0]
program: v0,(,v1,) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :m]
program: *v0,(*v1,v2) = 0; [v0,v1,v2]
result : [[], [], 0]
program: *v0,(*v1,v2) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], [:j,
:k], :m]
program: *v0,(v1,()) = 0; [v0,v1]
result : [[], []]
program: *v0,(v1,()) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], [:j, :k]]
program: *v0,(*v1,v2,v3) = 0; [v0,v1,v2,v3]
result : [[], [], 0, nil]
program: v0,(v1,v2,v3) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2,v3]
result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], [:j],
:k, :m]
program: v0,() = 0; [v0]
result : [[]]
program: v0,() = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k,
:m]]; [v0]
result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]]]
program: v0,v1,(v2,v3) = 0; [v0,v1,v2,v3]
result : [[], 0, [], nil]
program: v0,v1,(v2,v3) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2,v3]
result : [[[:a, :b, :c], [:d, :e, :f]], [:g, :h, :i], [:j,
:k], :m]
program: v0,v1,() = 0; [v0,v1]
result : [[], 0]
program: v0,v1,() =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [[[:a, :b, :c], [:d, :e, :f]], [:g, :h, :i]]
program: v0,(v1,v2),v3 = 0; [v0,v1,v2,v3]
result : [[], [], 0, nil]
program: v0,(v1,v2),v3 =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2,v3]
result : [[[:a, :b, :c], [:d, :e, :f]], [:g, :h], :i, [:j, :k,
:m]]
program: v0,(),v1 = 0; [v0,v1]
result : [[], nil]
program: v0,(),v1 =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [[[:a, :b, :c], [:d, :e, :f]], [:j, :k, :m]]
program: v0,(),(
) = 0; [v0]
result : [[]]
program: v0,(),(
) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0]
result : [[[:a, :b, :c], [:d, :e, :f]]]
program: v0,v1,v2,() = 0; [v0,v1,v2]
result : [[], 0, nil]
program: v0,v1,v2,() =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[[:a, :b, :c]], [:d, :e, :f], [:g, :h, :i]]
program: v0,v1,(),v2 = 0; [v0,v1,v2]
result : [[], 0, nil]
program: v0,v1,(),v2 =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[[:a, :b, :c]], [:d, :e, :f], [:j, :k, :m]]
program: v0,(),v1,v2 = 0; [v0,v1,v2]
result : [[], nil, nil]
program: v0,(),v1,v2 =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[[:a, :b, :c]], [:g, :h, :i], [:j, :k, :m]]
program: (v0,v1,()) = 0; [v0,v1]
result : [0, []]
program: (v0,v1,()) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [:a, [:b]]
program: (v0,
,(
)) = 0; [v0]
result : [0]
program: (v0,
,(
)) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0]
result : [:a]
program: (
,(
),) = 0; []
result : []
program: (
,(
),) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k,
:m]]; []
result : []
program: (*v0,(*v1,v2)) = 0; [v0,v1,v2]
result : [[], [], 0]
program: (*v0,(*v1,v2)) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2]
result : [[:a, :b], [], :c]
program: (v0,()) = 0; [v0]
result : [[]]
program: (v0,()) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k,
:m]]; [v0]
result : [[:a, :b]]
program: (v0,v1,()) = 0; [v0,v1]
result : [[], 0]
program: (v0,v1,()) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [[:a], :b]
program: (v0,(),v1) = 0; [v0,v1]
result : [[], nil]
program: (v0,(),v1) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1]
result : [[:a], :c]
program: ((v0,())) = 0; [v0]
result : [[]]
program: ((v0,())) =
[[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0]
result : [[]]