mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-21 11:38:28 +00:00
[llvm-cov] Filter away source files that aren't in the coverage mapping
... so that they don't show up in the index. This came up because polly contains a .git directory and some other unmapped input in its source dir. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282282 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fd066351a5
commit
daacf3c8ba
@ -1,5 +1,6 @@
|
||||
// RUN: llvm-cov report %S/Inputs/report.covmapping -instr-profile %S/Inputs/report.profdata -filename-equivalence 2>&1 | FileCheck %s
|
||||
// RUN: llvm-cov report %S/Inputs/report.covmapping -instr-profile %S/Inputs/report.profdata -filename-equivalence report.cpp 2>&1 | FileCheck -check-prefix=FILT-NEXT %s
|
||||
// RUN: llvm-cov report %S/Inputs/report.covmapping -instr-profile %S/Inputs/report.profdata -filename-equivalence report.cpp 2>&1 | FileCheck -check-prefix=FILT %s
|
||||
// RUN: llvm-cov report %S/Inputs/report.covmapping -instr-profile %S/Inputs/report.profdata -filename-equivalence report.cpp does-not-exist.cpp 2>&1 | FileCheck -check-prefix=FILT %s
|
||||
|
||||
// CHECK: Regions Missed Regions Cover Functions Missed Functions Executed Instantiations Missed Insts. Executed Lines Missed Lines Cover
|
||||
// CHECK-NEXT: ---
|
||||
|
@ -332,19 +332,35 @@ std::unique_ptr<CoverageMapping> CodeCoverageTool::load() {
|
||||
if (Mismatched)
|
||||
warning(utostr(Mismatched) + " functions have mismatched data");
|
||||
|
||||
if (CompareFilenamesOnly) {
|
||||
auto CoveredFiles = Coverage.get()->getUniqueSourceFiles();
|
||||
std::vector<StringRef> CoveredFiles = Coverage.get()->getUniqueSourceFiles();
|
||||
|
||||
auto UncoveredFilesIt = SourceFiles.end();
|
||||
if (!CompareFilenamesOnly) {
|
||||
// The user may have specified source files which aren't in the coverage
|
||||
// mapping. Filter these files away.
|
||||
UncoveredFilesIt = std::remove_if(
|
||||
SourceFiles.begin(), SourceFiles.end(), [&](const std::string &SF) {
|
||||
return !std::binary_search(CoveredFiles.begin(), CoveredFiles.end(),
|
||||
SF);
|
||||
});
|
||||
} else {
|
||||
for (auto &SF : SourceFiles) {
|
||||
StringRef SFBase = sys::path::filename(SF);
|
||||
for (const auto &CF : CoveredFiles)
|
||||
for (const auto &CF : CoveredFiles) {
|
||||
if (SFBase == sys::path::filename(CF)) {
|
||||
RemappedFilenames[CF] = SF;
|
||||
SF = CF;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
UncoveredFilesIt = std::remove_if(
|
||||
SourceFiles.begin(), SourceFiles.end(),
|
||||
[&](const std::string &SF) { return !RemappedFilenames.count(SF); });
|
||||
}
|
||||
|
||||
SourceFiles.erase(UncoveredFilesIt, SourceFiles.end());
|
||||
|
||||
demangleSymbols(*Coverage);
|
||||
|
||||
return Coverage;
|
||||
|
Loading…
Reference in New Issue
Block a user