JVM_IR: Fix stack underflow for unit coercion of when expressions.

Code such as

```
val b = getBoolean()
if (b) 4
else if (b) 5
```

didn't generate a value on the stack always and therefore would
have control-flow paths leading to a pop instruction with nothing
on the stack.

Change-Id: I09d059f361e56a41880006e3f4e51e9acdbd167d
This commit is contained in:
Mads Ager
2019-02-01 13:30:24 +01:00
committed by max-kammerer
parent e91a16556c
commit 542d3c3532
6 changed files with 96 additions and 1 deletions
@@ -24519,6 +24519,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
runTest("compiler/testData/codegen/box/when/multipleEntries.kt");
}
@TestMetadata("noElseCoerceToUnit.kt")
public void testNoElseCoerceToUnit() throws Exception {
runTest("compiler/testData/codegen/box/when/noElseCoerceToUnit.kt");
}
@TestMetadata("noElseExhaustive.kt")
public void testNoElseExhaustive() throws Exception {
runTest("compiler/testData/codegen/box/when/noElseExhaustive.kt");