aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2017-09-21 01:11:30 +0000
committerVedant Kumar <vsk@apple.com>2017-09-21 01:11:30 +0000
commit18dd9e88ed10c380e8d9cc999854c6365f3908c1 (patch)
treee53f82fc4e33dc611ad39d99ea21f623cadb949a /llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
parentfdcdd88d5718c4785b7d3e3bc9b9e866b56590d5 (diff)
downloadllvm-18dd9e88ed10c380e8d9cc999854c6365f3908c1.zip
llvm-18dd9e88ed10c380e8d9cc999854c6365f3908c1.tar.gz
llvm-18dd9e88ed10c380e8d9cc999854c6365f3908c1.tar.bz2
[llvm-cov] Improve error messaging for function mismatches
Passing "-dump" to llvm-cov will now print more detailed information about function hash and counter mismatches. This should make it easier to debug *.profdata files which contain incorrect records, and to debug other scenarios where coverage goes missing due to mismatch issues. llvm-svn: 313853
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMapping.cpp')
-rw-r--r--llvm/lib/ProfileData/Coverage/CoverageMapping.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp b/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
index 4c257cf..52f9447 100644
--- a/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
+++ b/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
@@ -217,7 +217,7 @@ Error CoverageMapping::loadFunctionRecord(
Record.FunctionHash, Counts)) {
instrprof_error IPE = InstrProfError::take(std::move(E));
if (IPE == instrprof_error::hash_mismatch) {
- MismatchedFunctionCount++;
+ FuncHashMismatches.emplace_back(Record.FunctionName, Record.FunctionHash);
return Error::success();
} else if (IPE != instrprof_error::unknown_function)
return make_error<InstrProfError>(IPE);
@@ -237,7 +237,8 @@ Error CoverageMapping::loadFunctionRecord(
Function.pushRegion(Region, *ExecutionCount);
}
if (Function.CountedRegions.size() != Record.MappingRegions.size()) {
- MismatchedFunctionCount++;
+ FuncCounterMismatches.emplace_back(Record.FunctionName,
+ Function.CountedRegions.size());
return Error::success();
}