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
15class DWARFDebugMacinfoEntry
16{
17public:
18    DWARFDebugMacinfoEntry();
19
20    ~DWARFDebugMacinfoEntry();
21
22    uint8_t
23    TypeCode() const
24    {
25        return m_type_code;
26    }
27
28    uint8_t
29    GetLineNumber() const
30    {
31        return m_line;
32    }
33
34    void
35    Dump(lldb_private::Stream *s) const;
36
37    const char*
38    GetCString() const;
39
40    bool
41    Extract(const lldb_private::DataExtractor& mac_info_data,
42            lldb::offset_t* offset_ptr);
43
44protected:
45
46private:
47    uint8_t m_type_code;
48    dw_uleb128_t m_line;
49    union
50    {
51        dw_uleb128_t file_idx;
52        const char* cstr;
53    } m_op2;
54};
55
56
57#endif  // SymbolFileDWARF_DWARFDebugMacinfoEntry_h_
58