diff options
author | Yaron Keren <yaron.keren@gmail.com> | 2017-06-12 02:18:50 +0000 |
---|---|---|
committer | Yaron Keren <yaron.keren@gmail.com> | 2017-06-12 02:18:50 +0000 |
commit | 7d46392124f895bc024afa8d9afb7ed061d87b47 (patch) | |
tree | 0b824799f8fe2ab8daf8449c95221df51c9b7eb8 /llvm/lib/Analysis/CallGraphSCCPass.cpp | |
parent | dffec3d678db76752f6c2fb1f3b886751a3b1fbd (diff) | |
download | bcm5719-llvm-7d46392124f895bc024afa8d9afb7ed061d87b47.tar.gz bcm5719-llvm-7d46392124f895bc024afa8d9afb7ed061d87b47.zip |
Address http://bugs.llvm.org/pr32207 by making BannerPrinted local to runOnSCC and skipping banner for function declarations.
Reviewed By: Mehdi AMINI
Differential Revision: https://reviews.llvm.org/D34086
llvm-svn: 305179
Diffstat (limited to 'llvm/lib/Analysis/CallGraphSCCPass.cpp')
-rw-r--r-- | llvm/lib/Analysis/CallGraphSCCPass.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Analysis/CallGraphSCCPass.cpp b/llvm/lib/Analysis/CallGraphSCCPass.cpp index 5896e6e0902..facda246936 100644 --- a/llvm/lib/Analysis/CallGraphSCCPass.cpp +++ b/llvm/lib/Analysis/CallGraphSCCPass.cpp @@ -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(); |