[PATCH] D34086: Fix -print-after-all banner
    Yaron Keren via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Sun Jun 11 01:30:14 PDT 2017
    
    
  
yaron.keren created this revision.
Address https://bugs.llvm.org/show_bug.cgi?id=32207, banner does not print more than once following r292442 by making BannerPrinted local and skipping banner for function declarations.
Repository:
  rL LLVM
https://reviews.llvm.org/D34086
Files:
  lib/Analysis/CallGraphSCCPass.cpp
Index: lib/Analysis/CallGraphSCCPass.cpp
===================================================================
--- lib/Analysis/CallGraphSCCPass.cpp
+++ lib/Analysis/CallGraphSCCPass.cpp
@@ -608,18 +608,18 @@
     }
 
     bool runOnSCC(CallGraphSCC &SCC) override {
+      bool BannerPrinted = false;
       auto PrintBannerOnce = [&] () {
-        static bool BannerPrinted = false;
         if (BannerPrinted)
           return;
         Out << Banner;
         BannerPrinted = true;
         };
       for (CallGraphNode *CGN : SCC) {
-        if (CGN->getFunction()) {
-          if (isFunctionInPrintList(CGN->getFunction()->getName())) {
+        if (Function *F = CGN->getFunction()) {
+          if (!F->isDeclaration() && isFunctionInPrintList(F->getName())) {
             PrintBannerOnce();
-            CGN->getFunction()->print(Out);
+            F->print(Out);
           }
         } else if (llvm::isFunctionInPrintList("*")) {
           PrintBannerOnce();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D34086.102129.patch
Type: text/x-patch
Size: 973 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170611/5f0625d7/attachment.bin>
    
    
More information about the llvm-commits
mailing list