summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPaul Robinson <paul.robinson@sony.com>2017-12-15 22:57:17 +0000
committerPaul Robinson <paul.robinson@sony.com>2017-12-15 22:57:17 +0000
commitbee91d76343aa0fd5d616ec0e74b74e6de2bb545 (patch)
tree8296976798a627e4e3ca58af292cef0e6f5222fa /include
parent35877056519fc2d23eb09527d204738234b908a9 (diff)
Recommit "[DWARFv5] Dump an MD5 checksum in the line-table header."
Adds missing support for DW_FORM_data16. Update of r320852, fixing the unittest to use a hand-coded struct instead of std::array to guarantee data layout. Differential Revision: https://reviews.llvm.org/D41090 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320886 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/DebugInfo/DWARF/DWARFDebugLine.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h b/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
index 24075817219..de8ad4e5ef3 100644
--- a/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
+++ b/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
@@ -15,6 +15,7 @@
#include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
#include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
#include "llvm/DebugInfo/DWARF/DWARFRelocMap.h"
+#include "llvm/Support/MD5.h"
#include <cstdint>
#include <map>
#include <string>
@@ -34,6 +35,7 @@ public:
uint64_t DirIdx = 0;
uint64_t ModTime = 0;
uint64_t Length = 0;
+ MD5::MD5Result Checksum;
};
struct Prologue {
@@ -46,11 +48,11 @@ public:
/// parameters affect interpretation of forms (used in the directory and
/// file tables starting with v5).
DWARFFormParams FormParams;
- /// In v5, size in bytes of a segment selector.
- uint8_t SegSelectorSize;
/// The number of bytes following the prologue_length field to the beginning
/// of the first byte of the statement program itself.
uint64_t PrologueLength;
+ /// In v5, size in bytes of a segment selector.
+ uint8_t SegSelectorSize;
/// The size in bytes of the smallest target machine instruction. Statement
/// program opcodes that alter the address register first multiply their
/// operands by this value.
@@ -66,6 +68,8 @@ public:
uint8_t LineRange;
/// The number assigned to the first special opcode.
uint8_t OpcodeBase;
+ /// For v5, whether filename entries provide an MD5 checksum.
+ bool HasMD5;
std::vector<uint8_t> StandardOpcodeLengths;
std::vector<StringRef> IncludeDirectories;
std::vector<FileNameEntry> FileNames;