Project

General

Profile

Actions

Bug #13578

closed

Another iseq_set_sequence: adjust bug

Added by zenspider (Ryan Davis) over 7 years ago. Updated over 7 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
2.4.1p111
[ruby-core:81272]

Description

This seems to be related to #12613

#!/usr/bin/env ruby -w

def process_defn
  if true then
    # nothing needed here
  else
    if true then
      case 42
      when 42 then
        return 42 # BOOM
      when s { 42 } then
        # nothing needed here
      end
    end
  end

  return 42
end

causes:

wtf.rb:10: [BUG] iseq_set_sequence: adjust bug -2 < 0
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]

I just built and installed 2.4.1 and it is still there. Also repros in 2.4.0. 2.3 and below seem fine.

Updated by zenspider (Ryan Davis) over 7 years ago

Further reduced via IRC:

def process_defn
  if false
    case 42
    when s {} then
    when 42 then
      return
    end
  end
  return
end
Actions #2

Updated by nobu (Nobuyoshi Nakada) over 7 years ago

  • Status changed from Open to Closed
  • Backport changed from 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN to 2.2: DONTNEED, 2.3: DONTNEED, 2.4: REQUIRED

Updated by zenspider (Ryan Davis) over 7 years ago

Thank you. While your test code does NOT repro under 2.4.1p111, it does under trunk. I've verified that this and my original code all compile fine under latest trunk.

Updated by nagachika (Tomoyuki Chikanaga) over 7 years ago

  • Backport changed from 2.2: DONTNEED, 2.3: DONTNEED, 2.4: REQUIRED to 2.2: DONTNEED, 2.3: DONTNEED, 2.4: DONE

ruby_2_4 r59514 merged revision(s) 58810,58894.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0