forked from llvm-mirror/llvm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
llvm-cov: Added -a option for block data.
Similar to gcov, llvm-cov will now print out the block count at the end of each block. Multiple blocks can end on the same line. One computational difference is by using -a, llvm-cov will no longer simply add the block counts together to form a line count. Instead, it will take the maximum of the block counts on that line. This has a similar effect to what gcov does, but generates more correct counts in certain scenarios. Also updated tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196856 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
1 parent
06e6843
commit 30d5ef5
Showing
8 changed files
with
172 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
-: 0:Source:test.cpp | ||
-: 0:Graph:test.gcno | ||
-: 0:Data:test.gcda | ||
-: 0:Runs:2 | ||
-: 0:Programs:1 | ||
-: 1:#include "test.h" | ||
-: 2:#include <cstdlib> | ||
-: 3: | ||
-: 4:bool on = false; | ||
-: 5:int len = 42; | ||
-: 6:double grid[10][10] = {0}; | ||
-: 7:const char * hello = "world"; | ||
-: 8:const char * world = "hello"; | ||
-: 9: | ||
8589934592: 10:void A::B() {} | ||
8589934592: 10-block 0 | ||
-: 11: | ||
#####: 12:void useless() {} | ||
$$$$$: 12-block 0 | ||
-: 13: | ||
-: 14:double more_useless() { | ||
#####: 15: return 0; | ||
$$$$$: 15-block 0 | ||
-: 16:} | ||
-: 17: | ||
-: 18:int foo() { | ||
2: 19: on = true; | ||
2: 20: return 3; | ||
2: 20-block 0 | ||
-: 21:} | ||
-: 22: | ||
-: 23:int bar() { | ||
#####: 24: len--; | ||
#####: 25: return foo() + 45; | ||
$$$$$: 25-block 0 | ||
-: 26:} | ||
-: 27: | ||
8: 28:void assign(int ii, int jj) { | ||
8: 29: grid[ii][jj] = (ii+1) * (jj+1); | ||
8: 30:} | ||
8: 30-block 0 | ||
-: 31: | ||
-: 32:void initialize_grid() { | ||
6: 33: for (int ii = 0; ii < 2; ii++) | ||
2: 33-block 0 | ||
6: 33-block 1 | ||
4: 33-block 2 | ||
12: 34: for (int jj = 0; jj < 2; jj++) | ||
4: 34-block 0 | ||
12: 34-block 1 | ||
8: 34-block 2 | ||
8: 35: assign(ii, jj); | ||
8: 35-block 0 | ||
4: 35-block 1 | ||
2: 36:} | ||
2: 36-block 0 | ||
-: 37: | ||
-: 38:int main() { | ||
2: 39: initialize_grid(); | ||
-: 40: | ||
2: 41: int a = 2; | ||
2: 42: on = rand() % 2; | ||
2: 43: if (on) { | ||
2: 43-block 0 | ||
2: 44: foo(); | ||
2: 45: ++a; | ||
2: 46: } else { | ||
2: 46-block 0 | ||
#####: 47: bar(); | ||
#####: 48: a += rand(); | ||
$$$$$: 48-block 0 | ||
-: 49: } | ||
-: 50: | ||
22: 51: for (int ii = 0; ii < 10; ++ii) { | ||
2: 51-block 0 | ||
22: 51-block 1 | ||
20: 51-block 2 | ||
20: 52: switch (rand() % 5) { | ||
20: 52-block 0 | ||
-: 53: case 0: | ||
4: 54: a += rand(); | ||
4: 55: break; | ||
4: 55-block 0 | ||
-: 56: case 1: | ||
-: 57: case 2: | ||
2: 58: a += rand() / rand(); | ||
2: 59: break; | ||
2: 59-block 0 | ||
-: 60: case 3: | ||
6: 61: a -= rand(); | ||
6: 62: break; | ||
6: 62-block 0 | ||
-: 63: default: | ||
8: 64: a = -1; | ||
8: 65: } | ||
8: 65-block 0 | ||
20: 66: } | ||
20: 66-block 0 | ||
-: 67: | ||
2: 68: A thing; | ||
8589934594: 69: for (uint64_t ii = 0; ii < 4294967296; ++ii) | ||
2: 69-block 0 | ||
8589934594: 69-block 1 | ||
8589934592: 69-block 2 | ||
8589934592: 70: thing.B(); | ||
8589934592: 70-block 0 | ||
-: 71: | ||
2: 72: return a + 8 + grid[2][3] + len; | ||
2: 72-block 0 | ||
-: 73: return more_useless(); | ||
-: 74:} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
-: 0:Source:./test.h | ||
-: 0:Graph:test.gcno | ||
-: 0:Data:test.gcda | ||
-: 0:Runs:2 | ||
-: 0:Programs:1 | ||
2: 1:struct A { | ||
2: 1-block 0 | ||
2: 1-block 1 | ||
-: 2: virtual void B(); | ||
-: 3:}; |
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters