Project

General

Profile

Bug #12018 ยป 0001-compile.c-fix-tailcall-optimization.patch

rhenium (Kazuki Yamaguchi), 01/25/2016 12:33 PM

View differences:

compile.c
if (piobj) {
struct rb_call_info *ci = (struct rb_call_info *)piobj->operands[0];
rb_iseq_t *blockiseq = (rb_iseq_t *)piobj->operands[1];
if (blockiseq == 0) {
if (piobj->insn_id == BIN(send) || piobj->insn_id == BIN(invokesuper)) {
if (piobj->operands[2] == 0) { /* no blockiseq */
ci->flag |= VM_CALL_TAILCALL;
}
} else {
ci->flag |= VM_CALL_TAILCALL;
}
}
    (1-1/1)