diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | compile.c | 3 |
2 files changed, 8 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Fri Jan 1 12:05:53 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * compile.c (remove_unreachable_chunk): remove unreferred label + to optimize away unreachable chunk. + Fri Jan 1 11:42:57 2016 James Edward Gray II <james@graysoftinc.com> * lib/csv.rb (CSV): Add a liberal_parsing option. @@ -1968,6 +1968,9 @@ remove_unreachable_chunk(LINK_ELEMENT *i) break; } } + else if (i->type == ISEQ_ELEMENT_LABEL) { + if (((LABEL *)i)->refcnt > 0) break; + } else break; REMOVE_ELEM(i); removed = 1; |