From: Vedant Kumar Date: Fri, 23 Sep 2016 20:13:41 +0000 (+0000) Subject: [llvm-cov] Factor out logic to remove unmapped inputs (NFC) X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3de4fb356387479d7904265537d96a2bb3441b34;p=llvm [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 --- 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 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 CodeCoverageTool::load() { if (Mismatched) warning(utostr(Mismatched) + " functions have mismatched data"); - std::vector CoveredFiles = Coverage.get()->getUniqueSourceFiles(); + if (!SourceFiles.empty()) + removeUnmappedInputs(*Coverage); + + demangleSymbols(*Coverage); + + return Coverage; +} + +void CodeCoverageTool::removeUnmappedInputs(const CoverageMapping &Coverage) { + std::vector CoveredFiles = Coverage.getUniqueSourceFiles(); auto UncoveredFilesIt = SourceFiles.end(); if (!CompareFilenamesOnly) { @@ -360,10 +372,6 @@ std::unique_ptr CodeCoverageTool::load() { } SourceFiles.erase(UncoveredFilesIt, SourceFiles.end()); - - demangleSymbols(*Coverage); - - return Coverage; } void CodeCoverageTool::demangleSymbols(const CoverageMapping &Coverage) {