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 4a54b46..f99de1c 100644
--- a/AST/CFG.cpp
+++ b/AST/CFG.cpp
@@ -332,11 +332,12 @@
 ///  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;