From 3b496f3b543e06696ff57ddc42cace6e666caae4 Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Thu, 18 Jun 2020 18:16:31 +0300 Subject: [PATCH] Fix coverage for else branch in deserialized IR --- .../backend/konan/llvm/coverage/CoverageRegionCollector.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/coverage/CoverageRegionCollector.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/coverage/CoverageRegionCollector.kt index 9b2fd13d317..f5466a155c4 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/coverage/CoverageRegionCollector.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/coverage/CoverageRegionCollector.kt @@ -141,7 +141,9 @@ private class IrFunctionRegionsCollector( val condition = it.condition val result = it.result - if (it is IrElseBranch) { + if (condition is IrConst<*> && condition.value == true && condition.endOffset == result.endOffset) { + // Probably an 'else' branch. + // Note: can't rely on [IrElseBranch], because IR deserializer doesn't emit it. recordRegion(result) } else { recordRegion(condition)