ruby-changes:62579
From: wanabe <ko1@a...>
Date: Sun, 16 Aug 2020 08:43:55 +0900 (JST)
Subject: [ruby-changes:62579] a7bd0ec570 (master): Warn sp overwriting on compile time
https://git.ruby-lang.org/ruby.git/commit/?id=a7bd0ec570 From a7bd0ec5706caf2767b29ab09a3d40d62bab3fc4 Mon Sep 17 00:00:00 2001 From: wanabe <s.wanabe@g...> Date: Sat, 8 Aug 2020 08:34:22 +0900 Subject: Warn sp overwriting on compile time diff --git a/compile.c b/compile.c index 4a4c276..c7a4a8c 100644 --- a/compile.c +++ b/compile.c @@ -2058,7 +2058,11 @@ fix_sp_depth(rb_iseq_t *iseq, LINK_ANCHOR *const anchor) https://github.com/ruby/ruby/blob/trunk/compile.c#L2058 } 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) https://github.com/ruby/ruby/blob/trunk/compile.c#L2074 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) https://github.com/ruby/ruby/blob/trunk/compile.c#L2196 { 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) https://github.com/ruby/ruby/blob/trunk/compile.c#L2351 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; } -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/