Issue #10706 has been updated by Usaku NAKAMURA.

Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: DONE to 2.0.0: DONE, 2.1: REQUIRED, 2.2: DONE

ruby_2_0_0 r49422 merged revision(s) 49175.
test is a little changed to get rid of a warning about refinement on 2.0.0.

----------------------------------------
Bug #10706: Segmentation fault when change visibility of refined new method
https://bugs.ruby-lang.org/issues/10706#change-51237

* Author: Seiei Higa
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.3.0dev (2015-01-07 trunk 49171) [x86_64-darwin13]
* Backport: 2.0.0: DONE, 2.1: REQUIRED, 2.2: DONE
----------------------------------------
following code cause SEGV in ruby-trunk, 2.2.0, 2.1.5, 2.0.0p598

``` ruby
module RefinementBug
  refine Object do
    def foo
    end
  end
end

private(:foo)
```

it should be raise `NameError` like:

```
/Users/sei/tmp/bug.rb:8:in `private': undefined method `foo' for class `Object' (NameError)
	from /Users/sei/tmp/bug.rb:8:in `<main>'
```

---Files--------------------------------
miniruby_2015-01-07-213034_Module.crash (10.3 KB)
bug.rb (85 Bytes)
0001-vm_method.c-fix-change-refined-new-method-visibility.patch (1.44 KB)


-- 
https://bugs.ruby-lang.org/