Issue #9344 has been updated by Nobuyoshi Nakada. Rather I think `onig_syntax_warn()` should use `onig_verb_warn` instead of calling `rb_warn()` directly. And another warning function with source file and line number, instead of `rb_compile_warn()`. ---------------------------------------- Bug #9344: warning origin incorrect with instance_eval https://bugs.ruby-lang.org/issues/9344#change-45630 * Author: Thierry Lambert * Status: Open * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: ruby 1.9.3p484 (2013-11-22) [i386-mingw32] * Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- File 'test.rb' contains: $-w = 2 code = <<-RUBY x = /]]/ y = /[a-z]+*/ RUBY instance_eval code, 'foo.rb' The execution reports: foo.rb:1: warning: regular expression has ']' without escape: /]]/ test.rb:6: warning: nested repeat operator + and * was replaced with '*': /[a-z]+*/ The last line should state 'foo.rb:2' instead of 'test.rb:6'. The bug is also present in: ruby 2.0.0p353 (2013-11-22) [i386-mingw32] ---Files-------------------------------- 9344.patch (3.55 KB) 9344-v2.patch (1.87 KB) -- http://bugs.ruby-lang.org/