Improvements to CXXExprWithTemporaries in preparation for fixing a bug with default arguments that have temporaries.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72944 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/ExprCXX.cpp b/lib/AST/ExprCXX.cpp
index 4a15245..8fd66a2 100644
--- a/lib/AST/ExprCXX.cpp
+++ b/lib/AST/ExprCXX.cpp
@@ -305,10 +305,11 @@
 
 CXXExprWithTemporaries::CXXExprWithTemporaries(Expr *subexpr, 
                                                CXXTemporary **temps, 
-                                               unsigned numtemps)
+                                               unsigned numtemps,
+                                               bool destroytemps)
 : Expr(CXXExprWithTemporariesClass, subexpr->getType(),
        subexpr->isTypeDependent(), subexpr->isValueDependent()), 
-  SubExpr(subexpr), Temps(0), NumTemps(numtemps) {
+  SubExpr(subexpr), Temps(0), NumTemps(numtemps), DestroyTemps(destroytemps) {
   if (NumTemps > 0) {
     Temps = new CXXTemporary*[NumTemps];
     for (unsigned i = 0; i < NumTemps; ++i)
@@ -319,8 +320,10 @@
 CXXExprWithTemporaries *CXXExprWithTemporaries::Create(ASTContext &C, 
                                                        Expr *SubExpr,
                                                        CXXTemporary **Temps, 
-                                                       unsigned NumTemps) {
-  return new (C) CXXExprWithTemporaries(SubExpr, Temps, NumTemps);
+                                                       unsigned NumTemps,
+                                                       bool DestroyTemps) {
+  return new (C) CXXExprWithTemporaries(SubExpr, Temps, NumTemps, 
+                                        DestroyTemps);
 }
 
 void CXXExprWithTemporaries::Destroy(ASTContext &C) {