diff options
author | Anders Carlsson <andersca@mac.com> | 2009-05-03 17:47:16 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-05-03 17:47:16 +0000 |
commit | 31ccf377f4a676eb6c205b47eef435de616d5e2d (patch) | |
tree | bc7a79f24863f33a26b55ec46c1cf26eff46b721 /lib/CodeGen/CGExprAgg.cpp | |
parent | ed4ec8f6d183c247a4528ff846669b02f2326185 (diff) |
Make codegen for constructors work again.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70785 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGExprAgg.cpp')
-rw-r--r-- | lib/CodeGen/CGExprAgg.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp index a74741290b..6fc1988937 100644 --- a/lib/CodeGen/CGExprAgg.cpp +++ b/lib/CodeGen/CGExprAgg.cpp @@ -98,7 +98,7 @@ public: void VisitCXXDefaultArgExpr(CXXDefaultArgExpr *DAE) { Visit(DAE->getExpr()); } - void VisitCXXTemporaryObjectExpr(const CXXTemporaryObjectExpr *E); + void VisitCXXConstructExpr(const CXXConstructExpr *E); void VisitVAArgExpr(VAArgExpr *E); void EmitInitializationToLValue(Expr *E, LValue Address); @@ -294,15 +294,10 @@ void AggExprEmitter::VisitVAArgExpr(VAArgExpr *VE) { } void -AggExprEmitter::VisitCXXTemporaryObjectExpr(const CXXTemporaryObjectExpr *E) { - llvm::Value *This = 0; +AggExprEmitter::VisitCXXConstructExpr(const CXXConstructExpr *E) { + assert(DestPtr && "Must have a dest to emit into!"); - if (DestPtr) - This = DestPtr; - else - This = CGF.CreateTempAlloca(CGF.ConvertType(E->getType()), "tmp"); - - CGF.EmitCXXTemporaryObjectExpr(This, E); + CGF.EmitCXXConstructExpr(DestPtr, E); } void AggExprEmitter::EmitInitializationToLValue(Expr* E, LValue LV) { |