forked from OSchip/llvm-project
Add DWARFFormValue::getAsBlock() and add FC_Flag as an acceptable class for an unsigned constant.
To be used in further patches that improve the dumpers. llvm-svn: 217129
This commit is contained in:
parent
e10ccef9b3
commit
f3549a2396
|
@ -70,6 +70,7 @@ public:
|
|||
Optional<const char *> getAsCString(const DWARFUnit *U) const;
|
||||
Optional<uint64_t> getAsAddress(const DWARFUnit *U) const;
|
||||
Optional<uint64_t> getAsSectionOffset() const;
|
||||
Optional<ArrayRef<const uint8_t>> getAsBlock() const;
|
||||
|
||||
bool skipValue(DataExtractor debug_info_data, uint32_t *offset_ptr,
|
||||
const DWARFUnit *u) const;
|
||||
|
|
|
@ -543,7 +543,15 @@ Optional<uint64_t> DWARFFormValue::getAsSectionOffset() const {
|
|||
}
|
||||
|
||||
Optional<uint64_t> DWARFFormValue::getAsUnsignedConstant() const {
|
||||
if (!isFormClass(FC_Constant) || Form == DW_FORM_sdata)
|
||||
if ((!isFormClass(FC_Constant) && !isFormClass(FC_Flag))
|
||||
|| Form == DW_FORM_sdata)
|
||||
return None;
|
||||
return Value.uval;
|
||||
}
|
||||
|
||||
Optional<ArrayRef<const uint8_t>> DWARFFormValue::getAsBlock() const {
|
||||
if (!isFormClass(FC_Block) && !isFormClass(FC_Exprloc))
|
||||
return None;
|
||||
return ArrayRef<const uint8_t>(Value.data, Value.uval);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue