JVM_IR KT-34594 strip fake variable initialization during inlining

This commit is contained in:
Dmitry Petrov
2021-08-02 14:43:12 +03:00
parent 37050e0616
commit bd71fbe982
15 changed files with 182 additions and 26 deletions
@@ -1,17 +1,23 @@
// IGNORE_BACKEND_FIR: JVM_IR
@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER")
@kotlin.internal.InlineOnly
inline fun inlineOnlyFun() = 42
inline fun inlineOnlyFun(): Int {
var unused = 0
var used1 = 0
var used2 = 0
++used2
return 42 + used1
}
fun test() = inlineOnlyFun()
// JVM_TEMPLATES
// 1 LDC 0
// 1 ICONST_0
// 0 ISTORE 1
// 2 ISTORE 0
// 5 ICONST_0
// 6 ISTORE
// JVM_IR_TEMPLATES
// 0 LDC 0
// 0 ICONST_0
// 0 ISTORE 1
// 0 ISTORE 0
// 5 ICONST_0
// 5 ISTORE