summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2012-04-05 02:10:21 +0000
committerAnna Zaks <ganna@apple.com>2012-04-05 02:10:21 +0000
commit8382e4547f6becd8e62d2920aaca4a138c517ac6 (patch)
treef5de247831dc0efb0ab7e4cb708916b46cb57e2e /clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
parent67c83d247eb62aa96d9baeb2505803dcce6e7556 (diff)
downloadbcm5719-llvm-8382e4547f6becd8e62d2920aaca4a138c517ac6.tar.gz
bcm5719-llvm-8382e4547f6becd8e62d2920aaca4a138c517ac6.zip
[analyzer] Move stats calculation out of AnalysisConsumer destructor.
The ASTConsumer does not get deleted with clang --analyze (for performance reasons), we still want the diagnostics to work. llvm-svn: 154078
Diffstat (limited to 'clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp b/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
index df2d265cad0..756ef32615a 100644
--- a/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
+++ b/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
@@ -125,13 +125,6 @@ public:
}
~AnalysisConsumer() {
- // Count how many basic blocks we have not covered.
- NumBlocksInAnalyzedFunctions = FunctionSummaries.getTotalNumBasicBlocks();
- if (NumBlocksInAnalyzedFunctions > 0)
- PercentReachableBlocks =
- (FunctionSummaries.getTotalNumVisitedBasicBlocks() * 100) /
- NumBlocksInAnalyzedFunctions;
-
if (Opts.PrintStats)
delete TUTotalTimer;
}
@@ -383,6 +376,14 @@ void AnalysisConsumer::HandleTranslationUnit(ASTContext &C) {
Mgr.reset(NULL);
if (TUTotalTimer) TUTotalTimer->stopTimer();
+
+ // Count how many basic blocks we have not covered.
+ NumBlocksInAnalyzedFunctions = FunctionSummaries.getTotalNumBasicBlocks();
+ if (NumBlocksInAnalyzedFunctions > 0)
+ PercentReachableBlocks =
+ (FunctionSummaries.getTotalNumVisitedBasicBlocks() * 100) /
+ NumBlocksInAnalyzedFunctions;
+
}
static void FindBlocks(DeclContext *D, SmallVectorImpl<Decl*> &WL) {
OpenPOWER on IntegriCloud