Remove VarDecl from CXXConstructExpr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72633 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp
index 67c6dc3..f13179f 100644
--- a/lib/Sema/SemaDeclCXX.cpp
+++ b/lib/Sema/SemaDeclCXX.cpp
@@ -1800,7 +1800,7 @@
                                         CXXConstructorDecl *Constructor,
                                         QualType DeclInitType, 
                                         Expr **Exprs, unsigned NumExprs) {
-  Expr *Temp = CXXConstructExpr::Create(Context, VD, DeclInitType, Constructor, 
+  Expr *Temp = CXXConstructExpr::Create(Context, DeclInitType, Constructor, 
                                         false, Exprs, NumExprs);
   VD->setInit(Context, Temp);
 }
diff --git a/lib/Sema/SemaExprCXX.cpp b/lib/Sema/SemaExprCXX.cpp
index b6ccb99..e9b68d7 100644
--- a/lib/Sema/SemaExprCXX.cpp
+++ b/lib/Sema/SemaExprCXX.cpp
@@ -208,7 +208,7 @@
       
       exprs.release();
       
-      Expr *E = new (Context) CXXTemporaryObjectExpr(Context, Temp, Constructor, 
+      Expr *E = new (Context) CXXTemporaryObjectExpr(Context, Constructor, 
                                                      Ty, TyBeginLoc, Exprs,
                                                      NumExprs, RParenLoc);
       return MaybeBindToTemporary(E);
@@ -883,9 +883,8 @@
     // FIXME: When can ToType be a reference type?
     assert(!ToType->isReferenceType());
     
-    CXXTempVarDecl *Temp = CXXTempVarDecl::Create(Context, CurContext, ToType);
     // FIXME: Keep track of whether the copy constructor is elidable or not.
-    From = CXXConstructExpr::Create(Context, Temp, ToType, 
+    From = CXXConstructExpr::Create(Context, ToType, 
                                     SCS.CopyConstructor, false, &From, 1);
     return false;
   }
diff --git a/lib/Sema/SemaInit.cpp b/lib/Sema/SemaInit.cpp
index 20c712f..4976bd4 100644
--- a/lib/Sema/SemaInit.cpp
+++ b/lib/Sema/SemaInit.cpp
@@ -174,8 +174,8 @@
         if (!Constructor)
           return true;
         
-        Init = CXXConstructExpr::Create(Context, 0, DeclType, Constructor, 
-                                        false, &Init, 1);
+        Init = CXXConstructExpr::Create(Context, DeclType, Constructor, false, 
+                                        &Init, 1);
         return false;
       }
       
diff --git a/lib/Sema/SemaTemplateInstantiateExpr.cpp b/lib/Sema/SemaTemplateInstantiateExpr.cpp
index c37bf2b..a6b9703 100644
--- a/lib/Sema/SemaTemplateInstantiateExpr.cpp
+++ b/lib/Sema/SemaTemplateInstantiateExpr.cpp
@@ -1007,15 +1007,7 @@
     Args.push_back(ArgInst.takeAs<Expr>());
   }
 
-
-  VarDecl *Var = cast_or_null<VarDecl>(SemaRef.InstantiateDecl(E->getVarDecl(),
-                                                            SemaRef.CurContext,
-                                                               TemplateArgs));
-  if (!Var)
-    return SemaRef.ExprError();
-
-  SemaRef.CurrentInstantiationScope->InstantiatedLocal(E->getVarDecl(), Var);
-  return SemaRef.Owned(CXXConstructExpr::Create(SemaRef.Context, Var, T,
+  return SemaRef.Owned(CXXConstructExpr::Create(SemaRef.Context, T,
                                                 E->getConstructor(), 
                                                 E->isElidable(),
                                                 Args.takeAs<Expr>(),