From cab52add57ca955a6f36ca5033f5e0cc85aeb602 Mon Sep 17 00:00:00 2001 From: Vedant Kumar Date: Fri, 23 Sep 2016 20:13:41 +0000 Subject: [PATCH] [llvm-cov] Factor out logic to remove unmapped inputs (NFC) llvm-svn: 282286 --- llvm/tools/llvm-cov/CodeCoverage.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/llvm/tools/llvm-cov/CodeCoverage.cpp b/llvm/tools/llvm-cov/CodeCoverage.cpp index 9230d01..96543bb 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 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) { -- 2.7.4