Exract most of DWARFCompileUnit into a new DWARFUnit to prepare for the coming DWARFTypeUnit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191233 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie
2013-09-23 22:44:40 +00:00
parent f2058addc2
commit cd7c4980d4
10 changed files with 704 additions and 675 deletions

View File

@@ -14,7 +14,7 @@
namespace llvm {
class DWARFCompileUnit;
class DWARFUnit;
class raw_ostream;
class DWARFFormValue {
@@ -49,23 +49,23 @@ public:
DWARFFormValue(uint16_t form = 0) : Form(form) {}
uint16_t getForm() const { return Form; }
const ValueType& value() const { return Value; }
void dump(raw_ostream &OS, const DWARFCompileUnit* cu) const;
void dump(raw_ostream &OS, const DWARFUnit *U) const;
bool extractValue(DataExtractor data, uint32_t *offset_ptr,
const DWARFCompileUnit *cu);
const DWARFUnit *u);
bool isInlinedCStr() const {
return Value.data != NULL && Value.data == (const uint8_t*)Value.cstr;
}
const uint8_t *BlockData() const;
uint64_t getReference(const DWARFCompileUnit* cu) const;
uint64_t getReference(const DWARFUnit *U) const;
uint64_t getUnsigned() const { return Value.uval; }
int64_t getSigned() const { return Value.sval; }
const char *getAsCString(const DWARFCompileUnit *CU) const;
uint64_t getAsAddress(const DWARFCompileUnit *CU) const;
const char *getAsCString(const DWARFUnit *U) const;
uint64_t getAsAddress(const DWARFUnit *U) const;
bool skipValue(DataExtractor debug_info_data, uint32_t *offset_ptr,
const DWARFCompileUnit *cu) const;
const DWARFUnit *u) const;
static bool skipValue(uint16_t form, DataExtractor debug_info_data,
uint32_t *offset_ptr, const DWARFCompileUnit *cu);
uint32_t *offset_ptr, const DWARFUnit *u);
static bool isBlockForm(uint16_t form);
static bool isDataForm(uint16_t form);
static const uint8_t *getFixedFormSizes(uint8_t AddrSize, uint16_t Version);