diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt index 31d210fc4e6..1f7df42401d 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt @@ -1512,15 +1512,15 @@ internal class CodeGeneratorVisitor(val context: Context) : IrElementVisitorVoid } override fun genReturn(target: CallableDescriptor, value: LLVMValueRef?) { - if (target == codegen.functionDescriptor) { - super.genReturn(target, value) + if (target == codegen.functionDescriptor) { // It is "non local return". + super.genReturn(target, value) // Generate real "return". return } - - if (KotlinBuiltIns.isUnit(inlineBody.type) == false) { - codegen.assignPhis(getResult()!! to value!!) + // It is local return. + if (KotlinBuiltIns.isUnit(inlineBody.type) == false) { // If function returns more then "unit" + codegen.assignPhis(getResult()!! to value!!) // Assign return value to resilt PHI node } - codegen.br(getExit()!!) + codegen.br(getExit()!!) // Generate branch on exit block. } } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt index a3246bbd949..6fc298c39eb 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt @@ -135,9 +135,9 @@ internal class ParametersTransformer(val parameterToExpression: List