]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfoEntry.h
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / source / Plugins / SymbolFile / DWARF / DWARFDebugMacinfoEntry.h
1 //===-- DWARFDebugMacinfoEntry.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 SymbolFileDWARF_DWARFDebugMacinfoEntry_h_
11 #define SymbolFileDWARF_DWARFDebugMacinfoEntry_h_
12
13 #include "SymbolFileDWARF.h"
14
15 class DWARFDebugMacinfoEntry {
16 public:
17   DWARFDebugMacinfoEntry();
18
19   ~DWARFDebugMacinfoEntry();
20
21   uint8_t TypeCode() const { return m_type_code; }
22
23   uint8_t GetLineNumber() const { return m_line; }
24
25   void Dump(lldb_private::Stream *s) const;
26
27   const char *GetCString() const;
28
29   bool Extract(const lldb_private::DWARFDataExtractor &mac_info_data,
30                lldb::offset_t *offset_ptr);
31
32 protected:
33 private:
34   uint8_t m_type_code;
35   dw_uleb128_t m_line;
36   union {
37     dw_uleb128_t file_idx;
38     const char *cstr;
39   } m_op2;
40 };
41
42 #endif // SymbolFileDWARF_DWARFDebugMacinfoEntry_h_