aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Analysis/FlowSensitive
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-04-16 21:10:48 +0000
committerTed Kremenek <kremenek@apple.com>2008-04-16 21:10:48 +0000
commit411cdee0b490f79428c9eb977f25199eb7d21cd8 (patch)
tree407d0ebbd91e5ca8b702fa68bce29e7c899794ba /include/clang/Analysis/FlowSensitive
parent7e7e3872b584bc5e7de7a34c8b9c092032303b72 (diff)
Added CFGBlock::getTerminatorCondition() to get the Expr* of the condition a block's terminator.
Refactored LiveVariables to use getTerminatorCondition() in VisitTerminator(). Bug fix: CFG now computes Block-level expression numbers using information from block terminators. This fixes <rdar://problem/5868189>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49818 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Analysis/FlowSensitive')
-rw-r--r--include/clang/Analysis/FlowSensitive/DataflowSolver.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/clang/Analysis/FlowSensitive/DataflowSolver.h b/include/clang/Analysis/FlowSensitive/DataflowSolver.h
index 9cf77cf144..b7cb1f8a06 100644
--- a/include/clang/Analysis/FlowSensitive/DataflowSolver.h
+++ b/include/clang/Analysis/FlowSensitive/DataflowSolver.h
@@ -259,13 +259,13 @@ private:
for (StmtItr I=ItrTraits::StmtBegin(B), E=ItrTraits::StmtEnd(B); I!=E;++I)
ProcessStmt(*I, recordStmtValues, AnalysisDirTag());
- if (Stmt* Term = (Stmt*) B->getTerminator()) TF.VisitTerminator(Term);
+ TF.VisitTerminator(const_cast<CFGBlock*>(B));
}
void ProcessBlock(const CFGBlock* B, bool recordStmtValues,
dataflow::backward_analysis_tag) {
- if (Stmt* Term = (Stmt*) B->getTerminator()) TF.VisitTerminator(Term);
+ TF.VisitTerminator(const_cast<CFGBlock*>(B));
for (StmtItr I=ItrTraits::StmtBegin(B), E=ItrTraits::StmtEnd(B); I!=E;++I)
ProcessStmt(*I, recordStmtValues, AnalysisDirTag());