JVM KT-49092 fix stack corruption in redundant boxing elimination
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
fun foo(x: Any, y: Any) {}
|
||||
|
||||
val y = true
|
||||
val z = 1L
|
||||
|
||||
fun box(): String {
|
||||
var q = "Failed"
|
||||
foo(if (y) { q = "OK"; z } else "", return q)
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fun foo(x: Any, y: Any) {}
|
||||
|
||||
val y = false
|
||||
val z = 1L
|
||||
|
||||
fun box(): String {
|
||||
var q = "Failed"
|
||||
foo(if (y) "" else { q = "OK"; z }, return q)
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fun foo(x: Any, y: Any) {}
|
||||
|
||||
val y = false
|
||||
val zInt = 1
|
||||
val zLong = 1L
|
||||
|
||||
fun box(): String {
|
||||
var q = "Failed"
|
||||
foo(if (y) zInt else { q = "OK"; zLong }, return q)
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fun foo(x: Any, y: Any) {}
|
||||
|
||||
val y = true
|
||||
val z = 1
|
||||
|
||||
fun box(): String {
|
||||
var q = "Failed"
|
||||
foo(if (y) { q = "OK"; z } else "", return q)
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fun foo(x: Any, y: Any) {}
|
||||
|
||||
val y = true
|
||||
val zByte = 1.toByte()
|
||||
val zShort = 1.toShort()
|
||||
|
||||
fun box(): String {
|
||||
var q = "Failed"
|
||||
foo(if (y) { q = "OK"; zByte } else zShort, return q)
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fun foo(x: Any, y: Any) {}
|
||||
|
||||
val y = true
|
||||
val z = 1L
|
||||
|
||||
fun box(): String {
|
||||
var q = "Failed"
|
||||
val v = if (y) { q = "OK"; z } else ""
|
||||
foo(v, return q)
|
||||
}
|
||||
Reference in New Issue
Block a user