Skip to content

Commit 6a4e795

Browse files
committed
merge revision(s) 1870505: [Backport #20651]
Fix wrong unreachable chunk remove when jump destination label is unremovable
1 parent e0e23e7 commit 6a4e795

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

compile.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2975,7 +2975,6 @@ remove_unreachable_chunk(rb_iseq_t *iseq, LINK_ELEMENT *i)
29752975
break;
29762976
}
29772977
else if ((lab = find_destination((INSN *)i)) != 0) {
2978-
if (lab->unremovable) break;
29792978
unref_counts[lab->label_no]++;
29802979
}
29812980
}

test/ruby/test_iseq.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -780,6 +780,11 @@ def test_unreachable_syntax_error
780780
end
781781

782782
def test_unreachable_pattern_matching
783+
assert_in_out_err([], "true or 1 in 1")
784+
assert_in_out_err([], "true or (case 1; in 1; 1; in 2; 2; end)")
785+
end
786+
787+
def test_unreachable_pattern_matching_in_if_condition
783788
assert_in_out_err([], "#{<<~"begin;"}\n#{<<~'end;'}", %w[1])
784789
begin;
785790
if true or {a: 0} in {a:}

version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
1212
#define RUBY_VERSION_TEENY 4
1313
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
14-
#define RUBY_PATCHLEVEL 95
14+
#define RUBY_PATCHLEVEL 96
1515

1616
#include "ruby/version.h"
1717
#include "ruby/internal/abi.h"

0 commit comments

Comments
 (0)