| //===-- DebugMacros.cpp -----------------------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "lldb/Symbol/DebugMacros.h" |
| |
| #include "lldb/Symbol/CompileUnit.h" |
| |
| using namespace lldb_private; |
| |
| DebugMacroEntry::DebugMacroEntry(EntryType type, |
| uint32_t line, |
| uint32_t debug_line_file_idx, |
| const char *str) |
| : m_type(type), |
| m_line(line), |
| m_debug_line_file_idx(debug_line_file_idx), |
| m_str(str) |
| { } |
| |
| DebugMacroEntry::DebugMacroEntry(EntryType type, |
| const DebugMacrosSP &debug_macros_sp) |
| : m_type(type), m_line(0), m_debug_line_file_idx(0), m_debug_macros_sp(debug_macros_sp) |
| { } |
| |
| const FileSpec& |
| DebugMacroEntry::GetFileSpec(CompileUnit *comp_unit) const |
| { |
| return comp_unit->GetSupportFiles().GetFileSpecAtIndex(m_debug_line_file_idx); |
| } |
| |
| DebugMacroEntry |
| DebugMacroEntry::CreateDefineEntry(uint32_t line, const char *str) |
| { |
| return DebugMacroEntry(DebugMacroEntry::DEFINE, line, 0, str); |
| } |
| |
| DebugMacroEntry |
| DebugMacroEntry::CreateUndefEntry(uint32_t line, const char *str) |
| { |
| return DebugMacroEntry(DebugMacroEntry::UNDEF, line, 0, str); |
| } |
| |
| DebugMacroEntry |
| DebugMacroEntry::CreateStartFileEntry(uint32_t line, uint32_t debug_line_file_idx) |
| { |
| return DebugMacroEntry(DebugMacroEntry::START_FILE, line, debug_line_file_idx, nullptr); |
| } |
| |
| DebugMacroEntry |
| DebugMacroEntry::CreateEndFileEntry() |
| { |
| return DebugMacroEntry(DebugMacroEntry::END_FILE, 0, 0, nullptr); |
| } |
| |
| DebugMacroEntry |
| DebugMacroEntry::CreateIndirectEntry(const DebugMacrosSP &debug_macros_sp) |
| { |
| return DebugMacroEntry(DebugMacroEntry::INDIRECT, debug_macros_sp); |
| } |