forked from OSchip/llvm-project
Fixed bug in WalkaST_VisitDeclSubExprs where we failed to properly check if
the StmtIterator referring to the initializers of a chain of Decls was equal to the "end" iterator. The particular bug manifested when an iterator was created on a chain of decls with no initializers. Thanks to Nuno Lopes for reporting this bug and providing a patch. llvm-svn: 44220
This commit is contained in:
parent
44158478bb
commit
7016e4d509
|
@ -332,11 +332,12 @@ CFGBlock* CFGBuilder::WalkAST(Stmt* S, bool AlwaysAddStmt = false) {
|
|||
/// we must linearize declarations to handle arbitrary control-flow induced by
|
||||
/// those expressions.
|
||||
CFGBlock* CFGBuilder::WalkAST_VisitDeclSubExprs(StmtIterator& I) {
|
||||
if (I == StmtIterator())
|
||||
return Block;
|
||||
|
||||
Stmt* S = *I;
|
||||
++I;
|
||||
|
||||
if (I != StmtIterator())
|
||||
WalkAST_VisitDeclSubExprs(I);
|
||||
WalkAST_VisitDeclSubExprs(I);
|
||||
|
||||
Block = addStmt(S);
|
||||
return Block;
|
||||
|
|
Loading…
Reference in New Issue