From 2298f910fa46565430ce1dad39ecda74f05a4ae1 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Mon, 27 Aug 2007 20:58:16 +0000 Subject: [PATCH] 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 --- AST/Stmt.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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; +} -- 2.40.0