diff options
author | Anders Carlsson <andersca@mac.com> | 2010-03-28 19:40:00 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2010-03-28 19:40:00 +0000 |
commit | d103f9f9b401b419e756f8c1849683cd77586067 (patch) | |
tree | f885c96942b39735d31aca8e5357363adf5efff0 /lib/CodeGen/CodeGenFunction.h | |
parent | 02024a9f0d8e6c898de276193af604c42ee41269 (diff) |
Factor vtable pointer setting code out into a separate function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99773 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | lib/CodeGen/CodeGenFunction.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h index 4ecb03dca0..3d7165b0a9 100644 --- a/lib/CodeGen/CodeGenFunction.h +++ b/lib/CodeGen/CodeGenFunction.h @@ -509,11 +509,23 @@ public: void EmitCtorPrologue(const CXXConstructorDecl *CD, CXXCtorType Type); - void InitializeVtablePtrs(const CXXRecordDecl *ClassDecl); + /// InitializeVTablePointer - Initialize the vtable pointer of the given + /// subobject. + /// + /// \param BaseIsMorallyVirtual - Whether the base subobject is a virtual base + /// or a direct or indirect base of a virtual base. + void InitializeVTablePointer(BaseSubobject Base, bool BaseIsMorallyVirtual, + llvm::Constant *VTable, + const CXXRecordDecl *VTableClass); + + typedef llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBasesSetTy; void InitializeVtablePtrs(BaseSubobject Base, llvm::Constant *VTable, const CXXRecordDecl *VTableClass); + void InitializeVtablePtrs(const CXXRecordDecl *ClassDecl); + + void SynthesizeCXXCopyConstructor(const FunctionArgList &Args); void SynthesizeCXXCopyAssignment(const FunctionArgList &Args); |