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