From bf3a47f0d36d44b947b2ec0ec980e4b047e89c19 Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Tue, 30 Jul 2019 17:03:20 +0300 Subject: [PATCH] [codegen][debug info] initialize end of location info with start if it wasn't provided --- .../kotlin/backend/konan/llvm/CodeGenerator.kt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/CodeGenerator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/CodeGenerator.kt index c8002863c5b..125425d4368 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/CodeGenerator.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/CodeGenerator.kt @@ -170,9 +170,9 @@ internal class FunctionGenerationContext(val function: LLVMValueRef, val vars = VariableManager(this) private val basicBlockToLastLocation = mutableMapOf() - private fun update(block:LLVMBasicBlockRef, locationInfo: LocationInfo?, endLocation: LocationInfo? = null) { - locationInfo ?: return - basicBlockToLastLocation.put(block, LocationInfoRange(locationInfo, endLocation)) + private fun update(block:LLVMBasicBlockRef, startLocationInfo: LocationInfo?, endLocation: LocationInfo? = startLocationInfo) { + startLocationInfo ?: return + basicBlockToLastLocation.put(block, LocationInfoRange(startLocationInfo, endLocation)) } var returnType: LLVMTypeRef? = LLVMGetReturnType(getFunctionType(function)) @@ -214,7 +214,7 @@ internal class FunctionGenerationContext(val function: LLVMValueRef, return bb } - fun basicBlock(name:String = "label_", startLocationInfo:LocationInfo?, endLocationInfo: LocationInfo? = null): LLVMBasicBlockRef { + fun basicBlock(name:String = "label_", startLocationInfo:LocationInfo?, endLocationInfo: LocationInfo? = startLocationInfo): LLVMBasicBlockRef { val result = LLVMInsertBasicBlock(this.currentBlock, name)!! update(result, startLocationInfo, endLocationInfo) LLVMMoveBasicBlockAfter(result, this.currentBlock) @@ -382,10 +382,10 @@ internal class FunctionGenerationContext(val function: LLVMValueRef, } val position = position() - val endLocation = position?.start.let { position?.end } + val endLocation = position?.end val success = basicBlock("call_success", endLocation) val result = LLVMBuildInvoke(builder, llvmFunction, rargs, args.size, success, unwind, "")!! - update(success, endLocation, endLocation) + update(success, endLocation) positionAtEnd(success) return result } @@ -637,7 +637,7 @@ internal class FunctionGenerationContext(val function: LLVMValueRef, val position = position() val endPosition = position()?.end - val bbExit = basicBlock(startLocationInfo = endPosition, endLocationInfo = endPosition) + val bbExit = basicBlock(startLocationInfo = endPosition) val resultPhi = appendingTo(bbExit) { phi(resultType) } @@ -659,8 +659,8 @@ internal class FunctionGenerationContext(val function: LLVMValueRef, inline fun ifThen(condition: LLVMValueRef, thenBlock: () -> Unit) { val endPosition = position()?.end - val bbExit = basicBlock(startLocationInfo = endPosition, endLocationInfo = endPosition) - val bbThen = basicBlock(startLocationInfo = endPosition, endLocationInfo = endPosition) + val bbExit = basicBlock(startLocationInfo = endPosition) + val bbThen = basicBlock(startLocationInfo = endPosition) condBr(condition, bbThen, bbExit)