diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt b/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt index f6391305c5d..ede35f2888e 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt @@ -911,7 +911,7 @@ abstract class BlockCodegen(val state: TranslationState, val variableManager: Va when (assignExpression) { is LLVMVariable -> { - if (assignExpression.pointer == 0) { + if (assignExpression.pointer < 2) { val allocVar = variableManager.receiveVariable(identifier, assignExpression.type, LLVMRegisterScope(), pointer = 0) codeBuilder.allocStackVar(allocVar) allocVar.pointer++ diff --git a/translator/src/test/kotlin/tests/input/variables_assigment_1.txt b/translator/src/test/kotlin/tests/input/variables_assigment_1.txt new file mode 100644 index 00000000000..065f58fb725 --- /dev/null +++ b/translator/src/test/kotlin/tests/input/variables_assigment_1.txt @@ -0,0 +1 @@ +variables_assigment_1_Int(56789) == 56789 diff --git a/translator/src/test/kotlin/tests/kotlin/variables_assigment_1.kt b/translator/src/test/kotlin/tests/kotlin/variables_assigment_1.kt new file mode 100644 index 00000000000..2306ec0805c --- /dev/null +++ b/translator/src/test/kotlin/tests/kotlin/variables_assigment_1.kt @@ -0,0 +1,6 @@ +fun variables_assigment_1(x: Int): Int { + var z = x + z++ + return x +} +