diff options
author | wanabe <s.wanabe@gmail.com> | 2020-08-08 08:34:22 +0900 |
---|---|---|
committer | wanabe <s.wanabe@gmail.com> | 2020-08-16 08:43:29 +0900 |
commit | a7bd0ec5706caf2767b29ab09a3d40d62bab3fc4 (patch) | |
tree | 72d7e39ca03de4187570e047e019895d011739c9 /compile.c | |
parent | ac399c2c7a51b044e23c6dc8f7f9d55ee271d9a5 (diff) |
Warn sp overwriting on compile time
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/3401
Diffstat (limited to 'compile.c')
-rw-r--r-- | compile.c | 21 |
1 files changed, 20 insertions, 1 deletions
@@ -2058,7 +2058,11 @@ fix_sp_depth(rb_iseq_t *iseq, LINK_ANCHOR *const anchor) } if (lobj->sp == -1) { 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); + } } } break; @@ -2070,6 +2074,11 @@ fix_sp_depth(rb_iseq_t *iseq, LINK_ANCHOR *const anchor) 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); + } sp = lobj->sp; } break; @@ -2187,6 +2196,11 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor) { LABEL *lobj = (LABEL *)list; 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; break; } @@ -2337,6 +2351,11 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor) case ISEQ_ELEMENT_LABEL: { 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; break; } |