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
@@ -4456,6 +4456,18 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
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");