]> granicus.if.org Git - clang/commitdiff
Don't advance the statement iterator after we've deallocated the statement
authorDouglas Gregor <dgregor@apple.com>
Fri, 16 Jan 2009 06:50:08 +0000 (06:50 +0000)
committerDouglas Gregor <dgregor@apple.com>
Fri, 16 Jan 2009 06:50:08 +0000 (06:50 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62306 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/Stmt.cpp

index 586e8f986a97e35b0fc67306fe9364b0d51ed2b5..74ed6e92c6697f6b587b271c5759247976ba997f 100644 (file)
@@ -43,8 +43,9 @@ const char *Stmt::getStmtClassName() const {
 }
 
 void Stmt::DestroyChildren(ASTContext& C) {
-  for (child_iterator I = child_begin(), E = child_end(); I !=E; ++I)
-    if (Stmt* Child = *I) Child->Destroy(C);
+  for (child_iterator I = child_begin(), E = child_end(); I !=E; ) {
+    if (Stmt* Child = *I++) Child->Destroy(C);
+  }
 }
 
 void Stmt::Destroy(ASTContext& C) {