diff options
| author | Vedant Kumar <vsk@apple.com> | 2017-09-08 18:44:50 +0000 |
|---|---|---|
| committer | Vedant Kumar <vsk@apple.com> | 2017-09-08 18:44:50 +0000 |
| commit | 79a1b5ee5ab073d4399e025b7ac9e067938293c4 (patch) | |
| tree | f77362158cff26f2856949cd768132beb8fd6371 /llvm/test/tools/llvm-cov | |
| parent | 72c3a11488c411ddb7027e2cecaf7c2467b213c8 (diff) | |
| download | bcm5719-llvm-79a1b5ee5ab073d4399e025b7ac9e067938293c4.tar.gz bcm5719-llvm-79a1b5ee5ab073d4399e025b7ac9e067938293c4.zip | |
[Coverage] Build sorted and unique segments
A coverage segment contains a starting line and column, an execution
count, and some other metadata. Clients of the coverage library use
segments to prepare line-oriented reports.
Users of the coverage library depend on segments being unique and sorted
in source order. Currently this is not guaranteed (this is why the clang
change which introduced deferred regions was reverted).
This commit documents the "unique and sorted" condition and asserts that
it holds. It also fixes the SegmentBuilder so that it produces correct
output in some edge cases.
Testing: I've added unit tests for some edge cases. I've also checked
that the new SegmentBuilder implementation is fully covered. Apart from
running check-profile and the llvm-cov tests, I've successfully used a
stage1 llvm-cov to prepare a coverage report for an instrumented clang
binary.
Differential Revision: https://reviews.llvm.org/D36813
llvm-svn: 312817
Diffstat (limited to 'llvm/test/tools/llvm-cov')
| -rw-r--r-- | llvm/test/tools/llvm-cov/deferred-region.cpp | 4 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-cov/showHighlightedRanges.cpp | 2 |
2 files changed, 2 insertions, 4 deletions
diff --git a/llvm/test/tools/llvm-cov/deferred-region.cpp b/llvm/test/tools/llvm-cov/deferred-region.cpp index 905c78b1c8e..2868e1f0c89 100644 --- a/llvm/test/tools/llvm-cov/deferred-region.cpp +++ b/llvm/test/tools/llvm-cov/deferred-region.cpp @@ -5,7 +5,7 @@ void foo(int x) { return; // CHECK: [[@LINE]]|{{ +}}1| } -} // CHECK: [[@LINE]]|{{ +}}2| +} // CHECK: [[@LINE]]|{{ +}}1| void bar() { return; @@ -103,11 +103,9 @@ int main() { // MARKER-NEXT: Highlighted line 47, 14 -> 21 // MARKER-NEXT: Highlighted line 47, 21 -> 23 // MARKER-NEXT: Highlighted line 47, 23 -> 25 -// MARKER-NEXT: Highlighted line 47, 25 -> ? // MARKER-NEXT: Marker at 47:7 = 0 // MARKER-NEXT: Marker at 47:14 = 0 // MARKER-NEXT: Marker at 47:23 = 0 -// MARKER-NEXT: Highlighted line 48, 1 -> 6 // MARKER-NEXT: Highlighted line 51, 7 -> 20 // MARKER-NEXT: Marker at 51:7 = 0 // MARKER-NEXT: Marker at 53:5 = 1 diff --git a/llvm/test/tools/llvm-cov/showHighlightedRanges.cpp b/llvm/test/tools/llvm-cov/showHighlightedRanges.cpp index 3b457faccd2..bfcdf76f4ad 100644 --- a/llvm/test/tools/llvm-cov/showHighlightedRanges.cpp +++ b/llvm/test/tools/llvm-cov/showHighlightedRanges.cpp @@ -10,7 +10,7 @@ void func2(int x) { while(x >= 9) { return; --x; // SHARED: Highlighted line [[@LINE]], 7 -> - } // SHARED: Highlighted line [[@LINE]], 1 -> 6 + } int i = 0; // SHARED: Highlighted line [[@LINE]], 5 -> } // SHARED: Highlighted line [[@LINE]], 1 -> 4 } |

