Fix type sizes that were causing incorrect string formatting
[lldb.git] / llvm / include / llvm / DebugInfo / DWARF / DWARFDebugRnglists.h
1 //===- DWARFDebugRnglists.h -------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef LLVM_DEBUGINFO_DWARFDEBUGRNGLISTS_H
11 #define LLVM_DEBUGINFO_DWARFDEBUGRNGLISTS_H
12
13 #include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
14 #include "llvm/DebugInfo/DWARF/DWARFDebugRangeList.h"
15 #include <cstdint>
16 #include <vector>
17
18 namespace llvm {
19
20 class Error;
21 class raw_ostream;
22
23 class DWARFDebugRnglists {
24 private:
25   struct Header {
26     /// The total length of the entries for this table, not including the length
27     /// field itself.
28     uint32_t Length = 0;
29     /// The DWARF version number.
30     uint16_t Version;
31     /// The size in bytes of an address on the target architecture. For
32     /// segmented addressing, this is the size of the offset portion of the
33     /// address.
34     uint8_t AddrSize;
35     /// The size in bytes of a segment selector on the target architecture.
36     /// If the target system uses a flat address space, this value is 0.
37     uint8_t SegSize;
38     /// The number of offsets that follow the header before the range lists.
39     uint32_t OffsetEntryCount;
40   };
41
42   Header HeaderData;
43   std::vector<uint64_t> Offsets;
44   std::vector<DWARFAddressRangesVector> Ranges;
45
46 public:
47   void clear();
48   Error extract(DWARFDataExtractor Data, uint32_t *OffsetPtr);
49   void dump(raw_ostream &OS) const;
50
51   /// Returns the length of this table, including the length field, or 0 if the
52   /// length has not been determined (e.g. because the table has not yet been
53   /// parsed, or there was a problem in parsing).
54   uint32_t length() const;
55 };
56
57 } // end namespace llvm
58
59 #endif // LLVM_DEBUGINFO_DWARFDEBUGRNGLISTS_H