Actions
Bug #12018
closedTail call optimization is incorrectly applied in Ruby 2.3.0
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.0dev (2016-01-25 trunk 53652) [x86_64-linux]
Description
r51903 changed the operand order of send/invokesuper instructions, but the code applying tail call optimization still looks at the second operand, which is now CALL_CACHE.
The following code causes a segmentation fault:
RubyVM::InstructionSequence.compile_option = { tailcall_optimization: true }
def just_yield
yield
end
eval "just_yield { }"
I attached a patch to fix it.
Files
Actions
Like0
Like0Like0Like0