From 93df6c45ac89a481e34755673f617b6da4981a40 Mon Sep 17 00:00:00 2001 From: Elena Lepilkina Date: Mon, 5 Oct 2020 15:22:15 +0300 Subject: [PATCH] Save scope object during visiting function in code generator --- .../kotlin/backend/konan/llvm/IrToBitcode.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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 9a697b47245..fb0ff55d942 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 @@ -1940,8 +1940,15 @@ internal class CodeGeneratorVisitor(val context: Context, val lifetimes: Map? = null + + private fun IrFunction.scope(): DIScopeOpaqueRef? = if (startOffset != UNDEFINED_OFFSET) ( + if (irFunctionSavedScope != null && this == irFunctionSavedScope!!.first) + irFunctionSavedScope!!.second + else + this.scope(startLine()).also { irFunctionSavedScope = Pair(this, it) } + ) else null private val IrFunction.isReifiedInline:Boolean get() = isInline && typeParameters.any { it.isReified }