From: Vedant Kumar Date: Tue, 20 Sep 2016 21:27:48 +0000 (+0000) Subject: [llvm-cov] Demangle names for hidden instantiation views X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=139080743fa0e9e18566dacd97c2664e5eaad0f2;p=llvm [llvm-cov] Demangle names for hidden instantiation views git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282020 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/tools/llvm-cov/demangle.test b/test/tools/llvm-cov/demangle.test index f9a0f9183eb..90a26b73406 100644 --- a/test/tools/llvm-cov/demangle.test +++ b/test/tools/llvm-cov/demangle.test @@ -1,4 +1,8 @@ -// RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -Xdemangler sed -Xdemangler 's/_/X/g' -filename-equivalence %S/showTemplateInstantiations.cpp | FileCheck %s +RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -Xdemangler sed -Xdemangler 's/_/X/g' -filename-equivalence %S/showTemplateInstantiations.cpp | FileCheck %s -// CHECK-DAG: XZ4funcIbEiTX -// CHECK-DAG: XZ4funcIiEiTX +// Check that we demangle names even if the sub-view will be hidden. +RUN: llvm-profdata merge %S/Inputs/hideUnexecutedSubviews.proftext -o %t.profdata +RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %t.profdata -Xdemangler sed -Xdemangler 's/_/X/g' -filename-equivalence %S/showTemplateInstantiations.cpp | FileCheck %s + +CHECK-DAG: XZ4funcIbEiTX +CHECK-DAG: XZ4funcIiEiTX diff --git a/tools/llvm-cov/CodeCoverage.cpp b/tools/llvm-cov/CodeCoverage.cpp index 9eacbcad5ce..8c9da116b96 100644 --- a/tools/llvm-cov/CodeCoverage.cpp +++ b/tools/llvm-cov/CodeCoverage.cpp @@ -236,12 +236,13 @@ CodeCoverageTool::createSourceFileView(StringRef SourceFile, for (const auto *Function : Coverage.getInstantiations(SourceFile)) { std::unique_ptr SubView{nullptr}; + StringRef Funcname = getSymbolForHumans(Function->Name); + if (Function->ExecutionCount > 0) { auto SubViewCoverage = Coverage.getCoverageForFunction(*Function); auto SubViewExpansions = SubViewCoverage.getExpansions(); SubView = SourceCoverageView::create( - getSymbolForHumans(Function->Name), SourceBuffer.get(), ViewOpts, - std::move(SubViewCoverage)); + Funcname, SourceBuffer.get(), ViewOpts, std::move(SubViewCoverage)); attachExpansionSubViews(*SubView, SubViewExpansions, Coverage); } @@ -250,7 +251,7 @@ CodeCoverageTool::createSourceFileView(StringRef SourceFile, for (const auto &CR : Function->CountedRegions) if (CR.FileID == FileID) Line = std::max(CR.LineEnd, Line); - View->addInstantiation(Function->Name, Line, std::move(SubView)); + View->addInstantiation(Funcname, Line, std::move(SubView)); } return View; }