[llvm] Allow `CoverageMapping::getCoverageForFile()` to show Branches also outside functions (PR #120416)

NAKAMURA Takumi via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 18 04:46:36 PST 2024


https://github.com/chapuni created https://github.com/llvm/llvm-project/pull/120416

Fixes #119952

>From b66adbde8a6c29846f592cc3e734ef4e55e8e137 Mon Sep 17 00:00:00 2001
From: NAKAMURA Takumi <geek4civic at gmail.com>
Date: Wed, 18 Dec 2024 21:21:54 +0900
Subject: [PATCH] Allow `CoverageMapping::getCoverageForFile()` to show
 Branches also outside functions.

Fixes #119952
---
 llvm/lib/ProfileData/Coverage/CoverageMapping.cpp | 2 +-
 llvm/test/tools/llvm-cov/branch-macros.cpp        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp b/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
index 119e09187b9080..d51448567539f2 100644
--- a/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
+++ b/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
@@ -1412,7 +1412,7 @@ CoverageData CoverageMapping::getCoverageForFile(StringRef Filename) const {
       }
     // Capture branch regions specific to the function (excluding expansions).
     for (const auto &CR : Function.CountedBranchRegions)
-      if (FileIDs.test(CR.FileID) && (CR.FileID == CR.ExpandedFileID))
+      if (FileIDs.test(CR.FileID))
         FileCoverage.BranchRegions.push_back(CR);
     // Capture MCDC records specific to the function.
     for (const auto &MR : Function.MCDCRecords)
diff --git a/llvm/test/tools/llvm-cov/branch-macros.cpp b/llvm/test/tools/llvm-cov/branch-macros.cpp
index 73042ac397d406..7f3d1e8bffb82a 100644
--- a/llvm/test/tools/llvm-cov/branch-macros.cpp
+++ b/llvm/test/tools/llvm-cov/branch-macros.cpp
@@ -5,7 +5,7 @@
 #define COND1 (a == b)
 #define COND2 (a != b)
 #define COND3 (COND1 && COND2)
-#define COND4 (COND3 ? COND2 : COND1)
+#define COND4 (COND3 ? COND2 : COND1) // CHECK: | Branch ([[@LINE]]:15): [True: 1, False: 2]
 #define MACRO1 COND3
 #define MACRO2 MACRO1
 #define MACRO3 MACRO2



More information about the llvm-commits mailing list