]> granicus.if.org Git - clang/commitdiff
I take it back, InstantiateExpr does not check for null.
authorAnders Carlsson <andersca@mac.com>
Fri, 15 May 2009 20:29:28 +0000 (20:29 +0000)
committerAnders Carlsson <andersca@mac.com>
Fri, 15 May 2009 20:29:28 +0000 (20:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71887 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaTemplateInstantiateStmt.cpp

index 8bdb42b58f6767ea78c62f598a40670b645a914b..957402ac6f666e3e60e7bec2a5084d1550ad6f83 100644 (file)
@@ -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));
 }