diff options
author | Anna Zaks <ganna@apple.com> | 2012-04-05 02:10:21 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2012-04-05 02:10:21 +0000 |
commit | 8382e4547f6becd8e62d2920aaca4a138c517ac6 (patch) | |
tree | f5de247831dc0efb0ab7e4cb708916b46cb57e2e /clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp | |
parent | 67c83d247eb62aa96d9baeb2505803dcce6e7556 (diff) | |
download | bcm5719-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.cpp | 15 |
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) { |