diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-11-12 21:11:49 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-11-12 21:11:49 +0000 |
commit | 390e48b15ad93f85bfd1e33b9992c198fa0db475 (patch) | |
tree | fd23cc5bd2e3464c797ed7037f4f3ccd94800454 /lib/AST/CFG.cpp | |
parent | 57d5788b45b677463f3132410d6f530ae5a2cf87 (diff) |
ObjCForCollectionStmts are block-level expressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59160 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/CFG.cpp')
-rw-r--r-- | lib/AST/CFG.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/AST/CFG.cpp b/lib/AST/CFG.cpp index 95e188269e..4b7085a03d 100644 --- a/lib/AST/CFG.cpp +++ b/lib/AST/CFG.cpp @@ -1259,11 +1259,11 @@ static BlkExprMapTy* PopulateBlkExprMap(CFG& cfg) { // Look at terminators. The condition is a block-level expression. - Expr* Exp = I->getTerminatorCondition(); + Stmt* S = I->getTerminatorCondition(); - if (Exp && M->find(Exp) == M->end()) { + if (S && M->find(S) == M->end()) { unsigned x = M->size(); - (*M)[Exp] = x; + (*M)[S] = x; } } @@ -1608,7 +1608,7 @@ void CFGBlock::printTerminator(llvm::raw_ostream& OS) const { TPrinter.Visit(const_cast<Stmt*>(getTerminator())); } -Expr* CFGBlock::getTerminatorCondition() { +Stmt* CFGBlock::getTerminatorCondition() { if (!Terminator) return NULL; @@ -1653,7 +1653,10 @@ Expr* CFGBlock::getTerminatorCondition() { case Stmt::BinaryOperatorClass: // '&&' and '||' E = cast<BinaryOperator>(Terminator)->getLHS(); - break; + break; + + case Stmt::ObjCForCollectionStmtClass: + return Terminator; } return E ? E->IgnoreParens() : NULL; |