]> granicus.if.org Git - llvm/commitdiff
Address http://bugs.llvm.org/pr32207 by making BannerPrinted local to runOnSCC and...
authorYaron Keren <yaron.keren@gmail.com>
Mon, 12 Jun 2017 02:18:50 +0000 (02:18 +0000)
committerYaron Keren <yaron.keren@gmail.com>
Mon, 12 Jun 2017 02:18:50 +0000 (02:18 +0000)
Reviewed By: Mehdi AMINI

Differential Revision: https://reviews.llvm.org/D34086

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305179 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/CallGraphSCCPass.cpp

index 5896e6e0902f1ea32ce2f0b82c971d5599259587..facda246936dcf8e34d7e94007f539d73c5a141b 100644 (file)
@@ -608,18 +608,18 @@ namespace {
     }
 
     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();