summaryrefslogtreecommitdiff
path: root/insns.def
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-09-25 00:59:29 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-09-25 00:59:29 +0000
commit1e56548995fe2b3b266ccdfecce0ef1163534dc6 (patch)
tree6385c62c3281772a716b3b40957164618f7dde2a /insns.def
parent80440ed07f23c2f6a53e210f84aa2d4ca7f92555 (diff)
insns.def: super from at_exit
* insns.def (invokesuper): klass in cfp is not valid in at_exit and END blocks. [ruby-core:47680] [Bug #7064] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def3
1 files changed, 3 insertions, 0 deletions
diff --git a/insns.def b/insns.def
index 94e1a24203..a1b8756d17 100644
--- a/insns.def
+++ b/insns.def
@@ -1035,6 +1035,9 @@ invokesuper
flag = VM_CALL_SUPER_BIT | VM_CALL_FCALL_BIT;
klass = GET_CFP()->klass;
+ if (NIL_P(klass)) {
+ vm_super_outside();
+ }
if (!NIL_P(RCLASS_REFINED_CLASS(klass))) {
klass = RCLASS_REFINED_CLASS(klass);
}