Synthesized copy constructor now generates code for
copying non-virtual base classes which have non-trivial
constructor. Work in progress.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78436 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index b512d36..383f844 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -369,7 +369,8 @@
void EmitCtorPrologue(const CXXConstructorDecl *CD);
- void EmitCopyCtorBody(const CXXConstructorDecl *CD);
+ void EmitCopyCtorBody(const CXXConstructorDecl *CD,
+ const FunctionArgList &Args);
/// EmitDtorEpilogue - Emit all code that comes at the end of class's
/// destructor. This is to call destructors on members and base classes
@@ -552,6 +553,10 @@
const CXXRecordDecl *ClassDecl,
const CXXRecordDecl *BaseClassDecl);
+ void EmitClassMemberwiseCopy(llvm::Value *DestValue, llvm::Value *SrcValue,
+ const CXXRecordDecl *ClassDecl,
+ const CXXRecordDecl *BaseClassDecl);
+
void EmitCXXConstructorCall(const CXXConstructorDecl *D, CXXCtorType Type,
llvm::Value *This,
CallExpr::const_arg_iterator ArgBeg,