From: Anders Carlsson Date: Fri, 15 May 2009 20:29:28 +0000 (+0000) Subject: I take it back, InstantiateExpr does not check for null. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e28be4386b3b2af45462339fc04c0924ffa78e93;p=clang I take it back, InstantiateExpr does not check for null. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71887 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaTemplateInstantiateStmt.cpp b/lib/Sema/SemaTemplateInstantiateStmt.cpp index 8bdb42b58f..957402ac6f 100644 --- a/lib/Sema/SemaTemplateInstantiateStmt.cpp +++ b/lib/Sema/SemaTemplateInstantiateStmt.cpp @@ -98,10 +98,13 @@ Sema::OwningStmtResult TemplateStmtInstantiator::VisitGotoStmt(GotoStmt *S) { Sema::OwningStmtResult TemplateStmtInstantiator::VisitReturnStmt(ReturnStmt *S) { - Sema::OwningExprResult Result = - SemaRef.InstantiateExpr(S->getRetValue(), TemplateArgs); - if (Result.isInvalid()) - return SemaRef.StmtError(); + Sema::OwningExprResult Result = SemaRef.ExprEmpty(); + if (Expr *E = S->getRetValue()) { + Result = SemaRef.InstantiateExpr(E, TemplateArgs); + + if (Result.isInvalid()) + return SemaRef.StmtError(); + } return SemaRef.ActOnReturnStmt(S->getReturnLoc(), move(Result)); }