diff options
author | Anna Zaks <ganna@apple.com> | 2012-03-28 17:05:46 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2012-03-28 17:05:46 +0000 |
commit | 64ee9d03c9fa0e9f4b944300167f871d9a65a991 (patch) | |
tree | 040a229441bce6005850052dc62e83973cf06c3d /lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp | |
parent | a0786c91dfd920573e26c82e242143b6ec610b19 (diff) |
[analyzer] Refactor: Use Decl when determining if the Block belongs to
the root function.
(This is a bit cleaner then using the StackFrame.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153580 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp')
-rw-r--r-- | lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp b/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp index 219fc28595..9dd8da57ec 100644 --- a/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp @@ -42,22 +42,22 @@ void AnalyzerStatsChecker::checkEndAnalysis(ExplodedGraph &G, BugReporter &B, ExprEngine &Eng) const { const CFG *C = 0; - const Decl *D = 0; const SourceManager &SM = B.getSourceManager(); llvm::SmallPtrSet<const CFGBlock*, 256> reachable; // Root node should have the location context of the top most function. const ExplodedNode *GraphRoot = *G.roots_begin(); - const LocationContext *LC = - GraphRoot->getLocation().getLocationContext()->getCurrentStackFrame(); + const LocationContext *LC = GraphRoot->getLocation().getLocationContext(); + + const Decl *D = LC->getDecl(); // Iterate over the exploded graph. for (ExplodedGraph::node_iterator I = G.nodes_begin(); I != G.nodes_end(); ++I) { const ProgramPoint &P = I->getLocation(); - // Only check the coverage in the top level function. - if (LC != P.getLocationContext()->getCurrentStackFrame()) + // Only check the coverage in the top level function (optimization). + if (D != P.getLocationContext()->getDecl()) continue; if (const BlockEntrance *BE = dyn_cast<BlockEntrance>(&P)) { @@ -66,9 +66,8 @@ void AnalyzerStatsChecker::checkEndAnalysis(ExplodedGraph &G, } } - // Get the CFG and the Decl of this block + // Get the CFG and the Decl of this block. C = LC->getCFG(); - D = LC->getAnalysisDeclContext()->getDecl(); unsigned total = 0, unreachable = 0; |