Use Sema::MaybeCreateExprWithCleanups() only after we've checked for a NULL/invalid expression

llvm-svn: 121081
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index aa2e2a5..88512af 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -3037,7 +3037,7 @@
                                                       SourceLocation(),
                                                       Owned(E));
       if (!Res.isInvalid()) {
-        Res = MaybeCreateExprWithCleanups(Res.get());
+        Res = MaybeCreateExprWithCleanups(Res);
         Expr *Init = Res.takeAs<Expr>();
         Context.setBlockVarCopyInits(NewVD, Init);
       }
@@ -4805,7 +4805,7 @@
       if (Init.isInvalid())
         Var->setInvalidDecl();
       else if (Init.get()) {
-        Var->setInit(MaybeCreateExprWithCleanups(Init.takeAs<Expr>()));
+        Var->setInit(MaybeCreateExprWithCleanups(Init.get()));
 
         if (getLangOptions().CPlusPlus && !Var->isInvalidDecl() && 
             Var->hasGlobalStorage() && !Var->isStaticLocal() &&