From d660322ccf21fc9a319a62ad42907c631504d4cd Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Sun, 18 Nov 2007 20:06:01 +0000 Subject: [PATCH] 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 --- AST/CFG.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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; -- 2.50.1