diff options
author | Anders Carlsson <andersca@mac.com> | 2010-05-01 17:07:40 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2010-05-01 17:07:40 +0000 |
commit | bfe7e91c1297f6f8c033790f64e59f0a1c9f6b3e (patch) | |
tree | 59c263492a5e31d40874f9060e003fa0a1f6b16c /lib/CodeGen | |
parent | 43db20e9550ecf2b215ddb76eaff82a3b466de96 (diff) |
Simplify EmitCopyCtorCall.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102849 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/CGClass.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/lib/CodeGen/CGClass.cpp b/lib/CodeGen/CGClass.cpp index 38b2a67a98..dd8eec10ce 100644 --- a/lib/CodeGen/CGClass.cpp +++ b/lib/CodeGen/CGClass.cpp @@ -356,23 +356,16 @@ CodeGenFunction::GetAddressOfDerivedClass(llvm::Value *Value, /// EmitCopyCtorCall - Emit a call to a copy constructor. static void -EmitCopyCtorCall(CodeGenFunction &CGF, - const CXXConstructorDecl *CopyCtor, CXXCtorType CopyCtorType, - llvm::Value *ThisPtr, llvm::Value *VTT, llvm::Value *Src) { - llvm::Value *Callee = CGF.CGM.GetAddrOfCXXConstructor(CopyCtor, CopyCtorType); +EmitCopyCtorCall(CodeGenFunction &CGF, const CXXConstructorDecl *CopyCtor, + llvm::Value *ThisPtr, llvm::Value *Src) { + llvm::Value *Callee = CGF.CGM.GetAddrOfCXXConstructor(CopyCtor, Ctor_Complete); CallArgList CallArgs; // Push the this ptr. CallArgs.push_back(std::make_pair(RValue::get(ThisPtr), CopyCtor->getThisType(CGF.getContext()))); - - // Push the VTT parameter if necessary. - if (VTT) { - QualType T = CGF.getContext().getPointerType(CGF.getContext().VoidPtrTy); - CallArgs.push_back(std::make_pair(RValue::get(VTT), T)); - } - + // Push the Src ptr. CallArgs.push_back(std::make_pair(RValue::get(Src), CopyCtor->getParamDecl(0)->getType())); @@ -593,7 +586,7 @@ void CodeGenFunction::EmitClassMemberwiseCopy( CXXConstructorDecl *CopyCtor = ClassDecl->getCopyConstructor(getContext(), 0); assert(CopyCtor && "Did not have copy ctor!"); - EmitCopyCtorCall(*this, CopyCtor, Ctor_Complete, Dest, 0, Src); + EmitCopyCtorCall(*this, CopyCtor, Dest, Src); } /// EmitClassCopyAssignment - This routine generates code to copy assign a class |