diff options
author | Anders Carlsson <andersca@mac.com> | 2010-03-28 21:07:49 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2010-03-28 21:07:49 +0000 |
commit | 603d6d12cc4cba1ef219a3d55c698c7c87f87adf (patch) | |
tree | c61551a9c78b3a3c1450b59e6fe5030ab13d26dc /lib/CodeGen/CodeGenFunction.h | |
parent | 4658990ac17046bfe7a30c45c9faea9e617eb479 (diff) |
Reapply r99775 with a fix for a silly bug - we were setting the vtable pointer for all bases, even those without a vtable pointer :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99777 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | lib/CodeGen/CodeGenFunction.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h index 3d7165b0a9..31ab1011b4 100644 --- a/lib/CodeGen/CodeGenFunction.h +++ b/lib/CodeGen/CodeGenFunction.h @@ -519,11 +519,13 @@ public: const CXXRecordDecl *VTableClass); typedef llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBasesSetTy; + void InitializeVTablePointers(BaseSubobject Base, bool BaseIsMorallyVirtual, + bool BaseIsNonVirtualPrimaryBase, + llvm::Constant *VTable, + const CXXRecordDecl *VTableClass, + VisitedVirtualBasesSetTy& VBases); - void InitializeVtablePtrs(BaseSubobject Base, llvm::Constant *VTable, - const CXXRecordDecl *VTableClass); - - void InitializeVtablePtrs(const CXXRecordDecl *ClassDecl); + void InitializeVTablePointers(const CXXRecordDecl *ClassDecl); void SynthesizeCXXCopyConstructor(const FunctionArgList &Args); |