diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-04-16 21:10:48 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-04-16 21:10:48 +0000 |
commit | 411cdee0b490f79428c9eb977f25199eb7d21cd8 (patch) | |
tree | 407d0ebbd91e5ca8b702fa68bce29e7c899794ba /include/clang/Analysis/FlowSensitive | |
parent | 7e7e3872b584bc5e7de7a34c8b9c092032303b72 (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.h | 4 |
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()); |