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 8bdb42b..957402a 100644
--- a/lib/Sema/SemaTemplateInstantiateStmt.cpp
+++ b/lib/Sema/SemaTemplateInstantiateStmt.cpp
@@ -98,10 +98,13 @@
 
 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));
 }