Skip to content
This repository has been archived by the owner on Aug 10, 2021. It is now read-only.

Commit

Permalink
[cadegen][debug info]test fix
Browse files Browse the repository at this point in the history
  • Loading branch information
vvlevchenko committed Jun 30, 2019
1 parent 048813d commit ef8d4d8
Showing 1 changed file with 9 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -381,8 +381,10 @@ internal class FunctionGenerationContext(val function: LLVMValueRef,
}

val position = position()
val success = basicBlock("call_success", position?.start.let {position?.end})
val endLocation = position?.start.let { position?.end }
val success = basicBlock("call_success", endLocation)
val result = LLVMBuildInvoke(builder, llvmFunction, rargs, args.size, success, unwind, "")!!
update(success, endLocation, endLocation)
positionAtEnd(success)
return result
}
Expand Down Expand Up @@ -633,12 +635,13 @@ internal class FunctionGenerationContext(val function: LLVMValueRef,
val resultType = thenValue.type

val position = position()
val bbExit = basicBlock(startLocationInfo = position?.end ?: position?.start)
val endPosition = position()?.end
val bbExit = basicBlock(startLocationInfo = endPosition, endLocationInfo = endPosition)
val resultPhi = appendingTo(bbExit) {
phi(resultType)
}

val bbElse = basicBlock(startLocationInfo = position?.start)
val bbElse = basicBlock(startLocationInfo = position?.start, endLocationInfo = endPosition)

condBr(condition, bbExit, bbElse)
assignPhis(resultPhi to thenValue)
Expand All @@ -654,9 +657,9 @@ internal class FunctionGenerationContext(val function: LLVMValueRef,
}

inline fun ifThen(condition: LLVMValueRef, thenBlock: () -> Unit) {
val position = position()
val bbExit = basicBlock(startLocationInfo = position?.end ?: position?.start)
val bbThen = basicBlock(startLocationInfo = position?.end)
val endPosition = position()?.end
val bbExit = basicBlock(startLocationInfo = endPosition, endLocationInfo = endPosition)
val bbThen = basicBlock(startLocationInfo = endPosition, endLocationInfo = endPosition)

condBr(condition, bbThen, bbExit)

Expand Down

0 comments on commit ef8d4d8

Please sign in to comment.