From: Ted Kremenek Date: Mon, 27 Aug 2007 20:58:16 +0000 (+0000) Subject: Fixed bug in child_begin/child_end for ReturnStmt where the iterator X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2298f910fa46565430ce1dad39ecda74f05a4ae1;p=clang Fixed bug in child_begin/child_end for ReturnStmt where the iterator would be invalid when RetValExp == NULL. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41511 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/AST/Stmt.cpp b/AST/Stmt.cpp index 4aca7a4991..c74e1a8ed0 100644 --- a/AST/Stmt.cpp +++ b/AST/Stmt.cpp @@ -145,9 +145,13 @@ Stmt::child_iterator BreakStmt::child_begin() { return NULL; } Stmt::child_iterator BreakStmt::child_end() { return NULL; } // ReturnStmt -Stmt::child_iterator ReturnStmt::child_begin() { - return reinterpret_cast(&RetExpr); +Stmt::child_iterator ReturnStmt::child_begin() { + if (RetExpr) return reinterpret_cast(&RetExpr); + else return NULL; } -Stmt::child_iterator ReturnStmt::child_end() { return child_begin()+1; } +Stmt::child_iterator ReturnStmt::child_end() { + if (RetExpr) return reinterpret_cast(&RetExpr)+1; + else return NULL; +}