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 | cab52add57ca955a6f36ca5033f5e0cc85aeb602 (patch) | |
tree | 2cf2ef57ab22b0ee78e9fb4b2059f7339dbed421 /llvm/tools/llvm-cov/CodeCoverage.cpp | |
parent | 65499b9040e42942c93dac1c2110948dc7565d8e (diff) | |
download | bcm5719-llvm-cab52add57ca955a6f36ca5033f5e0cc85aeb602.tar.gz bcm5719-llvm-cab52add57ca955a6f36ca5033f5e0cc85aeb602.zip |
[llvm-cov] Factor out logic to remove unmapped inputs (NFC)
llvm-svn: 282286
Diffstat (limited to 'llvm/tools/llvm-cov/CodeCoverage.cpp')
-rw-r--r-- | llvm/tools/llvm-cov/CodeCoverage.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/llvm/tools/llvm-cov/CodeCoverage.cpp b/llvm/tools/llvm-cov/CodeCoverage.cpp index 9230d01778c..96543bb6da2 100644 --- a/llvm/tools/llvm-cov/CodeCoverage.cpp +++ b/llvm/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) { |