diff options
author | Vedant Kumar <vsk@apple.com> | 2016-09-23 20:13:41 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2016-09-23 20:13:41 +0000 |
commit | 3de4fb356387479d7904265537d96a2bb3441b34 (patch) | |
tree | fafd7a31331655b7fc99922d10114782c8f9dec7 /tools/llvm-cov/CodeCoverage.cpp | |
parent | a6754db00d414ce5d9586a37ef23128474112370 (diff) |
[llvm-cov] Factor out logic to remove unmapped inputs (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282286 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-cov/CodeCoverage.cpp')
-rw-r--r-- | tools/llvm-cov/CodeCoverage.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/tools/llvm-cov/CodeCoverage.cpp b/tools/llvm-cov/CodeCoverage.cpp index 9230d01778c..96543bb6da2 100644 --- a/tools/llvm-cov/CodeCoverage.cpp +++ b/tools/llvm-cov/CodeCoverage.cpp @@ -92,6 +92,9 @@ private: /// \brief Load the coverage mapping data. Return nullptr if an error occured. std::unique_ptr<CoverageMapping> load(); + /// \brief Remove input source files which aren't mapped by \p Coverage. + void removeUnmappedInputs(const CoverageMapping &Coverage); + /// \brief If a demangler is available, demangle all symbol names. void demangleSymbols(const CoverageMapping &Coverage); @@ -332,7 +335,16 @@ std::unique_ptr<CoverageMapping> CodeCoverageTool::load() { if (Mismatched) warning(utostr(Mismatched) + " functions have mismatched data"); - std::vector<StringRef> CoveredFiles = Coverage.get()->getUniqueSourceFiles(); + if (!SourceFiles.empty()) + removeUnmappedInputs(*Coverage); + + demangleSymbols(*Coverage); + + return Coverage; +} + +void CodeCoverageTool::removeUnmappedInputs(const CoverageMapping &Coverage) { + std::vector<StringRef> CoveredFiles = Coverage.getUniqueSourceFiles(); auto UncoveredFilesIt = SourceFiles.end(); if (!CompareFilenamesOnly) { @@ -360,10 +372,6 @@ std::unique_ptr<CoverageMapping> CodeCoverageTool::load() { } SourceFiles.erase(UncoveredFilesIt, SourceFiles.end()); - - demangleSymbols(*Coverage); - - return Coverage; } void CodeCoverageTool::demangleSymbols(const CoverageMapping &Coverage) { |