-
U.Nakamura authored
Fix false LocalJumpError when branch coverage is enabled `throw TAG_BREAK` instruction makes a jump only if the continuation of catch of TAG_BREAK exactly matches the instruction immediately following the "send" instruction that is currently being executed. Otherwise, it seems to determine break from proc-closure. Branch coverage may insert some recording instructions after "send" instruction, which broke the conditions for TAG_BREAK to work properly. This change forces to set the continuation of catch of TAG_BREAK immediately after "send" (or "invokesuper") instruction. [Bug #18991] --- compile.c | 25 ++++++++++++++++++++++++- test/coverage/test_coverage.rb | 14 ++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-)
U.Nakamura authoredFix false LocalJumpError when branch coverage is enabled `throw TAG_BREAK` instruction makes a jump only if the continuation of catch of TAG_BREAK exactly matches the instruction immediately following the "send" instruction that is currently being executed. Otherwise, it seems to determine break from proc-closure. Branch coverage may insert some recording instructions after "send" instruction, which broke the conditions for TAG_BREAK to work properly. This change forces to set the continuation of catch of TAG_BREAK immediately after "send" (or "invokesuper") instruction. [Bug #18991] --- compile.c | 25 ++++++++++++++++++++++++- test/coverage/test_coverage.rb | 14 ++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-)
Loading