diff options
Diffstat (limited to 'lib/AST/CFG.cpp')
-rw-r--r-- | lib/AST/CFG.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/AST/CFG.cpp b/lib/AST/CFG.cpp index aa5bbe437d..077f75c384 100644 --- a/lib/AST/CFG.cpp +++ b/lib/AST/CFG.cpp @@ -1587,6 +1587,30 @@ Expr* CFGBlock::getTerminatorCondition() { return E ? E->IgnoreParens() : NULL; } +bool CFGBlock::hasBinaryBranchTerminator() const { + + if (!Terminator) + return false; + + Expr* E = NULL; + + switch (Terminator->getStmtClass()) { + default: + return false; + + case Stmt::ForStmtClass: + case Stmt::WhileStmtClass: + case Stmt::DoStmtClass: + case Stmt::IfStmtClass: + case Stmt::ChooseExprClass: + case Stmt::ConditionalOperatorClass: + case Stmt::BinaryOperatorClass: + return true; + } + + return E ? E->IgnoreParens() : NULL; +} + //===----------------------------------------------------------------------===// // CFG Graphviz Visualization |