diff options
author | Anna Zaks <ganna@apple.com> | 2012-07-05 20:44:02 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2012-07-05 20:44:02 +0000 |
commit | 40b87fc1f92028c34bcc2a9e1ed9c6e1b8bc8e1c (patch) | |
tree | 526946895a3fb5f9f0d09247c493a4afdbadef23 /clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp | |
parent | 39cacebd2669ce429bfda745184451ad862a54e0 (diff) | |
download | bcm5719-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.cpp | 7 |
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(); |