summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2012-07-05 20:44:02 +0000
committerAnna Zaks <ganna@apple.com>2012-07-05 20:44:02 +0000
commit40b87fc1f92028c34bcc2a9e1ed9c6e1b8bc8e1c (patch)
tree526946895a3fb5f9f0d09247c493a4afdbadef23 /clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
parent39cacebd2669ce429bfda745184451ad862a54e0 (diff)
downloadbcm5719-llvm-40b87fc1f92028c34bcc2a9e1ed9c6e1b8bc8e1c.tar.gz
bcm5719-llvm-40b87fc1f92028c34bcc2a9e1ed9c6e1b8bc8e1c.zip
[analyzer] Add a statistic for maximum CFG size and a script to summarize analyzer stats from scan-build output.
llvm-svn: 159776
Diffstat (limited to 'clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp b/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
index 520a975bda5..72e563941cc 100644
--- a/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
+++ b/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
@@ -58,6 +58,7 @@ STATISTIC(NumFunctionsAnalyzed, "The # of functions analysed (as top level).");
STATISTIC(NumBlocksInAnalyzedFunctions,
"The # of basic blocks in the analyzed functions.");
STATISTIC(PercentReachableBlocks, "The % of reachable basic blocks.");
+STATISTIC(MaxCFGSize, "The maximum number of basic blocks in a function.");
//===----------------------------------------------------------------------===//
// Special PathDiagnosticConsumers.
@@ -488,6 +489,12 @@ void AnalysisConsumer::HandleCode(Decl *D, AnalysisMode Mode,
return;
DisplayFunction(D, Mode);
+ CFG *DeclCFG = Mgr->getCFG(D);
+ if (DeclCFG) {
+ unsigned CFGSize = DeclCFG->size();
+ MaxCFGSize = MaxCFGSize < CFGSize ? CFGSize : MaxCFGSize;
+ }
+
// Clear the AnalysisManager of old AnalysisDeclContexts.
Mgr->ClearContexts();
OpenPOWER on IntegriCloud