Project

General

Profile

Actions

Bug #13523

closed

negative line numbers in instance_eval are misinterpreted in 32-bit ruby-trunk

Added by Eregon (Benoit Daloze) almost 7 years ago. Updated over 6 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:80920]

Description

As can be seen on http://rubyci.org/, 32-bit ruby-trunk seems to have regressed and no longer handles negative line number in #instance_eval correctly.

Specifically, this spec fails:

  it "evaluates string with given filename and negative linenumber" do
    err = begin
      Object.new.instance_eval("\n\nraise\n", "b_file", -100)
    rescue => e
      e
    end
    err.backtrace.first.split(":")[0..1].should == ["b_file", "-98"]
  end

https://github.com/ruby/spec/blob/51bc2c1c8cd387ec99106b5f27eb5d0ab48fc560/core/basicobject/instance_eval_spec.rb#L172-L179

Updated by Eregon (Benoit Daloze) almost 7 years ago

Actually this also happens on older release, there are just less 32-bit builders on older versions:
http://rubyci.org/logs/www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20170428T070500Z.fail.html.gz

Actions #2

Updated by nobu (Nobuyoshi Nakada) almost 7 years ago

  • Backport changed from 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN to 2.2: REQUIRED, 2.3: REQUIRED, 2.4: REQUIRED
Actions #3

Updated by nobu (Nobuyoshi Nakada) almost 7 years ago

  • Status changed from Open to Closed

Applied in changeset trunk|r58503.


node.h: sign-extend

  • node.h (nd_line): should sign-extend. shifting VALUE extends
    with zero bits if sizeof(VALUE) equals to sizeof(int). the
    zero bits are truncated if sizeof(VALUE) is bigger enough.
    [ruby-core:80920] [Bug #13523]

Updated by nagachika (Tomoyuki Chikanaga) over 6 years ago

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

ruby_2_4 r59488 merged revision(s) 58503.

Updated by usa (Usaku NAKAMURA) over 6 years ago

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

ruby_2_3 r59541 merged revision(s) 58503.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0