Add a BuildCXXTemporaryObjectExpr and use it so default arguments will be instantiated correctly for temporary object expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80206 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index 52aa1a0..a5a0723 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -1774,6 +1774,12 @@
                                          bool Elidable,
                                          Expr **Exprs, unsigned NumExprs);
   
+  OwningExprResult BuildCXXTemporaryObjectExpr(CXXConstructorDecl *Cons, 
+                                               QualType writtenTy, 
+                                               SourceLocation tyBeginLoc, 
+                                               MultiExprArg Args,
+                                               SourceLocation rParenLoc);
+                                               
   /// BuildCXXDefaultArgExpr - Creates a CXXDefaultArgExpr, instantiating
   /// the default expr if needed.
   OwningExprResult BuildCXXDefaultArgExpr(SourceLocation CallLoc,