aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CodeGenFunction.h
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2009-08-16 01:46:26 +0000
committerMike Stump <mrs@apple.com>2009-08-16 01:46:26 +0000
commit276b9f1d814f4f6551cc3000590759a34185d6da (patch)
treeeb19d6f382e4d9ab6ef27809dc9f5498ca43df61 /lib/CodeGen/CodeGenFunction.h
parent089c2602ebaccdda271beaabdd32575b354d4d09 (diff)
Cleanups and fixups for calculating the virtual base offsets. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79156 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.h')
-rw-r--r--lib/CodeGen/CodeGenFunction.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index b4469c503b..3110ac00af 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -362,19 +362,26 @@ public:
void FinishFunction(SourceLocation EndLoc=SourceLocation());
llvm::Constant *GenerateRtti(const CXXRecordDecl *RD);
+ void GenerateVBaseOffsets(std::vector<llvm::Constant *> &methods,
+ const CXXRecordDecl *RD,
+ llvm::SmallSet<const CXXRecordDecl *, 32> &SeenVBase,
+ uint64_t Offset,
+ const ASTRecordLayout &Layout, llvm::Type *Ptr8Ty);
void GenerateVcalls(std::vector<llvm::Constant *> &methods,
const CXXRecordDecl *RD, llvm::Type *Ptr8Ty);
void GenerateMethods(std::vector<llvm::Constant *> &methods,
const CXXRecordDecl *RD, llvm::Type *Ptr8Ty);
-void GenerateVtableForVBases(const CXXRecordDecl *RD,
- llvm::Constant *rtti,
- std::vector<llvm::Constant *> &methods,
+ void GenerateVtableForVBases(const CXXRecordDecl *RD,
+ const CXXRecordDecl *Class,
+ llvm::Constant *rtti,
+ std::vector<llvm::Constant *> &methods,
llvm::SmallSet<const CXXRecordDecl *, 32> &IndirectPrimary);
void GenerateVtableForBase(const CXXRecordDecl *RD,
+ bool ForPrimary,
+ int64_t Offset,
const CXXRecordDecl *Class,
llvm::Constant *rtti,
std::vector<llvm::Constant *> &methods,
- bool isPrimary,
bool ForVirtualBase,
llvm::SmallSet<const CXXRecordDecl *, 32> &IndirectPrimary);
llvm::Value *GenerateVtable(const CXXRecordDecl *RD);