llvmorg-github-actions[bot] wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang-codegen

Author: Chuanqi Xu (ChuanqiXu9)

<details>
<summary>Changes</summary>

Motivation: there are some macro likes:

```C++
#define CHECK(X) if (!X) { log_something(); exit(1); } 
```

Then the branch coverage for such cases may always under 50%. It is enough if 
we can make sure `CHECK(X)` is covered.

To implement this, this is more complicated than I thought. As we already have 
ExpansionRegion, but we can't distinguish #include expansion and macro 
expansion. So I have to introduce a new MacroExpansionRegion type.

This enables the new
--ignore-branch-in-macro flag to filter out branches inside macro expansions 
(e.g. CHECK, ASSERT, VERIFY macros) from branch coverage statistics while 
preserving branches from #include'd files.

Changes:
- Add MacroExpansionRegion (Type=6) to CoverageMapping
- Clang CodeGen emits MacroExpansionRegion for macro expansions
- llvm-cov: add --ignore-branch-in-macro to show/report/export subcommands
- Filter branches by FileID matching in branch counting logic
- Apply to LCOV/JSON exporters, summary info, and report views
- Update existing coverage mapping tests for new region type
- Add new tests for macro vs #include branch filtering

AI assisted.

---

Patch is 84.71 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/204517.diff


44 Files Affected:

- (modified) clang/lib/CodeGen/CoverageMappingGen.cpp (+6-2) 
- (modified) clang/test/CoverageMapping/comment-in-macro.c (+2-2) 
- (modified) clang/test/CoverageMapping/control-flow-macro.c (+2-2) 
- (modified) clang/test/CoverageMapping/if.cpp (+4-4) 
- (modified) clang/test/CoverageMapping/label.cpp (+1-1) 
- (modified) clang/test/CoverageMapping/loopmacro.c (+8-8) 
- (added) clang/test/CoverageMapping/macro-expansion-kind.c (+22) 
- (modified) clang/test/CoverageMapping/macro-expansion.c (+1-1) 
- (modified) clang/test/CoverageMapping/macro-expressions.cpp (+17-17) 
- (modified) clang/test/CoverageMapping/macroception.c (+12-12) 
- (modified) clang/test/CoverageMapping/macroparams.c (+2-2) 
- (modified) clang/test/CoverageMapping/macroparams2.c (+1-1) 
- (modified) clang/test/CoverageMapping/macros.c (+11-11) 
- (modified) clang/test/CoverageMapping/macroscopes.cpp (+15-15) 
- (modified) clang/test/CoverageMapping/mcdc-scratch-space.c (+6-6) 
- (modified) clang/test/CoverageMapping/mcdc-system-headers.cpp (+4-4) 
- (modified) clang/test/CoverageMapping/moremacros.c (+4-4) 
- (modified) clang/test/CoverageMapping/switchmacro.c (+3-3) 
- (modified) clang/test/CoverageMapping/system_macro.cpp (+2-2) 
- (modified) clang/test/CoverageMapping/trymacro.cpp (+3-3) 
- (modified) clang/test/CoverageMapping/unreachable-macro.c (+1-1) 
- (modified) compiler-rt/include/profile/InstrProfData.inc (+1-1) 
- (modified) llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h (+31-6) 
- (modified) llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h 
(+8-6) 
- (modified) llvm/include/llvm/ProfileData/InstrProfData.inc (+1-1) 
- (modified) llvm/lib/ProfileData/Coverage/CoverageMapping.cpp (+4-4) 
- (modified) llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp (+30-7) 
- (modified) llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp (+11-9) 
- (added) llvm/test/tools/llvm-cov/Inputs/macro-filter-test.c (+24) 
- (added) llvm/test/tools/llvm-cov/Inputs/macro-filter-test.o () 
- (added) llvm/test/tools/llvm-cov/Inputs/macro-filter-test.proftext (+19) 
- (added) llvm/test/tools/llvm-cov/Inputs/macro-vs-include.c (+34) 
- (added) llvm/test/tools/llvm-cov/Inputs/macro-vs-include.o () 
- (added) llvm/test/tools/llvm-cov/Inputs/macro-vs-include.proftext (+28) 
- (added) llvm/test/tools/llvm-cov/macro-expansion-filter.test (+49) 
- (added) llvm/test/tools/llvm-cov/macro-vs-include.test (+38) 
- (modified) llvm/tools/llvm-cov/CodeCoverage.cpp (+37-3) 
- (modified) llvm/tools/llvm-cov/CoverageExporterJson.cpp (+23-7) 
- (modified) llvm/tools/llvm-cov/CoverageExporterLcov.cpp (+31-26) 
- (modified) llvm/tools/llvm-cov/CoverageReport.cpp (+4-2) 
- (modified) llvm/tools/llvm-cov/CoverageSummaryInfo.cpp (+11-4) 
- (modified) llvm/tools/llvm-cov/CoverageSummaryInfo.h (+2-1) 
- (modified) llvm/tools/llvm-cov/CoverageViewOptions.h (+2) 
- (modified) llvm/unittests/ProfileData/CoverageMappingTest.cpp (+114) 


``````````diff
diff --git a/clang/lib/CodeGen/CoverageMappingGen.cpp 
b/clang/lib/CodeGen/CoverageMappingGen.cpp
index c90afacbde293..739350d048ac9 100644
--- a/clang/lib/CodeGen/CoverageMappingGen.cpp
+++ b/clang/lib/CodeGen/CoverageMappingGen.cpp
@@ -604,7 +604,8 @@ class CoverageMappingBuilder {
       assert(SR.isInSourceOrder() && "region start and end out of order");
       MappingRegions.push_back(CounterMappingRegion::makeExpansion(
           *ParentFileID, *ExpandedFileID, SR.LineStart, SR.ColumnStart,
-          SR.LineEnd, SR.ColumnEnd));
+          SR.LineEnd, SR.ColumnEnd,
+          /*IsMacro=*/ExpandedLoc.isMacroID()));
     }
     return Filter;
   }
@@ -2446,6 +2447,9 @@ static void dump(llvm::raw_ostream &OS, StringRef 
FunctionName,
     case CounterMappingRegion::ExpansionRegion:
       OS << "Expansion,";
       break;
+    case CounterMappingRegion::MacroExpansionRegion:
+      OS << "MacroExpansion,";
+      break;
     case CounterMappingRegion::SkippedRegion:
       OS << "Skipped,";
       break;
@@ -2484,7 +2488,7 @@ static void dump(llvm::raw_ostream &OS, StringRef 
FunctionName,
       OS << "," << BranchParams->Conds[false] + 1 << "] ";
     }
 
-    if (R.Kind == CounterMappingRegion::ExpansionRegion)
+    if (R.isExpansion())
       OS << " (Expanded file = " << R.ExpandedFileID << ")";
     OS << "\n";
   }
diff --git a/clang/test/CoverageMapping/comment-in-macro.c 
b/clang/test/CoverageMapping/comment-in-macro.c
index 1afde46f1e4a5..9a05edfcfe402 100644
--- a/clang/test/CoverageMapping/comment-in-macro.c
+++ b/clang/test/CoverageMapping/comment-in-macro.c
@@ -4,8 +4,8 @@
 #define x2 return 0
 // CHECK: main
 int main(void) { // CHECK-NEXT: File 0, [[@LINE]]:16 -> [[@LINE+3]]:2 = #0
-  x1;            // CHECK-NEXT: Expansion,File 0, [[@LINE]]:3 -> [[@LINE]]:5 = 
#0
-  x2;            // CHECK-NEXT: Expansion,File 0, [[@LINE]]:3 -> [[@LINE]]:5 = 
#0
+  x1;            // CHECK-NEXT: MacroExpansion,File 0, [[@LINE]]:3 -> 
[[@LINE]]:5 = #0
+  x2;            // CHECK-NEXT: MacroExpansion,File 0, [[@LINE]]:3 -> 
[[@LINE]]:5 = #0
 }
 // CHECK-NEXT: File 1, 3:12 -> 3:14 = #0
 // CHECK-NEXT: File 2, 4:12 -> 4:20 = #0
diff --git a/clang/test/CoverageMapping/control-flow-macro.c 
b/clang/test/CoverageMapping/control-flow-macro.c
index b73ac989057db..f78dad28348d4 100644
--- a/clang/test/CoverageMapping/control-flow-macro.c
+++ b/clang/test/CoverageMapping/control-flow-macro.c
@@ -5,9 +5,9 @@
 // CHECK: main
 // CHECK-NEXT: File 0, {{[0-9]+}}:40 -> [[END:[0-9]+]]:2 = #0
 int main(int argc, const char *argv[]) {
-  // CHECK: Expansion,File 0, [[@LINE+1]]:3 -> [[@LINE+1]]:6 = #0
+  // CHECK: MacroExpansion,File 0, [[@LINE+1]]:3 -> [[@LINE+1]]:6 = #0
   ifc(1) return 0;
-  // Expansion,File 0, [[@LINE+2]]:3 -> [[@LINE+2]]:6 = (#0 - #1)
+  // MacroExpansion,File 0, [[@LINE+2]]:3 -> [[@LINE+2]]:6 = (#0 - #1)
   // File 0, [[@LINE+1]]:6 -> [[END]]:2 = (#0 - #1)
   ifc(1) return 0;
   return 0;
diff --git a/clang/test/CoverageMapping/if.cpp 
b/clang/test/CoverageMapping/if.cpp
index b6fd525e930f9..73d5e8176f19e 100644
--- a/clang/test/CoverageMapping/if.cpp
+++ b/clang/test/CoverageMapping/if.cpp
@@ -121,8 +121,8 @@ int check_constexpr_init_with_if_def(int i) {   // 
CHECK-NEXT: [[@LINE]]:{{[0-9]
 
 // CHECK-LABEL: _Z32check_macro_constexpr_if_skippedi:
 int check_macro_constexpr_if_skipped(int i) {   // CHECK-NEXT: 
[[@LINE]]:{{[0-9]+}} -> {{[0-9]+}}:2 = #0
-#define IF_CONSTEXPR if constexpr               // CHECK-NEXT: Expansion,File 
0, [[@LINE+1]]:3 -> [[@LINE+1]]:15 = #0 (Expanded file = 1)
-  IF_CONSTEXPR(false) {                         // CHECK-NEXT: Skipped,File 0, 
[[@LINE]]:3 -> [[@LINE+2]]:4 = 0
+#define IF_CONSTEXPR if constexpr               // CHECK-NEXT: Skipped,File 0, 
[[@LINE+1]]:3 -> [[@LINE+3]]:4 = 0
+  IF_CONSTEXPR(false) {                         // CHECK-NEXT: 
MacroExpansion,File 0, [[@LINE]]:3 -> [[@LINE]]:15 = #0 (Expanded file = 1)
     i *= 2;                                     // CHECK-NEXT: File 1, 
[[@LINE-2]]:22 -> [[@LINE-2]]:34 = #0
   }
   return i;
@@ -227,8 +227,8 @@ constexpr int check_notconsteval_branch_kept(int i) { // 
CHECK-NEXT: [[@LINE]]:{
 
 // CHECK-LABEL: _Z32check_macro_consteval_if_skippedi:
 constexpr int check_macro_consteval_if_skipped(int i) {   // CHECK-NEXT: 
[[@LINE]]:{{[0-9]+}} -> {{[0-9]+}}:2 = #0
-#define IF_RUNTIME if !consteval               // CHECK-NEXT: Expansion,File 
0, [[@LINE+1]]:3 -> [[@LINE+1]]:13 = #0 (Expanded file = 1)
-  IF_RUNTIME {                                 // CHECK-NEXT: Skipped,File 0, 
[[@LINE]]:3 -> [[@LINE]]:14 = 0
+#define IF_RUNTIME if !consteval               // CHECK-NEXT: Skipped,File 0, 
[[@LINE+1]]:3 -> [[@LINE+1]]:14 = 0
+  IF_RUNTIME {                                 // CHECK-NEXT: 
MacroExpansion,File 0, [[@LINE]]:3 -> [[@LINE]]:13 = #0 (Expanded file = 1)
     i *= 2;                                    // CHECK-NEXT: File 0, 
[[@LINE-1]]:14 -> [[@LINE+1]]:4 = #0
   }                                            // CHECK-NEXT: File 1, 
[[@LINE-3]]:20 -> [[@LINE-3]]:33 = #0
   return i;
diff --git a/clang/test/CoverageMapping/label.cpp 
b/clang/test/CoverageMapping/label.cpp
index cf7cbe5d00f43..7bbe27253c509 100644
--- a/clang/test/CoverageMapping/label.cpp
+++ b/clang/test/CoverageMapping/label.cpp
@@ -54,7 +54,7 @@ void test2(int x) {          // CHECK-NEXT: File 0, 
[[@LINE]]:19 -> {{[0-9]+}}:2
 void test3() {
   if (0)
     goto b; // CHECK: Gap,File 0, [[@LINE]]:12 -> [[@LINE+1]]:1 = (#0 - #1)
-a: // CHECK-NEXT: Expansion,File 0, [[@LINE]]:1 -> [[@LINE]]:2 = 
[[retnCount:#[0-9]+]] (Expanded file = 1)
+a: // CHECK-NEXT: MacroExpansion,File 0, [[@LINE]]:1 -> [[@LINE]]:2 = 
[[retnCount:#[0-9]+]] (Expanded file = 1)
   return; // CHECK-NEXT: File 0, [[@LINE-1]]:2 -> [[@LINE]]:9 = [[retnCount]]
 }
 #undef a
diff --git a/clang/test/CoverageMapping/loopmacro.c 
b/clang/test/CoverageMapping/loopmacro.c
index 1fbb1139abf04..fc03bf8e3bb1a 100644
--- a/clang/test/CoverageMapping/loopmacro.c
+++ b/clang/test/CoverageMapping/loopmacro.c
@@ -3,27 +3,27 @@
 // CHECK: main
 // CHECK-NEXT: File 0, {{[0-9]+}}:16 -> {{[0-9]+}}:2 = #0
 // CHECK-NEXT: File 0, {{[0-9]+}}:6 -> {{[0-9]+}}:4 = (#0 + #1)
-// CHECK-NEXT: Expansion,File 0, {{[0-9]+}}:7 -> {{[0-9]+}}:20 = (#0 + #1)
+// CHECK-NEXT: MacroExpansion,File 0, {{[0-9]+}}:7 -> {{[0-9]+}}:20 = (#0 + #1)
 // CHECK-NEXT: File 0, {{[0-9]+}}:12 -> {{[0-9]+}}:30 = (#0 + #1)
 
 // CHECK-NEXT: Branch,File 0, {{[0-9]+}}:12 -> {{[0-9]+}}:30 = #1, #0
 // CHECK-NEXT: File 1, [[@LINE+4]]:4 -> [[@LINE+6]]:23 = (#0 + #1)
-// CHECK-NEXT: Expansion,File 1, [[@LINE+3]]:5 -> [[@LINE+3]]:16 = (#0 + #1)
-// CHECK-NEXT: Expansion,File 1, [[@LINE+3]]:16 -> [[@LINE+3]]:21 = (#0 + #1)
+// CHECK-NEXT: MacroExpansion,File 1, [[@LINE+3]]:5 -> [[@LINE+3]]:16 = (#0 + 
#1)
+// CHECK-NEXT: MacroExpansion,File 1, [[@LINE+3]]:16 -> [[@LINE+3]]:21 = (#0 + 
#1)
 #define INSERT_STRING(s, match_head) \
    (UPDATE_HASH(ins_h, window[(s) + MIN_MATCH-1]), \
     prev[(s) & WMASK] = match_head = head[ins_h], \
     head[ins_h] = (s))
 // CHECK-NEXT: File 2, [[@LINE+3]]:26 -> [[@LINE+3]]:66 = (#0 + #1)
-// CHECK-NEXT: Expansion,File 2, [[@LINE+2]]:38 -> [[@LINE+2]]:45 = (#0 + #1)
-// CHECK-NEXT: Expansion,File 2, [[@LINE+1]]:56 -> [[@LINE+1]]:65 = (#0 + #1)
+// CHECK-NEXT: MacroExpansion,File 2, [[@LINE+2]]:38 -> [[@LINE+2]]:45 = (#0 + 
#1)
+// CHECK-NEXT: MacroExpansion,File 2, [[@LINE+1]]:56 -> [[@LINE+1]]:65 = (#0 + 
#1)
 #define UPDATE_HASH(h,c) (h = (((h)<<H_SHIFT) ^ (c)) & HASH_MASK)
 // CHECK-NEXT: File 3, [[@LINE+1]]:15 -> [[@LINE+1]]:21 = (#0 + #1)
 #define WMASK 0xFFFF
 // CHECK-NEXT: File 4, [[@LINE+4]]:18 -> [[@LINE+4]]:53 = (#0 + #1)
-// CHECK-NEXT: Expansion,File 4, [[@LINE+3]]:20 -> [[@LINE+3]]:29 = (#0 + #1)
-// CHECK-NEXT: Expansion,File 4, [[@LINE+2]]:30 -> [[@LINE+2]]:39 = (#0 + #1)
-// CHECK-NEXT: Expansion,File 4, [[@LINE+1]]:43 -> [[@LINE+1]]:52 = (#0 + #1)
+// CHECK-NEXT: MacroExpansion,File 4, [[@LINE+3]]:20 -> [[@LINE+3]]:29 = (#0 + 
#1)
+// CHECK-NEXT: MacroExpansion,File 4, [[@LINE+2]]:30 -> [[@LINE+2]]:39 = (#0 + 
#1)
+// CHECK-NEXT: MacroExpansion,File 4, [[@LINE+1]]:43 -> [[@LINE+1]]:52 = (#0 + 
#1)
 #define H_SHIFT  ((HASH_BITS+MIN_MATCH-1)/MIN_MATCH)
 // CHECK-NEXT: File 5, [[@LINE+1]]:19 -> [[@LINE+1]]:25 = (#0 + #1)
 #define HASH_MASK 0xFFFF
diff --git a/clang/test/CoverageMapping/macro-expansion-kind.c 
b/clang/test/CoverageMapping/macro-expansion-kind.c
new file mode 100644
index 0000000000000..ee229df353e11
--- /dev/null
+++ b/clang/test/CoverageMapping/macro-expansion-kind.c
@@ -0,0 +1,22 @@
+// RUN: %clang_cc1 -mllvm -emptyline-comment-coverage=false 
-fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping 
-emit-llvm-only -main-file-name macro-expansion-kind.c %s | FileCheck %s
+
+// Test that macro expansions are marked as MacroExpansion in the coverage
+// mapping dump, distinguishing them from regular Expansion regions (#include).
+
+#define SIMPLE_MACRO(x) ((x) > 0 ? (x) : 0)
+
+// CHECK-LABEL: test_func:
+// CHECK: File 0, [[@LINE+1]]:22 -> [[@LINE+13]]:2 = #0
+void test_func(void) {
+  // CHECK: MacroExpansion,File 0, [[@LINE+1]]:16 -> [[@LINE+1]]:28
+  int result = SIMPLE_MACRO(42);
+
+  // CHECK: MacroExpansion,File 0, [[@LINE+1]]:13 -> [[@LINE+1]]:25
+  int val = SIMPLE_MACRO(1);
+
+  // CHECK: File 1,
+  int x = 0;
+  (void)result;
+  (void)val;
+  (void)x;
+}
diff --git a/clang/test/CoverageMapping/macro-expansion.c 
b/clang/test/CoverageMapping/macro-expansion.c
index 4cd2c93437193..88022045ceadb 100644
--- a/clang/test/CoverageMapping/macro-expansion.c
+++ b/clang/test/CoverageMapping/macro-expansion.c
@@ -24,7 +24,7 @@
 #define M2(x) do { if (x) {} } while (0)
 // CHECK-NEXT: File 4, [[@LINE+5]]:15 -> [[@LINE+5]]:38 = #0
 // CHECK-NEXT: File 4, [[@LINE+4]]:18 -> [[@LINE+4]]:28 = (#0 + #8)
-// CHECK-NEXT: Expansion,File 4, [[@LINE+3]]:20 -> [[@LINE+3]]:22 = (#0 + #8)
+// CHECK-NEXT: MacroExpansion,File 4, [[@LINE+3]]:20 -> [[@LINE+3]]:22 = (#0 + 
#8)
 // CHECK-NEXT: File 4, [[@LINE+2]]:36 -> [[@LINE+2]]:37 = (#0 + #8)
 // CHECK-NEXT: Branch,File 4, [[@LINE+1]]:36 -> [[@LINE+1]]:37 = 0, #0
 #define M3(x) do { M2(x); } while (0)
diff --git a/clang/test/CoverageMapping/macro-expressions.cpp 
b/clang/test/CoverageMapping/macro-expressions.cpp
index 2b6a1b64c2594..3d31c237dfe42 100644
--- a/clang/test/CoverageMapping/macro-expressions.cpp
+++ b/clang/test/CoverageMapping/macro-expressions.cpp
@@ -58,33 +58,33 @@ void foo(int i) {
   // CHECK-NEXT: File 0, [[@LINE+1]]:10 -> [[@LINE+1]]:12 = #1
   if (0) {}
 
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+3]]:7 -> [[@LINE+3]]:11 = #0
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+3]]:7 -> [[@LINE+3]]:11 = #0
   // CHECK-NEXT: Gap,File 0, [[@LINE+2]]:15 -> [[@LINE+2]]:16 = #2
   // CHECK-NEXT: File 0, [[@LINE+1]]:16 -> [[@LINE+1]]:18 = #2
   if (EXPR(i)) {}
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+3]]:9 -> [[@LINE+3]]:14 = (#0 + #3)
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+3]]:9 -> [[@LINE+3]]:14 = (#0 
+ #3)
   // CHECK-NEXT: Gap,File 0, [[@LINE+2]]:19 -> [[@LINE+2]]:20 = #3
   // CHECK-NEXT: File 0, [[@LINE+1]]:20 -> [[@LINE+1]]:22 = #3
   for (;NEXPR(i);) {}
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+5]]:8 -> [[@LINE+5]]:14 = #0
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+4]]:33 -> [[@LINE+4]]:35 = (#0 + #4)
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+3]]:43 -> [[@LINE+3]]:46 = #4
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+5]]:8 -> [[@LINE+5]]:14 = #0
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+4]]:33 -> [[@LINE+4]]:35 = (#0 
+ #4)
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+3]]:43 -> [[@LINE+3]]:46 = #4
   // CHECK-NEXT: Gap,File 0, [[@LINE+2]]:50 -> [[@LINE+2]]:51 = #4
   // CHECK: File 0, [[@LINE+1]]:51 -> [[@LINE+1]]:53 = #4
   for (ASSIGN(DECL(int, j), 0); LT(j, i); INC(j)) {}
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+1]]:3 -> [[@LINE+1]]:9 = #0
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+1]]:3 -> [[@LINE+1]]:9 = #0
   ASSIGN(DECL(int, k), 0);
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+4]]:10 -> [[@LINE+4]]:12 = (#0 + #5)
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+4]]:10 -> [[@LINE+4]]:12 = (#0 
+ #5)
   // CHECK-NEXT: Gap,File 0, [[@LINE+3]]:19 -> [[@LINE+3]]:20 = #5
   // CHECK-NEXT: File 0, [[@LINE+2]]:20 -> [[@LINE+2]]:31 = #5
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+1]]:22 -> [[@LINE+1]]:25 = #5
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+1]]:22 -> [[@LINE+1]]:25 = #5
   while (LT(k, i)) { INC(k); }
   // CHECK-NEXT: File 0, [[@LINE+2]]:6 -> [[@LINE+2]]:8 = (#0 + #6)
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+1]]:16 -> [[@LINE+1]]:21 = (#0 + #6)
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+1]]:16 -> [[@LINE+1]]:21 = (#0 
+ #6)
   do {} while (NEXPR(i));
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+5]]:8 -> [[@LINE+5]]:12 = #0
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+5]]:8 -> [[@LINE+5]]:12 = #0
   // CHECK-NEXT: Branch,File 0, [[@LINE+4]]:21 -> [[@LINE+4]]:22 = #7, #0
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+3]]:23 -> [[@LINE+3]]:26 = #0
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+3]]:23 -> [[@LINE+3]]:26 = #0
   // CHECK-NEXT: Gap,File 0, [[@LINE+2]]:41 -> [[@LINE+2]]:42 = #7
   // CHECK: File 0, [[@LINE+1]]:42 -> [[@LINE+1]]:44 = #7
   for (DECL(int, j) : ARR(int, 1, 2, 3)) {}
@@ -92,21 +92,21 @@ void foo(int i) {
   // CHECK-NEXT: File 0, [[@LINE+5]]:10 -> [[@LINE+5]]:11 = #0
   // CHECK-NEXT: Branch,File 0, [[@LINE+4]]:10 -> [[@LINE+4]]:11 = #8, (#0 - 
#8)
   // CHECK-NEXT: Gap,File 0, [[@LINE+3]]:13 -> [[@LINE+3]]:14 = #8
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+2]]:14 -> [[@LINE+2]]:20 = #0
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+1]]:23 -> [[@LINE+1]]:29 = #0
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+2]]:14 -> [[@LINE+2]]:20 = #0
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+1]]:23 -> [[@LINE+1]]:29 = #0
   (void)(i ? PRIo64 : PRIu64);
 
   // CHECK-NEXT: File 0, [[@LINE+6]]:10 -> [[@LINE+6]]:11 = #0
   // CHECK: File 0, [[@LINE+5]]:14 -> [[@LINE+5]]:15 = #9
   // CHECK-NEXT: File 0, [[@LINE+4]]:18 -> [[@LINE+4]]:33 = (#0 - #9)
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+3]]:18 -> [[@LINE+3]]:22 = (#0 - #9)
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+3]]:18 -> [[@LINE+3]]:22 = (#0 
- #9)
   // CHECK: File 0, [[@LINE+2]]:28 -> [[@LINE+2]]:29 = #10
   // CHECK-NEXT: File 0, [[@LINE+1]]:32 -> [[@LINE+1]]:33 = ((#0 - #9) - #10)
   (void)(i ? i : EXPR(i) ? i : 0);
   // CHECK-NEXT: File 0, [[@LINE+5]]:10 -> [[@LINE+5]]:11 = #0
   // CHECK-NEXT: Branch,File 0, [[@LINE+4]]:10 -> [[@LINE+4]]:11 = #11, (#0 - 
#11)
   // CHECK-NEXT: File 0, [[@LINE+3]]:15 -> [[@LINE+3]]:27 = (#0 - #11)
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+2]]:15 -> [[@LINE+2]]:19 = (#0 - 
#11)
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+2]]:15 -> [[@LINE+2]]:19 = (#0 
- #11)
   // CHECK-NEXT: File 0, [[@LINE+1]]:26 -> [[@LINE+1]]:27 = ((#0 - #11) - #12)
   (void)(i ?: EXPR(i) ?: 0);
 }
@@ -128,10 +128,10 @@ void foo(int i) {
 // CHECK-NEXT: File {{[0-9]+}}, 5:20 -> 5:23 = #0
 // CHECK-NEXT: File {{[0-9]+}}, 9:25 -> 9:40 = #0
 // CHECK-NEXT: File {{[0-9]+}}, 12:16 -> 12:42 = #0
-// CHECK-NEXT: Expansion,File {{[0-9]+}}, 12:16 -> 12:38 = #8
+// CHECK-NEXT: MacroExpansion,File {{[0-9]+}}, 12:16 -> 12:38 = #8
 // CHECK-NEXT: File {{[0-9]+}}, 12:38 -> 12:42 = #8
 // CHECK-NEXT: File {{[0-9]+}}, 13:16 -> 13:42 = #0
-// CHECK-NEXT: Expansion,File {{[0-9]+}}, 13:16 -> 13:38 = (#0 - #8)
+// CHECK-NEXT: MacroExpansion,File {{[0-9]+}}, 13:16 -> 13:38 = (#0 - #8)
 // CHECK-NEXT: File {{[0-9]+}}, 13:38 -> 13:42 = (#0 - #8)
 // CHECK-NEXT: File {{[0-9]+}}, 3:17 -> 3:20 = (#0 - #9)
 // CHECK-NEXT: Branch,File {{[0-9]+}}, 3:17 -> 3:20 = #10, ((#0 - #9) - #10)
diff --git a/clang/test/CoverageMapping/macroception.c 
b/clang/test/CoverageMapping/macroception.c
index 6d4b3ed427f7f..4ad23bed7f182 100644
--- a/clang/test/CoverageMapping/macroception.c
+++ b/clang/test/CoverageMapping/macroception.c
@@ -6,41 +6,41 @@
 #define M11 M22
 
 // CHECK-LABEL: main:
-// CHECK-NEXT: Expansion,File 0, [[@LINE+2]]:16 -> [[@LINE+2]]:18 = #0
+// CHECK-NEXT: MacroExpansion,File 0, [[@LINE+2]]:16 -> [[@LINE+2]]:18 = #0
 // CHECK-NEXT: File 0, [[@LINE+1]]:18 -> [[@LINE+3]]:2 = #0
 int main(void) M1
   return 0;
 }
-// CHECK-NEXT: Expansion,File 1, 4:12 -> 4:14 = #0
+// CHECK-NEXT: MacroExpansion,File 1, 4:12 -> 4:14 = #0
 // CHECK-NEXT: File 2, 3:12 -> 3:13 = #0
 
 // CHECK-LABEL: func2:
 // CHECK-NEXT: File 0, [[@LINE+2]]:18 -> [[@LINE+4]]:4 = #0
-// CHECK-NEXT: Expansion,File 0, [[@LINE+3]]:1 -> [[@LINE+3]]:4 = #0
+// CHECK-NEXT: MacroExpansion,File 0, [[@LINE+3]]:1 -> [[@LINE+3]]:4 = #0
 void func2(void) {
   int x = 0;
 M11
-// CHECK-NEXT: Expansion,File 1, 6:13 -> 6:16 = #0
+// CHECK-NEXT: MacroExpansion,File 1, 6:13 -> 6:16 = #0
 // CHECK-NEXT: File 2, 5:13 -> 5:14 = #0
 
 // CHECK-LABEL: func3:
-// CHECK-NEXT: Expansion,File 0, [[@LINE+3]]:18 -> [[@LINE+3]]:20 = #0
+// CHECK-NEXT: MacroExpansion,File 0, [[@LINE+3]]:18 -> [[@LINE+3]]:20 = #0
 // CHECK-NEXT: File 0, [[@LINE+2]]:20 -> [[@LINE+4]]:4 = #0
-// CHECK-NEXT: Expansion,File 0, [[@LINE+3]]:1 -> [[@LINE+3]]:4 = #0
+// CHECK-NEXT: MacroExpansion,File 0, [[@LINE+3]]:1 -> [[@LINE+3]]:4 = #0
 void func3(void) M1
   int x = 0;
 M11
-// CHECK-NEXT: Expansion,File 1, 4:12 -> 4:14 = #0
-// CHECK-NEXT: Expansion,File 2, 6:13 -> 6:16 = #0
+// CHECK-NEXT: MacroExpansion,File 1, 4:12 -> 4:14 = #0
+// CHECK-NEXT: MacroExpansion,File 2, 6:13 -> 6:16 = #0
 // CHECK-NEXT: File 3, 3:12 -> 3:13 = #0
 // CHECK-NEXT: File 4, 5:13 -> 5:14 = #0
 
 // CHECK-LABEL: func4:
-// CHECK-NEXT: Expansion,File 0, [[@LINE+3]]:18 -> [[@LINE+3]]:20 = #0
+// CHECK-NEXT: MacroExpansion,File 0, [[@LINE+3]]:18 -> [[@LINE+3]]:20 = #0
 // CHECK-NEXT: File 0, [[@LINE+2]]:20 -> [[@LINE+2]]:24 = #0
-// CHECK-NEXT: Expansion,File 0, [[@LINE+1]]:21 -> [[@LINE+1]]:24 = #0
+// CHECK-NEXT: MacroExpansion,File 0, [[@LINE+1]]:21 -> [[@LINE+1]]:24 = #0
 void func4(void) M1 M11
-// CHECK-NEXT: Expansion,File 1, 4:12 -> 4:14 = #0
-// CHECK-NEXT: Expansion,File 2, 6:13 -> 6:16 = #0
+// CHECK-NEXT: MacroExpansion,File 1, 4:12 -> 4:14 = #0
+// CHECK-NEXT: MacroExpansion,File 2, 6:13 -> 6:16 = #0
 // CHECK-NEXT: File 3, 3:12 -> 3:13 = #0
 // CHECK-NEXT: File 4, 5:13 -> 5:14 = #0
diff --git a/clang/test/CoverageMapping/macroparams.c 
b/clang/test/CoverageMapping/macroparams.c
index 2f60cffbfdb77..282ece3644123 100644
--- a/clang/test/CoverageMapping/macroparams.c
+++ b/clang/test/CoverageMapping/macroparams.c
@@ -2,10 +2,10 @@
 
 // CHECK: main
 // CHECK-NEXT: File 0, {{[0-9]+}}:16 -> {{[0-9]+}}:2 = #0
-// CHECK-NEXT: Expansion,File 0, {{[0-9]+}}:3 -> {{[0-9]+}}:8 = #0
+// CHECK-NEXT: MacroExpansion,File 0, {{[0-9]+}}:3 -> {{[0-9]+}}:8 = #0
 
 // CHECK-NEXT: File 1, [[@LINE+2]]:18 -> [[@LINE+2]]:27 = #0
-// CHECK-NEXT: Expansion,File 1, [[@LINE+1]]:18 -> [[@LINE+1]]:24 = #0
+// CHECK-NEXT: MacroExpansion,File 1, [[@LINE+1]]:18 -> [[@LINE+1]]:24 = #0
 #define MACRO(X) MACRO2(x)
 // CHECK-NEXT: File 2, [[@LINE+1]]:20 -> [[@LINE+1]]:28 = #0
 #define MACRO2(X2) (X2 + 2)
diff --git a/clang/test/CoverageMapping/macroparams2.c 
b/clang/test/CoverageMapping/macroparams2.c
index 7873b6ac12a9a..516516b4c4aa9 100644
--- a/clang/test/CoverageMapping/macroparams2.c
+++ b/clang/test/CoverageMapping/macroparams2.c
@@ -10,7 +10,7 @@ struct S {
 int main(void) {
   struct S arr[32] = { 0 };
   int n = 0;
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+3]]:7 -> [[@LINE+3]]:12 = #0
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+3]]:7 -> [[@LINE+3]]:12 = #0
   // CHECK-NEXT: Gap,File 0, [[@LINE+2]]:33 -> [[@LINE+2]]:34 = #1
   // CHECK-NEXT: File 0, [[@LINE+1]]:34 -> [[@LINE+3]]:4 = #1
   if (MACRO(arr[n].j, arr[n].i)) {
diff --git a/clang/test/CoverageMapping/macros.c 
b/clang/test/CoverageMapping/macros.c
index 00139f33229d5..f070de7a0ea25 100644
--- a/clang/test/CoverageMapping/macros.c
+++ b/clang/test/CoverageMapping/macros.c
@@ -11,7 +11,7 @@ void bar(void) {}
 // CHECK: func
 void func(void) {  // CHECK-NEXT: File 0, [[@LINE]]:17 -> [[@LINE+5]]:2 = #0
   int i = 0;
-  // CHECK-NEXT: Expansion,File 0, [[@LINE+1]]:3 -> [[@LINE+1]]:8 = #0
+  // CHECK-NEXT: MacroExpansion,File 0, [[@LINE+1]]:3 -> [[@LINE+1]]:8 = #0
   MACRO;       // CHECK-NEXT: File 0, [[@LINE]]:8 -> [[@LINE+2]]:2 = 0
   i = 2;
 }
@@ -21,18 +21,18 @@ void func(void) {  // CHECK-NEXT: File 0, [[@LINE]]:17 -> 
[[@LINE+5]]:2 = #0
 // CHECK-NEXT: func2
 void func2(void) { // CHECK-NEXT: File 0, [[@LINE]]:18 -> [[@LINE+5]]:2 = #0
   int i = 0;
-  // CHECK-N...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/204517
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to