From: Ted Kremenek Date: Sun, 18 Nov 2007 20:06:01 +0000 (+0000) Subject: Fixed bug in WalkaST_VisitDeclSubExprs where we failed to properly check if X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d660322ccf21fc9a319a62ad42907c631504d4cd;p=clang 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44220 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/AST/CFG.cpp b/AST/CFG.cpp index 4a54b469cc..f99de1cc79 100644 --- a/AST/CFG.cpp +++ b/AST/CFG.cpp @@ -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;