From: "k0kubun (Takashi Kokubun) via ruby-core" Date: 2024-09-02T10:10:36+00:00 Subject: [ruby-core:119010] [Ruby master Bug#20344] argument stack underflow (-1) Issue #20344 has been updated by k0kubun (Takashi Kokubun). Backport changed from 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE, 3.3: REQUIRED to 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE, 3.3: DONE ruby_3_3 commit:d83b5633b16f4ddcece4ff924f21c5a5851470cf merged revision(s) commit:992596fb7af18a7f472589a607d0eb3fbb03b49a. ---------------------------------------- Bug #20344: argument stack underflow (-1) https://bugs.ruby-lang.org/issues/20344#change-109585 * Author: nobu (Nobuyoshi Nakada) * Status: Closed * Backport: 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE, 3.3: DONE ---------------------------------------- This file produces argument stack underflow, since ruby 2.5. ```ruby proc do next if true case nil when "a" next when "b" when "c" proc {} end next unless true end ``` ``` -- raw disasm-------- trace: 100 0000 nop ( 1) [sp: 0, unremovable: 1, refcnt: 5] trace: 1 [sp: 0, unremovable: 0, refcnt: 1] adjust: [label: 0] 0001 putnil ( 2) 0002 leave ( 13) [sp: 1, unremovable: 0, refcnt: 1] adjust: [label: 0] 0003 putnil ( 6) 0004 leave ( 13) adjust: [label: 8] 0005 jump ( 5) 0007 pop ( 7) 0008 jump ( 7) * 0010 pop ( 8) trace: 1 [sp: -1, unremovable: 1, refcnt: 1] 0011 putself ( 9) 0012 send , nil ( 9) [sp: -1, unremovable: 0, refcnt: 2] 0015 pop ( 9) [sp: 1, unremovable: 0, refcnt: 2] trace: 1 0016 putnil ( 12) [sp: -1, unremovable: 0, refcnt: 3] trace: 200 0017 leave ( 13) --------------------- ``` -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/