KT-16713 Insufficient maximum stack size

1. Analyze method node with fake jumps for loops to make sure that
all instructions reachable only through break/continue jumps are processed.
2. Fix stack for break/continue jumps.
3. Drop fake jumps for loops, analyze method node again.
4. Fix stack for try/catch and beforeInline.
This commit is contained in:
Dmitry Petrov
2017-03-07 18:58:52 +03:00
committed by Mikhael Bogdanov
parent 80063b6f91
commit 11caa03427
10 changed files with 177 additions and 27 deletions
@@ -5153,6 +5153,18 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
doTest(fileName);
}
@TestMetadata("kt16713.kt")
public void testKt16713() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/controlStructures/breakContinueInExpressions/kt16713.kt");
doTest(fileName);
}
@TestMetadata("kt16713_2.kt")
public void testKt16713_2() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/controlStructures/breakContinueInExpressions/kt16713_2.kt");
doTest(fileName);
}
@TestMetadata("kt9022And.kt")
public void testKt9022And() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/controlStructures/breakContinueInExpressions/kt9022And.kt");