Actions
Bug #14708
closedargument stack underflow (-1) (SyntaxError)
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
Description
ruby -e '[].each { false || [].each { } }' # OK
ruby -e '[].each { nil.nil? || [].each { } }' # OK
ruby -e '[].each { true || [].each { } }'
-- raw disasm--------
<L498253648>
trace: 100
0000 nop ( 1)
<L000>
trace: 1
0001 putobject true ( 1)
0003 leave ( 1)
0004 pop ( 1)
*0005 pop ( 1)
<L003>
0006 newarray 0 ( 1)
0008 send <callinfo:each, 0>, <call cache>, nil ( 1)
<L004>
<L001>
trace: 200
0012 leave ( 1)
---------------------
Traceback (most recent call last):
-e: -e:1: argument stack underflow (-1) (SyntaxError)
Updated by nobu (Nobuyoshi Nakada) about 7 years ago
- Backport changed from 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN to 2.3: DONTNEED, 2.4: DONTNEED, 2.5: REQUIRED
Updated by nobu (Nobuyoshi Nakada) about 7 years ago
- Status changed from Open to Closed
Applied in changeset trunk|r63255.
compile.c: fix unconditional branch optimization
- compile.c (iseq_peephole_optimize): add dummy
putnil
after a
jump
replacing an unconditional branch, to adjust removed
dup
. [ruby-core:86666] [Bug #14708]
Updated by nagachika (Tomoyuki Chikanaga) over 6 years ago
- Backport changed from 2.3: DONTNEED, 2.4: DONTNEED, 2.5: REQUIRED to 2.3: DONTNEED, 2.4: DONTNEED, 2.5: DONE
ruby_2_5 r64419 merged revision(s) 63255.
Actions
Like0
Like0Like0Like0