1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00

Add extra element to composite type. This new element will be used to record c++ class that holds current class's vtable.

llvm-svn: 94586
This commit is contained in:
Devang Patel 2010-01-26 21:14:59 +00:00
parent 325a36c358
commit 9e6549db1d
2 changed files with 10 additions and 4 deletions

View File

@ -298,6 +298,9 @@ namespace llvm {
DIArray getTypeArray() const { return getFieldAs<DIArray>(10); }
unsigned getRunTimeLang() const { return getUnsignedField(11); }
DICompositeType getContainingType() const {
return getFieldAs<DICompositeType>(12);
}
/// Verify - Verify that a composite type descriptor is well formed.
bool Verify() const;
@ -567,7 +570,8 @@ namespace llvm {
uint64_t OffsetInBits, unsigned Flags,
DIType DerivedFrom,
DIArray Elements,
unsigned RunTimeLang = 0);
unsigned RunTimeLang = 0,
MDNode *ContainingType = 0);
/// CreateCompositeType - Create a composite type like array, struct, etc.
DICompositeType CreateCompositeTypeEx(unsigned Tag, DIDescriptor Context,

View File

@ -794,7 +794,8 @@ DICompositeType DIFactory::CreateCompositeType(unsigned Tag,
unsigned Flags,
DIType DerivedFrom,
DIArray Elements,
unsigned RuntimeLang) {
unsigned RuntimeLang,
MDNode *ContainingType) {
Value *Elts[] = {
GetTagConstant(Tag),
@ -808,9 +809,10 @@ DICompositeType DIFactory::CreateCompositeType(unsigned Tag,
ConstantInt::get(Type::getInt32Ty(VMContext), Flags),
DerivedFrom.getNode(),
Elements.getNode(),
ConstantInt::get(Type::getInt32Ty(VMContext), RuntimeLang)
ConstantInt::get(Type::getInt32Ty(VMContext), RuntimeLang),
ContainingType
};
return DICompositeType(MDNode::get(VMContext, &Elts[0], 12));
return DICompositeType(MDNode::get(VMContext, &Elts[0], 13));
}