mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 02:52:53 +02:00
Be more rigorous about the sizes of forms and attributes.
llvm-svn: 187953
This commit is contained in:
parent
f3c4efa5aa
commit
c16b1aaf3f
@ -110,7 +110,7 @@ namespace llvm {
|
|||||||
return !operator==(Other);
|
return !operator==(Other);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned getTag() const {
|
uint16_t getTag() const {
|
||||||
return getUnsignedField(0) & ~LLVMDebugVersionMask;
|
return getUnsignedField(0) & ~LLVMDebugVersionMask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ DIE *DIE::getCompileUnit() {
|
|||||||
llvm_unreachable("We should not have orphaned DIEs.");
|
llvm_unreachable("We should not have orphaned DIEs.");
|
||||||
}
|
}
|
||||||
|
|
||||||
DIEValue *DIE::findAttribute(unsigned Attribute) {
|
DIEValue *DIE::findAttribute(uint16_t Attribute) {
|
||||||
const SmallVectorImpl<DIEValue *> &Values = getValues();
|
const SmallVectorImpl<DIEValue *> &Values = getValues();
|
||||||
const DIEAbbrev &Abbrevs = getAbbrev();
|
const DIEAbbrev &Abbrevs = getAbbrev();
|
||||||
|
|
||||||
@ -199,7 +199,7 @@ void DIEValue::dump() const {
|
|||||||
|
|
||||||
/// EmitValue - Emit integer of appropriate size.
|
/// EmitValue - Emit integer of appropriate size.
|
||||||
///
|
///
|
||||||
void DIEInteger::EmitValue(AsmPrinter *Asm, unsigned Form) const {
|
void DIEInteger::EmitValue(AsmPrinter *Asm, uint16_t Form) const {
|
||||||
unsigned Size = ~0U;
|
unsigned Size = ~0U;
|
||||||
switch (Form) {
|
switch (Form) {
|
||||||
case dwarf::DW_FORM_flag_present:
|
case dwarf::DW_FORM_flag_present:
|
||||||
@ -231,7 +231,7 @@ void DIEInteger::EmitValue(AsmPrinter *Asm, unsigned Form) const {
|
|||||||
|
|
||||||
/// SizeOf - Determine size of integer value in bytes.
|
/// SizeOf - Determine size of integer value in bytes.
|
||||||
///
|
///
|
||||||
unsigned DIEInteger::SizeOf(AsmPrinter *AP, unsigned Form) const {
|
unsigned DIEInteger::SizeOf(AsmPrinter *AP, uint16_t Form) const {
|
||||||
switch (Form) {
|
switch (Form) {
|
||||||
case dwarf::DW_FORM_flag_present: return 0;
|
case dwarf::DW_FORM_flag_present: return 0;
|
||||||
case dwarf::DW_FORM_flag: // Fall thru
|
case dwarf::DW_FORM_flag: // Fall thru
|
||||||
@ -266,13 +266,13 @@ void DIEInteger::print(raw_ostream &O) const {
|
|||||||
|
|
||||||
/// EmitValue - Emit expression value.
|
/// EmitValue - Emit expression value.
|
||||||
///
|
///
|
||||||
void DIEExpr::EmitValue(AsmPrinter *AP, unsigned Form) const {
|
void DIEExpr::EmitValue(AsmPrinter *AP, uint16_t Form) const {
|
||||||
AP->OutStreamer.EmitValue(Expr, SizeOf(AP, Form));
|
AP->OutStreamer.EmitValue(Expr, SizeOf(AP, Form));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// SizeOf - Determine size of expression value in bytes.
|
/// SizeOf - Determine size of expression value in bytes.
|
||||||
///
|
///
|
||||||
unsigned DIEExpr::SizeOf(AsmPrinter *AP, unsigned Form) const {
|
unsigned DIEExpr::SizeOf(AsmPrinter *AP, uint16_t Form) const {
|
||||||
if (Form == dwarf::DW_FORM_data4) return 4;
|
if (Form == dwarf::DW_FORM_data4) return 4;
|
||||||
if (Form == dwarf::DW_FORM_sec_offset) return 4;
|
if (Form == dwarf::DW_FORM_sec_offset) return 4;
|
||||||
if (Form == dwarf::DW_FORM_strp) return 4;
|
if (Form == dwarf::DW_FORM_strp) return 4;
|
||||||
@ -292,13 +292,13 @@ void DIEExpr::print(raw_ostream &O) const {
|
|||||||
|
|
||||||
/// EmitValue - Emit label value.
|
/// EmitValue - Emit label value.
|
||||||
///
|
///
|
||||||
void DIELabel::EmitValue(AsmPrinter *AP, unsigned Form) const {
|
void DIELabel::EmitValue(AsmPrinter *AP, uint16_t Form) const {
|
||||||
AP->EmitLabelReference(Label, SizeOf(AP, Form));
|
AP->EmitLabelReference(Label, SizeOf(AP, Form));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// SizeOf - Determine size of label value in bytes.
|
/// SizeOf - Determine size of label value in bytes.
|
||||||
///
|
///
|
||||||
unsigned DIELabel::SizeOf(AsmPrinter *AP, unsigned Form) const {
|
unsigned DIELabel::SizeOf(AsmPrinter *AP, uint16_t Form) const {
|
||||||
if (Form == dwarf::DW_FORM_data4) return 4;
|
if (Form == dwarf::DW_FORM_data4) return 4;
|
||||||
if (Form == dwarf::DW_FORM_sec_offset) return 4;
|
if (Form == dwarf::DW_FORM_sec_offset) return 4;
|
||||||
if (Form == dwarf::DW_FORM_strp) return 4;
|
if (Form == dwarf::DW_FORM_strp) return 4;
|
||||||
@ -317,13 +317,13 @@ void DIELabel::print(raw_ostream &O) const {
|
|||||||
|
|
||||||
/// EmitValue - Emit delta value.
|
/// EmitValue - Emit delta value.
|
||||||
///
|
///
|
||||||
void DIEDelta::EmitValue(AsmPrinter *AP, unsigned Form) const {
|
void DIEDelta::EmitValue(AsmPrinter *AP, uint16_t Form) const {
|
||||||
AP->EmitLabelDifference(LabelHi, LabelLo, SizeOf(AP, Form));
|
AP->EmitLabelDifference(LabelHi, LabelLo, SizeOf(AP, Form));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// SizeOf - Determine size of delta value in bytes.
|
/// SizeOf - Determine size of delta value in bytes.
|
||||||
///
|
///
|
||||||
unsigned DIEDelta::SizeOf(AsmPrinter *AP, unsigned Form) const {
|
unsigned DIEDelta::SizeOf(AsmPrinter *AP, uint16_t Form) const {
|
||||||
if (Form == dwarf::DW_FORM_data4) return 4;
|
if (Form == dwarf::DW_FORM_data4) return 4;
|
||||||
if (Form == dwarf::DW_FORM_strp) return 4;
|
if (Form == dwarf::DW_FORM_strp) return 4;
|
||||||
return AP->getDataLayout().getPointerSize();
|
return AP->getDataLayout().getPointerSize();
|
||||||
@ -341,13 +341,13 @@ void DIEDelta::print(raw_ostream &O) const {
|
|||||||
|
|
||||||
/// EmitValue - Emit string value.
|
/// EmitValue - Emit string value.
|
||||||
///
|
///
|
||||||
void DIEString::EmitValue(AsmPrinter *AP, unsigned Form) const {
|
void DIEString::EmitValue(AsmPrinter *AP, uint16_t Form) const {
|
||||||
Access->EmitValue(AP, Form);
|
Access->EmitValue(AP, Form);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// SizeOf - Determine size of delta value in bytes.
|
/// SizeOf - Determine size of delta value in bytes.
|
||||||
///
|
///
|
||||||
unsigned DIEString::SizeOf(AsmPrinter *AP, unsigned Form) const {
|
unsigned DIEString::SizeOf(AsmPrinter *AP, uint16_t Form) const {
|
||||||
return Access->SizeOf(AP, Form);
|
return Access->SizeOf(AP, Form);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,7 +364,7 @@ void DIEString::print(raw_ostream &O) const {
|
|||||||
|
|
||||||
/// EmitValue - Emit debug information entry offset.
|
/// EmitValue - Emit debug information entry offset.
|
||||||
///
|
///
|
||||||
void DIEEntry::EmitValue(AsmPrinter *AP, unsigned Form) const {
|
void DIEEntry::EmitValue(AsmPrinter *AP, uint16_t Form) const {
|
||||||
AP->EmitInt32(Entry->getOffset());
|
AP->EmitInt32(Entry->getOffset());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -402,7 +402,7 @@ unsigned DIEBlock::ComputeSize(AsmPrinter *AP) {
|
|||||||
|
|
||||||
/// EmitValue - Emit block data.
|
/// EmitValue - Emit block data.
|
||||||
///
|
///
|
||||||
void DIEBlock::EmitValue(AsmPrinter *Asm, unsigned Form) const {
|
void DIEBlock::EmitValue(AsmPrinter *Asm, uint16_t Form) const {
|
||||||
switch (Form) {
|
switch (Form) {
|
||||||
default: llvm_unreachable("Improper form for block");
|
default: llvm_unreachable("Improper form for block");
|
||||||
case dwarf::DW_FORM_block1: Asm->EmitInt8(Size); break;
|
case dwarf::DW_FORM_block1: Asm->EmitInt8(Size); break;
|
||||||
@ -418,7 +418,7 @@ void DIEBlock::EmitValue(AsmPrinter *Asm, unsigned Form) const {
|
|||||||
|
|
||||||
/// SizeOf - Determine size of block data in bytes.
|
/// SizeOf - Determine size of block data in bytes.
|
||||||
///
|
///
|
||||||
unsigned DIEBlock::SizeOf(AsmPrinter *AP, unsigned Form) const {
|
unsigned DIEBlock::SizeOf(AsmPrinter *AP, uint16_t Form) const {
|
||||||
switch (Form) {
|
switch (Form) {
|
||||||
case dwarf::DW_FORM_block1: return Size + sizeof(int8_t);
|
case dwarf::DW_FORM_block1: return Size + sizeof(int8_t);
|
||||||
case dwarf::DW_FORM_block2: return Size + sizeof(int16_t);
|
case dwarf::DW_FORM_block2: return Size + sizeof(int16_t);
|
||||||
|
@ -143,7 +143,7 @@ namespace llvm {
|
|||||||
// Accessors.
|
// Accessors.
|
||||||
DIEAbbrev &getAbbrev() { return Abbrev; }
|
DIEAbbrev &getAbbrev() { return Abbrev; }
|
||||||
unsigned getAbbrevNumber() const { return Abbrev.getNumber(); }
|
unsigned getAbbrevNumber() const { return Abbrev.getNumber(); }
|
||||||
unsigned getTag() const { return Abbrev.getTag(); }
|
uint16_t getTag() const { return Abbrev.getTag(); }
|
||||||
unsigned getOffset() const { return Offset; }
|
unsigned getOffset() const { return Offset; }
|
||||||
unsigned getSize() const { return Size; }
|
unsigned getSize() const { return Size; }
|
||||||
const std::vector<DIE *> &getChildren() const { return Children; }
|
const std::vector<DIE *> &getChildren() const { return Children; }
|
||||||
@ -152,13 +152,13 @@ namespace llvm {
|
|||||||
/// Climb up the parent chain to get the compile unit DIE this DIE belongs
|
/// Climb up the parent chain to get the compile unit DIE this DIE belongs
|
||||||
/// to.
|
/// to.
|
||||||
DIE *getCompileUnit();
|
DIE *getCompileUnit();
|
||||||
void setTag(unsigned Tag) { Abbrev.setTag(Tag); }
|
void setTag(uint16_t Tag) { Abbrev.setTag(Tag); }
|
||||||
void setOffset(unsigned O) { Offset = O; }
|
void setOffset(unsigned O) { Offset = O; }
|
||||||
void setSize(unsigned S) { Size = S; }
|
void setSize(unsigned S) { Size = S; }
|
||||||
|
|
||||||
/// addValue - Add a value and attributes to a DIE.
|
/// addValue - Add a value and attributes to a DIE.
|
||||||
///
|
///
|
||||||
void addValue(unsigned Attribute, unsigned Form, DIEValue *Value) {
|
void addValue(uint16_t Attribute, uint16_t Form, DIEValue *Value) {
|
||||||
Abbrev.AddAttribute(Attribute, Form);
|
Abbrev.AddAttribute(Attribute, Form);
|
||||||
Values.push_back(Value);
|
Values.push_back(Value);
|
||||||
}
|
}
|
||||||
@ -177,7 +177,7 @@ namespace llvm {
|
|||||||
|
|
||||||
/// findAttribute - Find a value in the DIE with the attribute given, returns NULL
|
/// findAttribute - Find a value in the DIE with the attribute given, returns NULL
|
||||||
/// if no such attribute exists.
|
/// if no such attribute exists.
|
||||||
DIEValue *findAttribute(unsigned Attribute);
|
DIEValue *findAttribute(uint16_t Attribute);
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
void print(raw_ostream &O, unsigned IndentCount = 0) const;
|
void print(raw_ostream &O, unsigned IndentCount = 0) const;
|
||||||
@ -213,11 +213,11 @@ namespace llvm {
|
|||||||
|
|
||||||
/// EmitValue - Emit value via the Dwarf writer.
|
/// EmitValue - Emit value via the Dwarf writer.
|
||||||
///
|
///
|
||||||
virtual void EmitValue(AsmPrinter *AP, unsigned Form) const = 0;
|
virtual void EmitValue(AsmPrinter *AP, uint16_t Form) const = 0;
|
||||||
|
|
||||||
/// SizeOf - Return the size of a value in bytes.
|
/// SizeOf - Return the size of a value in bytes.
|
||||||
///
|
///
|
||||||
virtual unsigned SizeOf(AsmPrinter *AP, unsigned Form) const = 0;
|
virtual unsigned SizeOf(AsmPrinter *AP, uint16_t Form) const = 0;
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
virtual void print(raw_ostream &O) const = 0;
|
virtual void print(raw_ostream &O) const = 0;
|
||||||
@ -235,7 +235,7 @@ namespace llvm {
|
|||||||
|
|
||||||
/// BestForm - Choose the best form for integer.
|
/// BestForm - Choose the best form for integer.
|
||||||
///
|
///
|
||||||
static unsigned BestForm(bool IsSigned, uint64_t Int) {
|
static uint16_t BestForm(bool IsSigned, uint64_t Int) {
|
||||||
if (IsSigned) {
|
if (IsSigned) {
|
||||||
const int64_t SignedInt = Int;
|
const int64_t SignedInt = Int;
|
||||||
if ((char)Int == SignedInt) return dwarf::DW_FORM_data1;
|
if ((char)Int == SignedInt) return dwarf::DW_FORM_data1;
|
||||||
@ -251,13 +251,13 @@ namespace llvm {
|
|||||||
|
|
||||||
/// EmitValue - Emit integer of appropriate size.
|
/// EmitValue - Emit integer of appropriate size.
|
||||||
///
|
///
|
||||||
virtual void EmitValue(AsmPrinter *AP, unsigned Form) const;
|
virtual void EmitValue(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
uint64_t getValue() const { return Integer; }
|
uint64_t getValue() const { return Integer; }
|
||||||
|
|
||||||
/// SizeOf - Determine size of integer value in bytes.
|
/// SizeOf - Determine size of integer value in bytes.
|
||||||
///
|
///
|
||||||
virtual unsigned SizeOf(AsmPrinter *AP, unsigned Form) const;
|
virtual unsigned SizeOf(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
// Implement isa/cast/dyncast.
|
// Implement isa/cast/dyncast.
|
||||||
static bool classof(const DIEValue *I) { return I->getType() == isInteger; }
|
static bool classof(const DIEValue *I) { return I->getType() == isInteger; }
|
||||||
@ -277,7 +277,7 @@ namespace llvm {
|
|||||||
|
|
||||||
/// EmitValue - Emit expression value.
|
/// EmitValue - Emit expression value.
|
||||||
///
|
///
|
||||||
virtual void EmitValue(AsmPrinter *AP, unsigned Form) const;
|
virtual void EmitValue(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
/// getValue - Get MCExpr.
|
/// getValue - Get MCExpr.
|
||||||
///
|
///
|
||||||
@ -285,7 +285,7 @@ namespace llvm {
|
|||||||
|
|
||||||
/// SizeOf - Determine size of expression value in bytes.
|
/// SizeOf - Determine size of expression value in bytes.
|
||||||
///
|
///
|
||||||
virtual unsigned SizeOf(AsmPrinter *AP, unsigned Form) const;
|
virtual unsigned SizeOf(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
// Implement isa/cast/dyncast.
|
// Implement isa/cast/dyncast.
|
||||||
static bool classof(const DIEValue *E) { return E->getType() == isExpr; }
|
static bool classof(const DIEValue *E) { return E->getType() == isExpr; }
|
||||||
@ -305,7 +305,7 @@ namespace llvm {
|
|||||||
|
|
||||||
/// EmitValue - Emit label value.
|
/// EmitValue - Emit label value.
|
||||||
///
|
///
|
||||||
virtual void EmitValue(AsmPrinter *AP, unsigned Form) const;
|
virtual void EmitValue(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
/// getValue - Get MCSymbol.
|
/// getValue - Get MCSymbol.
|
||||||
///
|
///
|
||||||
@ -313,7 +313,7 @@ namespace llvm {
|
|||||||
|
|
||||||
/// SizeOf - Determine size of label value in bytes.
|
/// SizeOf - Determine size of label value in bytes.
|
||||||
///
|
///
|
||||||
virtual unsigned SizeOf(AsmPrinter *AP, unsigned Form) const;
|
virtual unsigned SizeOf(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
// Implement isa/cast/dyncast.
|
// Implement isa/cast/dyncast.
|
||||||
static bool classof(const DIEValue *L) { return L->getType() == isLabel; }
|
static bool classof(const DIEValue *L) { return L->getType() == isLabel; }
|
||||||
@ -335,11 +335,11 @@ namespace llvm {
|
|||||||
|
|
||||||
/// EmitValue - Emit delta value.
|
/// EmitValue - Emit delta value.
|
||||||
///
|
///
|
||||||
virtual void EmitValue(AsmPrinter *AP, unsigned Form) const;
|
virtual void EmitValue(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
/// SizeOf - Determine size of delta value in bytes.
|
/// SizeOf - Determine size of delta value in bytes.
|
||||||
///
|
///
|
||||||
virtual unsigned SizeOf(AsmPrinter *AP, unsigned Form) const;
|
virtual unsigned SizeOf(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
// Implement isa/cast/dyncast.
|
// Implement isa/cast/dyncast.
|
||||||
static bool classof(const DIEValue *D) { return D->getType() == isDelta; }
|
static bool classof(const DIEValue *D) { return D->getType() == isDelta; }
|
||||||
@ -365,11 +365,11 @@ namespace llvm {
|
|||||||
|
|
||||||
/// EmitValue - Emit delta value.
|
/// EmitValue - Emit delta value.
|
||||||
///
|
///
|
||||||
virtual void EmitValue(AsmPrinter *AP, unsigned Form) const;
|
virtual void EmitValue(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
/// SizeOf - Determine size of delta value in bytes.
|
/// SizeOf - Determine size of delta value in bytes.
|
||||||
///
|
///
|
||||||
virtual unsigned SizeOf(AsmPrinter *AP, unsigned Form) const;
|
virtual unsigned SizeOf(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
// Implement isa/cast/dyncast.
|
// Implement isa/cast/dyncast.
|
||||||
static bool classof(const DIEValue *D) { return D->getType() == isString; }
|
static bool classof(const DIEValue *D) { return D->getType() == isString; }
|
||||||
@ -394,13 +394,13 @@ namespace llvm {
|
|||||||
|
|
||||||
/// EmitValue - Emit debug information entry offset.
|
/// EmitValue - Emit debug information entry offset.
|
||||||
///
|
///
|
||||||
virtual void EmitValue(AsmPrinter *AP, unsigned Form) const;
|
virtual void EmitValue(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
/// SizeOf - Determine size of debug information entry in bytes.
|
/// SizeOf - Determine size of debug information entry in bytes.
|
||||||
///
|
///
|
||||||
virtual unsigned SizeOf(AsmPrinter *AP, unsigned Form) const {
|
virtual unsigned SizeOf(AsmPrinter *AP, uint16_t Form) const {
|
||||||
return Form == dwarf::DW_FORM_ref_addr ? getRefAddrSize(AP) :
|
return Form == dwarf::DW_FORM_ref_addr ? getRefAddrSize(AP)
|
||||||
sizeof(int32_t);
|
: sizeof(int32_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns size of a ref_addr entry.
|
/// Returns size of a ref_addr entry.
|
||||||
@ -430,7 +430,7 @@ namespace llvm {
|
|||||||
|
|
||||||
/// BestForm - Choose the best form for data.
|
/// BestForm - Choose the best form for data.
|
||||||
///
|
///
|
||||||
unsigned BestForm() const {
|
uint16_t BestForm() const {
|
||||||
if ((unsigned char)Size == Size) return dwarf::DW_FORM_block1;
|
if ((unsigned char)Size == Size) return dwarf::DW_FORM_block1;
|
||||||
if ((unsigned short)Size == Size) return dwarf::DW_FORM_block2;
|
if ((unsigned short)Size == Size) return dwarf::DW_FORM_block2;
|
||||||
if ((unsigned int)Size == Size) return dwarf::DW_FORM_block4;
|
if ((unsigned int)Size == Size) return dwarf::DW_FORM_block4;
|
||||||
@ -439,11 +439,11 @@ namespace llvm {
|
|||||||
|
|
||||||
/// EmitValue - Emit block data.
|
/// EmitValue - Emit block data.
|
||||||
///
|
///
|
||||||
virtual void EmitValue(AsmPrinter *AP, unsigned Form) const;
|
virtual void EmitValue(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
/// SizeOf - Determine size of block data in bytes.
|
/// SizeOf - Determine size of block data in bytes.
|
||||||
///
|
///
|
||||||
virtual unsigned SizeOf(AsmPrinter *AP, unsigned Form) const;
|
virtual unsigned SizeOf(AsmPrinter *AP, uint16_t Form) const;
|
||||||
|
|
||||||
// Implement isa/cast/dyncast.
|
// Implement isa/cast/dyncast.
|
||||||
static bool classof(const DIEValue *E) { return E->getType() == isBlock; }
|
static bool classof(const DIEValue *E) { return E->getType() == isBlock; }
|
||||||
|
@ -99,7 +99,7 @@ int64_t CompileUnit::getDefaultLowerBound() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// addFlag - Add a flag that is true.
|
/// addFlag - Add a flag that is true.
|
||||||
void CompileUnit::addFlag(DIE *Die, unsigned Attribute) {
|
void CompileUnit::addFlag(DIE *Die, uint16_t Attribute) {
|
||||||
if (!DD->useDarwinGDBCompat())
|
if (!DD->useDarwinGDBCompat())
|
||||||
Die->addValue(Attribute, dwarf::DW_FORM_flag_present,
|
Die->addValue(Attribute, dwarf::DW_FORM_flag_present,
|
||||||
DIEIntegerOne);
|
DIEIntegerOne);
|
||||||
@ -109,8 +109,8 @@ void CompileUnit::addFlag(DIE *Die, unsigned Attribute) {
|
|||||||
|
|
||||||
/// addUInt - Add an unsigned integer attribute data and value.
|
/// addUInt - Add an unsigned integer attribute data and value.
|
||||||
///
|
///
|
||||||
void CompileUnit::addUInt(DIE *Die, unsigned Attribute,
|
void CompileUnit::addUInt(DIE *Die, uint16_t Attribute,
|
||||||
unsigned Form, uint64_t Integer) {
|
uint16_t Form, uint64_t Integer) {
|
||||||
if (!Form) Form = DIEInteger::BestForm(false, Integer);
|
if (!Form) Form = DIEInteger::BestForm(false, Integer);
|
||||||
DIEValue *Value = Integer == 1 ?
|
DIEValue *Value = Integer == 1 ?
|
||||||
DIEIntegerOne : new (DIEValueAllocator) DIEInteger(Integer);
|
DIEIntegerOne : new (DIEValueAllocator) DIEInteger(Integer);
|
||||||
@ -119,8 +119,8 @@ void CompileUnit::addUInt(DIE *Die, unsigned Attribute,
|
|||||||
|
|
||||||
/// addSInt - Add an signed integer attribute data and value.
|
/// addSInt - Add an signed integer attribute data and value.
|
||||||
///
|
///
|
||||||
void CompileUnit::addSInt(DIE *Die, unsigned Attribute,
|
void CompileUnit::addSInt(DIE *Die, uint16_t Attribute,
|
||||||
unsigned Form, int64_t Integer) {
|
uint16_t Form, int64_t Integer) {
|
||||||
if (!Form) Form = DIEInteger::BestForm(true, Integer);
|
if (!Form) Form = DIEInteger::BestForm(true, Integer);
|
||||||
DIEValue *Value = new (DIEValueAllocator) DIEInteger(Integer);
|
DIEValue *Value = new (DIEValueAllocator) DIEInteger(Integer);
|
||||||
Die->addValue(Attribute, Form, Value);
|
Die->addValue(Attribute, Form, Value);
|
||||||
@ -131,9 +131,9 @@ void CompileUnit::addSInt(DIE *Die, unsigned Attribute,
|
|||||||
/// more predictable sizes. In the case of split dwarf we emit an index
|
/// more predictable sizes. In the case of split dwarf we emit an index
|
||||||
/// into another table which gets us the static offset into the string
|
/// into another table which gets us the static offset into the string
|
||||||
/// table.
|
/// table.
|
||||||
void CompileUnit::addString(DIE *Die, unsigned Attribute, StringRef String) {
|
void CompileUnit::addString(DIE *Die, uint16_t Attribute, StringRef String) {
|
||||||
DIEValue *Value;
|
DIEValue *Value;
|
||||||
unsigned Form;
|
uint16_t Form;
|
||||||
if (!DD->useSplitDwarf()) {
|
if (!DD->useSplitDwarf()) {
|
||||||
MCSymbol *Symb = DU->getStringPoolEntry(String);
|
MCSymbol *Symb = DU->getStringPoolEntry(String);
|
||||||
if (Asm->needsRelocationsForDwarfStringPool())
|
if (Asm->needsRelocationsForDwarfStringPool())
|
||||||
@ -154,7 +154,7 @@ void CompileUnit::addString(DIE *Die, unsigned Attribute, StringRef String) {
|
|||||||
|
|
||||||
/// addLocalString - Add a string attribute data and value. This is guaranteed
|
/// addLocalString - Add a string attribute data and value. This is guaranteed
|
||||||
/// to be in the local string pool instead of indirected.
|
/// to be in the local string pool instead of indirected.
|
||||||
void CompileUnit::addLocalString(DIE *Die, unsigned Attribute,
|
void CompileUnit::addLocalString(DIE *Die, uint16_t Attribute,
|
||||||
StringRef String) {
|
StringRef String) {
|
||||||
MCSymbol *Symb = DU->getStringPoolEntry(String);
|
MCSymbol *Symb = DU->getStringPoolEntry(String);
|
||||||
DIEValue *Value;
|
DIEValue *Value;
|
||||||
@ -169,7 +169,7 @@ void CompileUnit::addLocalString(DIE *Die, unsigned Attribute,
|
|||||||
|
|
||||||
/// addExpr - Add a Dwarf expression attribute data and value.
|
/// addExpr - Add a Dwarf expression attribute data and value.
|
||||||
///
|
///
|
||||||
void CompileUnit::addExpr(DIE *Die, unsigned Attribute, unsigned Form,
|
void CompileUnit::addExpr(DIE *Die, uint16_t Attribute, uint16_t Form,
|
||||||
const MCExpr *Expr) {
|
const MCExpr *Expr) {
|
||||||
DIEValue *Value = new (DIEValueAllocator) DIEExpr(Expr);
|
DIEValue *Value = new (DIEValueAllocator) DIEExpr(Expr);
|
||||||
Die->addValue(Attribute, Form, Value);
|
Die->addValue(Attribute, Form, Value);
|
||||||
@ -177,7 +177,7 @@ void CompileUnit::addExpr(DIE *Die, unsigned Attribute, unsigned Form,
|
|||||||
|
|
||||||
/// addLabel - Add a Dwarf label attribute data and value.
|
/// addLabel - Add a Dwarf label attribute data and value.
|
||||||
///
|
///
|
||||||
void CompileUnit::addLabel(DIE *Die, unsigned Attribute, unsigned Form,
|
void CompileUnit::addLabel(DIE *Die, uint16_t Attribute, uint16_t Form,
|
||||||
const MCSymbol *Label) {
|
const MCSymbol *Label) {
|
||||||
DIEValue *Value = new (DIEValueAllocator) DIELabel(Label);
|
DIEValue *Value = new (DIEValueAllocator) DIELabel(Label);
|
||||||
Die->addValue(Attribute, Form, Value);
|
Die->addValue(Attribute, Form, Value);
|
||||||
@ -186,7 +186,7 @@ void CompileUnit::addLabel(DIE *Die, unsigned Attribute, unsigned Form,
|
|||||||
/// addLabelAddress - Add a dwarf label attribute data and value using
|
/// addLabelAddress - Add a dwarf label attribute data and value using
|
||||||
/// DW_FORM_addr or DW_FORM_GNU_addr_index.
|
/// DW_FORM_addr or DW_FORM_GNU_addr_index.
|
||||||
///
|
///
|
||||||
void CompileUnit::addLabelAddress(DIE *Die, unsigned Attribute,
|
void CompileUnit::addLabelAddress(DIE *Die, uint16_t Attribute,
|
||||||
MCSymbol *Label) {
|
MCSymbol *Label) {
|
||||||
if (!DD->useSplitDwarf()) {
|
if (!DD->useSplitDwarf()) {
|
||||||
if (Label != NULL) {
|
if (Label != NULL) {
|
||||||
@ -218,7 +218,7 @@ void CompileUnit::addOpAddress(DIE *Die, const MCSymbol *Sym) {
|
|||||||
|
|
||||||
/// addDelta - Add a label delta attribute data and value.
|
/// addDelta - Add a label delta attribute data and value.
|
||||||
///
|
///
|
||||||
void CompileUnit::addDelta(DIE *Die, unsigned Attribute, unsigned Form,
|
void CompileUnit::addDelta(DIE *Die, uint16_t Attribute, uint16_t Form,
|
||||||
const MCSymbol *Hi, const MCSymbol *Lo) {
|
const MCSymbol *Hi, const MCSymbol *Lo) {
|
||||||
DIEValue *Value = new (DIEValueAllocator) DIEDelta(Hi, Lo);
|
DIEValue *Value = new (DIEValueAllocator) DIEDelta(Hi, Lo);
|
||||||
Die->addValue(Attribute, Form, Value);
|
Die->addValue(Attribute, Form, Value);
|
||||||
@ -226,14 +226,14 @@ void CompileUnit::addDelta(DIE *Die, unsigned Attribute, unsigned Form,
|
|||||||
|
|
||||||
/// addDIEEntry - Add a DIE attribute data and value.
|
/// addDIEEntry - Add a DIE attribute data and value.
|
||||||
///
|
///
|
||||||
void CompileUnit::addDIEEntry(DIE *Die, unsigned Attribute, unsigned Form,
|
void CompileUnit::addDIEEntry(DIE *Die, uint16_t Attribute, uint16_t Form,
|
||||||
DIE *Entry) {
|
DIE *Entry) {
|
||||||
Die->addValue(Attribute, Form, createDIEEntry(Entry));
|
Die->addValue(Attribute, Form, createDIEEntry(Entry));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// addBlock - Add block data.
|
/// addBlock - Add block data.
|
||||||
///
|
///
|
||||||
void CompileUnit::addBlock(DIE *Die, unsigned Attribute, unsigned Form,
|
void CompileUnit::addBlock(DIE *Die, uint16_t Attribute, uint16_t Form,
|
||||||
DIEBlock *Block) {
|
DIEBlock *Block) {
|
||||||
Block->ComputeSize(Asm);
|
Block->ComputeSize(Asm);
|
||||||
DIEBlocks.push_back(Block); // Memoize so we can call the destructor later on.
|
DIEBlocks.push_back(Block); // Memoize so we can call the destructor later on.
|
||||||
@ -393,7 +393,7 @@ void CompileUnit::addRegisterOffset(DIE *TheDie, unsigned Reg,
|
|||||||
|
|
||||||
/// addAddress - Add an address attribute to a die based on the location
|
/// addAddress - Add an address attribute to a die based on the location
|
||||||
/// provided.
|
/// provided.
|
||||||
void CompileUnit::addAddress(DIE *Die, unsigned Attribute,
|
void CompileUnit::addAddress(DIE *Die, uint16_t Attribute,
|
||||||
const MachineLocation &Location, bool Indirect) {
|
const MachineLocation &Location, bool Indirect) {
|
||||||
DIEBlock *Block = new (DIEValueAllocator) DIEBlock();
|
DIEBlock *Block = new (DIEValueAllocator) DIEBlock();
|
||||||
|
|
||||||
@ -416,7 +416,7 @@ void CompileUnit::addAddress(DIE *Die, unsigned Attribute,
|
|||||||
/// the starting location. Add the DWARF information to the die.
|
/// the starting location. Add the DWARF information to the die.
|
||||||
///
|
///
|
||||||
void CompileUnit::addComplexAddress(const DbgVariable &DV, DIE *Die,
|
void CompileUnit::addComplexAddress(const DbgVariable &DV, DIE *Die,
|
||||||
unsigned Attribute,
|
uint16_t Attribute,
|
||||||
const MachineLocation &Location) {
|
const MachineLocation &Location) {
|
||||||
DIEBlock *Block = new (DIEValueAllocator) DIEBlock();
|
DIEBlock *Block = new (DIEValueAllocator) DIEBlock();
|
||||||
unsigned N = DV.getNumAddrElements();
|
unsigned N = DV.getNumAddrElements();
|
||||||
@ -509,11 +509,11 @@ void CompileUnit::addComplexAddress(const DbgVariable &DV, DIE *Die,
|
|||||||
/// more information, read large comment just above here.
|
/// more information, read large comment just above here.
|
||||||
///
|
///
|
||||||
void CompileUnit::addBlockByrefAddress(const DbgVariable &DV, DIE *Die,
|
void CompileUnit::addBlockByrefAddress(const DbgVariable &DV, DIE *Die,
|
||||||
unsigned Attribute,
|
uint16_t Attribute,
|
||||||
const MachineLocation &Location) {
|
const MachineLocation &Location) {
|
||||||
DIType Ty = DV.getType();
|
DIType Ty = DV.getType();
|
||||||
DIType TmpTy = Ty;
|
DIType TmpTy = Ty;
|
||||||
unsigned Tag = Ty.getTag();
|
uint16_t Tag = Ty.getTag();
|
||||||
bool isPointer = false;
|
bool isPointer = false;
|
||||||
|
|
||||||
StringRef varName = DV.getName();
|
StringRef varName = DV.getName();
|
||||||
@ -609,7 +609,7 @@ void CompileUnit::addConstantValue(DIE *Die, const MachineOperand &MO,
|
|||||||
DIEBlock *Block = new (DIEValueAllocator) DIEBlock();
|
DIEBlock *Block = new (DIEValueAllocator) DIEBlock();
|
||||||
int SizeInBits = -1;
|
int SizeInBits = -1;
|
||||||
bool SignedConstant = isTypeSigned(Ty, &SizeInBits);
|
bool SignedConstant = isTypeSigned(Ty, &SizeInBits);
|
||||||
unsigned Form = SignedConstant ? dwarf::DW_FORM_sdata : dwarf::DW_FORM_udata;
|
uint16_t Form = SignedConstant ? dwarf::DW_FORM_sdata : dwarf::DW_FORM_udata;
|
||||||
switch (SizeInBits) {
|
switch (SizeInBits) {
|
||||||
case 8: Form = dwarf::DW_FORM_data1; break;
|
case 8: Form = dwarf::DW_FORM_data1; break;
|
||||||
case 16: Form = dwarf::DW_FORM_data2; break;
|
case 16: Form = dwarf::DW_FORM_data2; break;
|
||||||
@ -775,7 +775,7 @@ DIE *CompileUnit::getOrCreateTypeDIE(const MDNode *TyNode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// addType - Add a new type attribute to the specified entity.
|
/// addType - Add a new type attribute to the specified entity.
|
||||||
void CompileUnit::addType(DIE *Entity, DIType Ty, unsigned Attribute) {
|
void CompileUnit::addType(DIE *Entity, DIType Ty, uint16_t Attribute) {
|
||||||
if (!Ty.isType())
|
if (!Ty.isType())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -814,7 +814,7 @@ void CompileUnit::addGlobalType(DIType Ty) {
|
|||||||
/// addPubTypes - Add type for pubtypes section.
|
/// addPubTypes - Add type for pubtypes section.
|
||||||
void CompileUnit::addPubTypes(DISubprogram SP) {
|
void CompileUnit::addPubTypes(DISubprogram SP) {
|
||||||
DICompositeType SPTy = SP.getType();
|
DICompositeType SPTy = SP.getType();
|
||||||
unsigned SPTag = SPTy.getTag();
|
uint16_t SPTag = SPTy.getTag();
|
||||||
if (SPTag != dwarf::DW_TAG_subroutine_type)
|
if (SPTag != dwarf::DW_TAG_subroutine_type)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -854,7 +854,7 @@ void CompileUnit::constructTypeDIE(DIE &Buffer, DIDerivedType DTy) {
|
|||||||
// Get core information.
|
// Get core information.
|
||||||
StringRef Name = DTy.getName();
|
StringRef Name = DTy.getName();
|
||||||
uint64_t Size = DTy.getSizeInBits() >> 3;
|
uint64_t Size = DTy.getSizeInBits() >> 3;
|
||||||
unsigned Tag = DTy.getTag();
|
uint16_t Tag = DTy.getTag();
|
||||||
|
|
||||||
// FIXME - Workaround for templates.
|
// FIXME - Workaround for templates.
|
||||||
if (Tag == dwarf::DW_TAG_inheritance) Tag = dwarf::DW_TAG_reference_type;
|
if (Tag == dwarf::DW_TAG_inheritance) Tag = dwarf::DW_TAG_reference_type;
|
||||||
@ -896,7 +896,7 @@ static bool isTypeUnitScoped(DIType Ty) {
|
|||||||
|
|
||||||
/// Return true if the type should be split out into a type unit.
|
/// Return true if the type should be split out into a type unit.
|
||||||
static bool shouldCreateTypeUnit(DICompositeType CTy) {
|
static bool shouldCreateTypeUnit(DICompositeType CTy) {
|
||||||
unsigned Tag = CTy.getTag();
|
uint16_t Tag = CTy.getTag();
|
||||||
|
|
||||||
switch (Tag) {
|
switch (Tag) {
|
||||||
case dwarf::DW_TAG_structure_type:
|
case dwarf::DW_TAG_structure_type:
|
||||||
@ -920,7 +920,7 @@ void CompileUnit::constructTypeDIE(DIE &Buffer, DICompositeType CTy) {
|
|||||||
StringRef Name = CTy.getName();
|
StringRef Name = CTy.getName();
|
||||||
|
|
||||||
uint64_t Size = CTy.getSizeInBits() >> 3;
|
uint64_t Size = CTy.getSizeInBits() >> 3;
|
||||||
unsigned Tag = CTy.getTag();
|
uint16_t Tag = CTy.getTag();
|
||||||
Buffer.setTag(Tag);
|
Buffer.setTag(Tag);
|
||||||
|
|
||||||
switch (Tag) {
|
switch (Tag) {
|
||||||
@ -1559,7 +1559,7 @@ DIE *CompileUnit::constructVariableDIE(DbgVariable *DV,
|
|||||||
StringRef Name = DV->getName();
|
StringRef Name = DV->getName();
|
||||||
|
|
||||||
// Translate tag to proper Dwarf tag.
|
// Translate tag to proper Dwarf tag.
|
||||||
unsigned Tag = DV->getTag();
|
uint16_t Tag = DV->getTag();
|
||||||
|
|
||||||
// Define variable debug information entry.
|
// Define variable debug information entry.
|
||||||
DIE *VariableDie = new DIE(Tag);
|
DIE *VariableDie = new DIE(Tag);
|
||||||
|
@ -196,38 +196,38 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// addFlag - Add a flag that is true to the DIE.
|
/// addFlag - Add a flag that is true to the DIE.
|
||||||
void addFlag(DIE *Die, unsigned Attribute);
|
void addFlag(DIE *Die, uint16_t Attribute);
|
||||||
|
|
||||||
/// addUInt - Add an unsigned integer attribute data and value.
|
/// addUInt - Add an unsigned integer attribute data and value.
|
||||||
///
|
///
|
||||||
void addUInt(DIE *Die, unsigned Attribute, unsigned Form, uint64_t Integer);
|
void addUInt(DIE *Die, uint16_t Attribute, uint16_t Form, uint64_t Integer);
|
||||||
|
|
||||||
/// addSInt - Add an signed integer attribute data and value.
|
/// addSInt - Add an signed integer attribute data and value.
|
||||||
///
|
///
|
||||||
void addSInt(DIE *Die, unsigned Attribute, unsigned Form, int64_t Integer);
|
void addSInt(DIE *Die, uint16_t Attribute, uint16_t Form, int64_t Integer);
|
||||||
|
|
||||||
/// addString - Add a string attribute data and value.
|
/// addString - Add a string attribute data and value.
|
||||||
///
|
///
|
||||||
void addString(DIE *Die, unsigned Attribute, const StringRef Str);
|
void addString(DIE *Die, uint16_t Attribute, const StringRef Str);
|
||||||
|
|
||||||
/// addLocalString - Add a string attribute data and value.
|
/// addLocalString - Add a string attribute data and value.
|
||||||
///
|
///
|
||||||
void addLocalString(DIE *Die, unsigned Attribute, const StringRef Str);
|
void addLocalString(DIE *Die, uint16_t Attribute, const StringRef Str);
|
||||||
|
|
||||||
/// addExpr - Add a Dwarf expression attribute data and value.
|
/// addExpr - Add a Dwarf expression attribute data and value.
|
||||||
///
|
///
|
||||||
void addExpr(DIE *Die, unsigned Attribute, unsigned Form,
|
void addExpr(DIE *Die, uint16_t Attribute, uint16_t Form,
|
||||||
const MCExpr *Expr);
|
const MCExpr *Expr);
|
||||||
|
|
||||||
/// addLabel - Add a Dwarf label attribute data and value.
|
/// addLabel - Add a Dwarf label attribute data and value.
|
||||||
///
|
///
|
||||||
void addLabel(DIE *Die, unsigned Attribute, unsigned Form,
|
void addLabel(DIE *Die, uint16_t Attribute, uint16_t Form,
|
||||||
const MCSymbol *Label);
|
const MCSymbol *Label);
|
||||||
|
|
||||||
/// addLabelAddress - Add a dwarf label attribute data and value using
|
/// addLabelAddress - Add a dwarf label attribute data and value using
|
||||||
/// either DW_FORM_addr or DW_FORM_GNU_addr_index.
|
/// either DW_FORM_addr or DW_FORM_GNU_addr_index.
|
||||||
///
|
///
|
||||||
void addLabelAddress(DIE *Die, unsigned Attribute, MCSymbol *Label);
|
void addLabelAddress(DIE *Die, uint16_t Attribute, MCSymbol *Label);
|
||||||
|
|
||||||
/// addOpAddress - Add a dwarf op address data and value using the
|
/// addOpAddress - Add a dwarf op address data and value using the
|
||||||
/// form given and an op of either DW_FORM_addr or DW_FORM_GNU_addr_index.
|
/// form given and an op of either DW_FORM_addr or DW_FORM_GNU_addr_index.
|
||||||
@ -237,16 +237,16 @@ public:
|
|||||||
|
|
||||||
/// addDelta - Add a label delta attribute data and value.
|
/// addDelta - Add a label delta attribute data and value.
|
||||||
///
|
///
|
||||||
void addDelta(DIE *Die, unsigned Attribute, unsigned Form,
|
void addDelta(DIE *Die, uint16_t Attribute, uint16_t Form,
|
||||||
const MCSymbol *Hi, const MCSymbol *Lo);
|
const MCSymbol *Hi, const MCSymbol *Lo);
|
||||||
|
|
||||||
/// addDIEEntry - Add a DIE attribute data and value.
|
/// addDIEEntry - Add a DIE attribute data and value.
|
||||||
///
|
///
|
||||||
void addDIEEntry(DIE *Die, unsigned Attribute, unsigned Form, DIE *Entry);
|
void addDIEEntry(DIE *Die, uint16_t Attribute, uint16_t Form, DIE *Entry);
|
||||||
|
|
||||||
/// addBlock - Add block data.
|
/// addBlock - Add block data.
|
||||||
///
|
///
|
||||||
void addBlock(DIE *Die, unsigned Attribute, unsigned Form, DIEBlock *Block);
|
void addBlock(DIE *Die, uint16_t Attribute, uint16_t Form, DIEBlock *Block);
|
||||||
|
|
||||||
/// addSourceLine - Add location information to specified debug information
|
/// addSourceLine - Add location information to specified debug information
|
||||||
/// entry.
|
/// entry.
|
||||||
@ -259,7 +259,7 @@ public:
|
|||||||
|
|
||||||
/// addAddress - Add an address attribute to a die based on the location
|
/// addAddress - Add an address attribute to a die based on the location
|
||||||
/// provided.
|
/// provided.
|
||||||
void addAddress(DIE *Die, unsigned Attribute,
|
void addAddress(DIE *Die, uint16_t Attribute,
|
||||||
const MachineLocation &Location, bool Indirect = false);
|
const MachineLocation &Location, bool Indirect = false);
|
||||||
|
|
||||||
/// addConstantValue - Add constant value entry in variable DIE.
|
/// addConstantValue - Add constant value entry in variable DIE.
|
||||||
@ -285,7 +285,7 @@ public:
|
|||||||
/// (navigating the extra location information encoded in the type) based on
|
/// (navigating the extra location information encoded in the type) based on
|
||||||
/// the starting location. Add the DWARF information to the die.
|
/// the starting location. Add the DWARF information to the die.
|
||||||
///
|
///
|
||||||
void addComplexAddress(const DbgVariable &DV, DIE *Die, unsigned Attribute,
|
void addComplexAddress(const DbgVariable &DV, DIE *Die, uint16_t Attribute,
|
||||||
const MachineLocation &Location);
|
const MachineLocation &Location);
|
||||||
|
|
||||||
// FIXME: Should be reformulated in terms of addComplexAddress.
|
// FIXME: Should be reformulated in terms of addComplexAddress.
|
||||||
@ -295,7 +295,7 @@ public:
|
|||||||
/// starting location. Add the DWARF information to the die. Obsolete,
|
/// starting location. Add the DWARF information to the die. Obsolete,
|
||||||
/// please use addComplexAddress instead.
|
/// please use addComplexAddress instead.
|
||||||
///
|
///
|
||||||
void addBlockByrefAddress(const DbgVariable &DV, DIE *Die, unsigned Attribute,
|
void addBlockByrefAddress(const DbgVariable &DV, DIE *Die, uint16_t Attribute,
|
||||||
const MachineLocation &Location);
|
const MachineLocation &Location);
|
||||||
|
|
||||||
/// addVariableAddress - Add DW_AT_location attribute for a
|
/// addVariableAddress - Add DW_AT_location attribute for a
|
||||||
@ -309,7 +309,7 @@ public:
|
|||||||
/// addType - Add a new type attribute to the specified entity. This takes
|
/// addType - Add a new type attribute to the specified entity. This takes
|
||||||
/// and attribute parameter because DW_AT_friend attributes are also
|
/// and attribute parameter because DW_AT_friend attributes are also
|
||||||
/// type references.
|
/// type references.
|
||||||
void addType(DIE *Entity, DIType Ty, unsigned Attribute = dwarf::DW_AT_type);
|
void addType(DIE *Entity, DIType Ty, uint16_t Attribute = dwarf::DW_AT_type);
|
||||||
|
|
||||||
/// getOrCreateNameSpace - Create a DIE for DINameSpace.
|
/// getOrCreateNameSpace - Create a DIE for DINameSpace.
|
||||||
DIE *getOrCreateNameSpace(DINameSpace NS);
|
DIE *getOrCreateNameSpace(DINameSpace NS);
|
||||||
|
@ -147,7 +147,7 @@ DIType DbgVariable::getType() const {
|
|||||||
the pointers and __Block_byref_x_VarName struct to find the actual
|
the pointers and __Block_byref_x_VarName struct to find the actual
|
||||||
value of the variable. The function addBlockByrefType does this. */
|
value of the variable. The function addBlockByrefType does this. */
|
||||||
DIType subType = Ty;
|
DIType subType = Ty;
|
||||||
unsigned tag = Ty.getTag();
|
uint16_t tag = Ty.getTag();
|
||||||
|
|
||||||
if (tag == dwarf::DW_TAG_pointer_type) {
|
if (tag == dwarf::DW_TAG_pointer_type) {
|
||||||
DIDerivedType DTy = DIDerivedType(Ty);
|
DIDerivedType DTy = DIDerivedType(Ty);
|
||||||
@ -392,7 +392,7 @@ DIE *DwarfDebug::updateSubprogramScopeDIE(CompileUnit *SPCU,
|
|||||||
// Add arguments.
|
// Add arguments.
|
||||||
DICompositeType SPTy = SP.getType();
|
DICompositeType SPTy = SP.getType();
|
||||||
DIArray Args = SPTy.getTypeArray();
|
DIArray Args = SPTy.getTypeArray();
|
||||||
unsigned SPTag = SPTy.getTag();
|
uint16_t SPTag = SPTy.getTag();
|
||||||
if (SPTag == dwarf::DW_TAG_subroutine_type)
|
if (SPTag == dwarf::DW_TAG_subroutine_type)
|
||||||
for (unsigned i = 1, N = Args.getNumElements(); i < N; ++i) {
|
for (unsigned i = 1, N = Args.getNumElements(); i < N; ++i) {
|
||||||
DIE *Arg = new DIE(dwarf::DW_TAG_formal_parameter);
|
DIE *Arg = new DIE(dwarf::DW_TAG_formal_parameter);
|
||||||
|
@ -169,7 +169,7 @@ public:
|
|||||||
int getFrameIndex() const { return FrameIndex; }
|
int getFrameIndex() const { return FrameIndex; }
|
||||||
void setFrameIndex(int FI) { FrameIndex = FI; }
|
void setFrameIndex(int FI) { FrameIndex = FI; }
|
||||||
// Translate tag to proper Dwarf tag.
|
// Translate tag to proper Dwarf tag.
|
||||||
unsigned getTag() const {
|
uint16_t getTag() const {
|
||||||
if (Var.getTag() == dwarf::DW_TAG_arg_variable)
|
if (Var.getTag() == dwarf::DW_TAG_arg_variable)
|
||||||
return dwarf::DW_TAG_formal_parameter;
|
return dwarf::DW_TAG_formal_parameter;
|
||||||
|
|
||||||
|
@ -428,7 +428,7 @@ bool DIType::Verify() const {
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
// FIXME: Sink this into the various subclass verifies.
|
// FIXME: Sink this into the various subclass verifies.
|
||||||
unsigned Tag = getTag();
|
uint16_t Tag = getTag();
|
||||||
if (!isBasicType() && Tag != dwarf::DW_TAG_const_type &&
|
if (!isBasicType() && Tag != dwarf::DW_TAG_const_type &&
|
||||||
Tag != dwarf::DW_TAG_volatile_type && Tag != dwarf::DW_TAG_pointer_type &&
|
Tag != dwarf::DW_TAG_volatile_type && Tag != dwarf::DW_TAG_pointer_type &&
|
||||||
Tag != dwarf::DW_TAG_ptr_to_member_type &&
|
Tag != dwarf::DW_TAG_ptr_to_member_type &&
|
||||||
@ -598,7 +598,7 @@ bool DIImportedEntity::Verify() const {
|
|||||||
/// getOriginalTypeSize - If this type is derived from a base type then
|
/// getOriginalTypeSize - If this type is derived from a base type then
|
||||||
/// return base type size.
|
/// return base type size.
|
||||||
uint64_t DIDerivedType::getOriginalTypeSize() const {
|
uint64_t DIDerivedType::getOriginalTypeSize() const {
|
||||||
unsigned Tag = getTag();
|
uint16_t Tag = getTag();
|
||||||
|
|
||||||
if (Tag != dwarf::DW_TAG_member && Tag != dwarf::DW_TAG_typedef &&
|
if (Tag != dwarf::DW_TAG_member && Tag != dwarf::DW_TAG_typedef &&
|
||||||
Tag != dwarf::DW_TAG_const_type && Tag != dwarf::DW_TAG_volatile_type &&
|
Tag != dwarf::DW_TAG_const_type && Tag != dwarf::DW_TAG_volatile_type &&
|
||||||
|
Loading…
Reference in New Issue
Block a user