From: Anders Carlsson Date: Fri, 24 Apr 2009 05:16:06 +0000 (+0000) Subject: Create a CXXConstructExpr instead of a CXXTemporaryObjectExpr in InitializeVarWithCon... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=49d44018436761c0cfdda80d609b7dcdf8431064;p=clang Create a CXXConstructExpr instead of a CXXTemporaryObjectExpr in InitializeVarWithConstructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69956 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h index 3544324ae5..b3cb5e25fb 100644 --- a/lib/Sema/Sema.h +++ b/lib/Sema/Sema.h @@ -1449,8 +1449,8 @@ public: SourceLocation *CommaLocs, SourceLocation RParenLoc); - /// InitializeVarWithConstructor - Creates an implicit - /// CXXTemporaryObjectExpr and sets it as the passed in VarDecl initializer. + /// InitializeVarWithConstructor - Creates an CXXConstructExpr + /// and sets it as the initializer for the the passed in VarDecl. void InitializeVarWithConstructor(VarDecl *VD, CXXConstructorDecl *Constructor, QualType DeclInitType, diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 734b6ce3a0..82830ef4ad 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -1780,11 +1780,8 @@ void Sema::InitializeVarWithConstructor(VarDecl *VD, CXXConstructorDecl *Constructor, QualType DeclInitType, Expr **Exprs, unsigned NumExprs) { - Expr *Temp = - new (Context) CXXTemporaryObjectExpr(Constructor, DeclInitType, - SourceLocation(), - Exprs, NumExprs, - SourceLocation()); + Expr *Temp = CXXConstructExpr::Create(Context, VD, DeclInitType, Constructor, + false, Exprs, NumExprs); VD->setInit(Temp); }