| //===-- 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); |
| } |