Project

General

Profile

Actions

Bug #14708

closed

argument stack underflow (-1) (SyntaxError)

Bug #14708: argument stack underflow (-1) (SyntaxError)

Added by tim.leppard (Tim Leppard) over 7 years ago. Updated about 7 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) 

Updated by nobu (Nobuyoshi Nakada) over 7 years ago Actions #1

  • 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) over 7 years ago Actions #2

  • 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) about 7 years ago Actions #3 [ruby-core:88519]

  • 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: PDF Atom