X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FDebugInfo%2FDWARFDebugArangeSet.h;h=837a8e63469ee5626cd657e4a4e172a2dbe92e01;hb=56c15de38a1c43bc0fcfb19fa655d68af3479d7d;hp=56bebc5379fa7efacf2fde31840b3c8d0588e16e;hpb=358f4fd9ee078b3c79597fc688855fb48bc1f356;p=oota-llvm.git diff --git a/lib/DebugInfo/DWARFDebugArangeSet.h b/lib/DebugInfo/DWARFDebugArangeSet.h index 56bebc5379f..837a8e63469 100644 --- a/lib/DebugInfo/DWARFDebugArangeSet.h +++ b/lib/DebugInfo/DWARFDebugArangeSet.h @@ -7,9 +7,10 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_DEBUGINFO_DWARFDEBUGARANGESET_H -#define LLVM_DEBUGINFO_DWARFDEBUGARANGESET_H +#ifndef LLVM_LIB_DEBUGINFO_DWARFDEBUGARANGESET_H +#define LLVM_LIB_DEBUGINFO_DWARFDEBUGARANGESET_H +#include "llvm/ADT/iterator_range.h" #include "llvm/Support/DataExtractor.h" #include @@ -23,11 +24,11 @@ public: // The total length of the entries for that set, not including the length // field itself. uint32_t Length; - // The DWARF version number. - uint16_t Version; // The offset from the beginning of the .debug_info section of the // compilation unit entry referenced by the table. uint32_t CuOffset; + // The DWARF version number. + uint16_t Version; // The size in bytes of an address on the target architecture. For segmented // addressing, this is the size of the offset portion of the address. uint8_t AddrSize; @@ -44,29 +45,23 @@ public: private: typedef std::vector DescriptorColl; - typedef DescriptorColl::iterator DescriptorIter; - typedef DescriptorColl::const_iterator DescriptorConstIter; + typedef iterator_range desc_iterator_range; uint32_t Offset; - Header Header; + Header HeaderData; DescriptorColl ArangeDescriptors; public: DWARFDebugArangeSet() { clear(); } void clear(); - void compact(); bool extract(DataExtractor data, uint32_t *offset_ptr); void dump(raw_ostream &OS) const; - uint32_t getCompileUnitDIEOffset() const { return Header.CuOffset; } - uint32_t getOffsetOfNextEntry() const { return Offset + Header.Length + 4; } - uint32_t findAddress(uint64_t address) const; - uint32_t getNumDescriptors() const { return ArangeDescriptors.size(); } - const struct Header &getHeader() const { return Header; } - const Descriptor *getDescriptor(uint32_t i) const { - if (i < ArangeDescriptors.size()) - return &ArangeDescriptors[i]; - return NULL; + uint32_t getCompileUnitDIEOffset() const { return HeaderData.CuOffset; } + + desc_iterator_range descriptors() const { + return desc_iterator_range(ArangeDescriptors.begin(), + ArangeDescriptors.end()); } };