Project

General

Profile

Actions

Bug #14708

closed

argument stack underflow (-1) (SyntaxError)

Added by tim.leppard (Tim Leppard) about 6 years ago. Updated over 5 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
[ruby-core:86666]

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)
Actions #1

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

  • Backport changed from 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN to 2.3: DONTNEED, 2.4: DONTNEED, 2.5: REQUIRED
Actions #2

Updated by nobu (Nobuyoshi Nakada) about 6 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 5 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

Also available in: Atom PDF

Like0
Like0Like0Like0