diff options
| author | Alexey Samsonov <samsonov@google.com> | 2012-11-16 08:36:25 +0000 |
|---|---|---|
| committer | Alexey Samsonov <samsonov@google.com> | 2012-11-16 08:36:25 +0000 |
| commit | a1694c1aaff37ac5c12fe0be9ff37336a0925e54 (patch) | |
| tree | c647f103bf071cc172e860571989838c80ae2a5a /llvm/lib/DebugInfo/DWARFDebugAranges.h | |
| parent | ae89426f07516ac5167ab7b772645b77c3b0a3cd (diff) | |
| download | bcm5719-llvm-a1694c1aaff37ac5c12fe0be9ff37336a0925e54.tar.gz bcm5719-llvm-a1694c1aaff37ac5c12fe0be9ff37336a0925e54.zip | |
[DebugInfo] Generate address ranges for compile units even if .debug_aranges is present: it is often the case that .debug_aranges section contains ranges only for a small subset of compile units. Test cases will be added in separate commits.
llvm-svn: 168144
Diffstat (limited to 'llvm/lib/DebugInfo/DWARFDebugAranges.h')
| -rw-r--r-- | llvm/lib/DebugInfo/DWARFDebugAranges.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/DebugInfo/DWARFDebugAranges.h b/llvm/lib/DebugInfo/DWARFDebugAranges.h index 12afb60beb4..1509ffad41f 100644 --- a/llvm/lib/DebugInfo/DWARFDebugAranges.h +++ b/llvm/lib/DebugInfo/DWARFDebugAranges.h @@ -11,6 +11,7 @@ #define LLVM_DEBUGINFO_DWARFDEBUGARANGES_H #include "DWARFDebugArangeSet.h" +#include "llvm/ADT/DenseSet.h" #include <list> namespace llvm { @@ -60,7 +61,10 @@ public: uint32_t Offset; // Offset of the compile unit or die }; - void clear() { Aranges.clear(); } + void clear() { + Aranges.clear(); + ParsedCUOffsets.clear(); + } bool allRangesAreContiguous(uint64_t& LoPC, uint64_t& HiPC) const; bool getMaxRange(uint64_t& LoPC, uint64_t& HiPC) const; bool extract(DataExtractor debug_aranges_data); @@ -88,9 +92,11 @@ public: typedef std::vector<Range> RangeColl; typedef RangeColl::const_iterator RangeCollIterator; + typedef DenseSet<uint32_t> ParsedCUOffsetColl; private: RangeColl Aranges; + ParsedCUOffsetColl ParsedCUOffsets; }; } |

