Warn sp overwriting on compile time

This commit is contained in:
wanabe 2020-08-08 08:34:22 +09:00
parent ac399c2c7a
commit a7bd0ec570
Notes: git 2020-08-16 08:44:10 +09:00

View File

@ -2058,6 +2058,10 @@ fix_sp_depth(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
} }
if (lobj->sp == -1) { if (lobj->sp == -1) {
lobj->sp = sp; lobj->sp = sp;
} else if (lobj->sp != sp) {
debugs("%s:%d: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",
RSTRING_PTR(rb_iseq_path(iseq)), line,
lobj->label_no, lobj->sp, sp);
} }
} }
} }
@ -2070,6 +2074,11 @@ fix_sp_depth(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
lobj->sp = sp; lobj->sp = sp;
} }
else { else {
if (lobj->sp != sp) {
debugs("%s:%d: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",
RSTRING_PTR(rb_iseq_path(iseq)), line,
lobj->label_no, lobj->sp, sp);
}
sp = lobj->sp; sp = lobj->sp;
} }
break; break;
@ -2187,6 +2196,11 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
{ {
LABEL *lobj = (LABEL *)list; LABEL *lobj = (LABEL *)list;
lobj->position = code_index; lobj->position = code_index;
if (lobj->sp != sp) {
debugs("%s: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",
RSTRING_PTR(rb_iseq_path(iseq)),
lobj->label_no, lobj->sp, sp);
}
sp = lobj->sp; sp = lobj->sp;
break; break;
} }
@ -2337,6 +2351,11 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
case ISEQ_ELEMENT_LABEL: case ISEQ_ELEMENT_LABEL:
{ {
LABEL *lobj = (LABEL *)list; LABEL *lobj = (LABEL *)list;
if (lobj->sp != sp) {
debugs("%s: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",
RSTRING_PTR(rb_iseq_path(iseq)),
lobj->label_no, lobj->sp, sp);
}
sp = lobj->sp; sp = lobj->sp;
break; break;
} }