Fix getFieldAs() to use the parameter instead of 6.

Add missing DIType constructor, needed by DIVariable::getType().

llvm-svn: 60976
This commit is contained in:
Torok Edwin 2008-12-13 08:25:29 +00:00
parent 2880dc8e8c
commit 8898288749
2 changed files with 9 additions and 1 deletions

View File

@ -60,7 +60,7 @@ namespace llvm {
template <typename DescTy>
DescTy getFieldAs(unsigned Elt) const {
return DescTy(getDescriptorField(6).getGV());
return DescTy(getDescriptorField(Elt).getGV());
}
GlobalVariable *getGlobalVariableField(unsigned Elt) const;

View File

@ -100,6 +100,14 @@ DIGlobalVariable::DIGlobalVariable(GlobalVariable *GV)
: DIGlobal(GV, dwarf::DW_TAG_variable) {}
DIBlock::DIBlock(GlobalVariable *GV)
: DIDescriptor(GV, dwarf::DW_TAG_lexical_block) {}
// needed by DIVariable::getType()
DIType::DIType(GlobalVariable *GV) : DIDescriptor(GV) {
if (!GV) return;
unsigned tag = getTag();
if (tag != dwarf::DW_TAG_base_type && !DIDerivedType::isDerivedType(tag) &&
!DICompositeType::isCompositeType(tag))
GV = 0;
}
/// isDerivedType - Return true if the specified tag is legal for
/// DIDerivedType.