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 | b136e626eadaec8a9e3510790392a1cbb6822c43 (patch) | |
tree | cf6f43a0aa0b4aca25546663d6cf90f6270b3383 /clang/lib/CodeGen/CGClass.cpp | |
parent | aab3b57359292c449143d55a460d0762244dcb40 (diff) | |
download | bcm5719-llvm-b136e626eadaec8a9e3510790392a1cbb6822c43.tar.gz bcm5719-llvm-b136e626eadaec8a9e3510790392a1cbb6822c43.zip |
Simplify EmitCopyCtorCall.
llvm-svn: 102849
Diffstat (limited to 'clang/lib/CodeGen/CGClass.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGClass.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/clang/lib/CodeGen/CGClass.cpp b/clang/lib/CodeGen/CGClass.cpp index 38b2a67a98e..dd8eec10ce5 100644 --- a/clang/lib/CodeGen/CGClass.cpp +++ b/clang/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 |