From: nobu@... Date: 2014-02-21T06:15:02+00:00 Subject: [ruby-core:60924] [ruby-trunk - Bug #9377] Seg fault on call of missing super from self.extended in a Module Issue #9377 has been updated by Nobuyoshi Nakada. Description updated ---------------------------------------- Bug #9377: Seg fault on call of missing super from self.extended in a Module https://bugs.ruby-lang.org/issues/9377#change-45322 * Author: Joe McIlvain * Status: Closed * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: 2.1.0 * Backport: 1.9.3: DONTNEED, 2.0.0: DONE, 2.1: REQUIRED ---------------------------------------- Seg fault on call of missing super from `self.extended` in a Module on 2.1.0-p0 and on 2.1.0-dev x86_64 linux Code to reproduce: ```ruby module A def foo; super end def self.extended(obj) instance_method(:foo).bind(obj).call end end Object.new.extend A ``` (stack trace is attached) Note that calling from after extend is okay: (but raises missing super error) ```ruby module A def foo; super end end Object.new.extend(A).foo #=> in `foo': super: no superclass method `foo' for # (NoMethodError) ``` Also note that calling from within the extend as before, but having the method defined is also okay (and raises no error) ```ruby module ABase def foo; end end module A include ABase def foo; super end def self.extended(obj) instance_method(:foo).bind(obj).call end end Object.new.extend A ``` ---Files-------------------------------- segfault.txt (10 KB) -- http://bugs.ruby-lang.org/