1 //===-- Declaration.cpp -----------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #include "lldb/Symbol/Declaration.h"
11 #include "lldb/Utility/Stream.h"
13 using namespace lldb_private;
15 void Declaration::Dump(Stream *s, bool show_fullpaths) const {
21 *s << m_file.GetFilename();
23 s->Printf(":%u", m_line);
24 #ifdef LLDB_ENABLE_DECLARATION_COLUMNS
26 s->Printf(":%u", m_column);
30 s->Printf(", line = %u", m_line);
31 #ifdef LLDB_ENABLE_DECLARATION_COLUMNS
33 s->Printf(":%u", m_column);
36 #ifdef LLDB_ENABLE_DECLARATION_COLUMNS
37 else if (m_column > 0)
38 s->Printf(", column = %u", m_column);
43 bool Declaration::DumpStopContext(Stream *s, bool show_fullpaths) const {
48 m_file.GetFilename().Dump(s);
51 s->Printf(":%u", m_line);
52 #ifdef LLDB_ENABLE_DECLARATION_COLUMNS
54 s->Printf(":%u", m_column);
57 } else if (m_line > 0) {
58 s->Printf(" line %u", m_line);
59 #ifdef LLDB_ENABLE_DECLARATION_COLUMNS
61 s->Printf(":%u", m_column);
68 size_t Declaration::MemorySize() const { return sizeof(Declaration); }
70 int Declaration::Compare(const Declaration &a, const Declaration &b) {
71 int result = FileSpec::Compare(a.m_file, b.m_file, true);
74 if (a.m_line < b.m_line)
76 else if (a.m_line > b.m_line)
78 #ifdef LLDB_ENABLE_DECLARATION_COLUMNS
79 if (a.m_column < b.m_column)
81 else if (a.m_column > b.m_column)
87 bool lldb_private::operator==(const Declaration &lhs, const Declaration &rhs) {
88 #ifdef LLDB_ENABLE_DECLARATION_COLUMNS
89 if (lhs.GetColumn() == rhs.GetColumn())
90 if (lhs.GetLine() == rhs.GetLine())
91 return lhs.GetFile() == rhs.GetFile();
93 if (lhs.GetLine() == rhs.GetLine())
94 return FileSpec::Equal(lhs.GetFile(), rhs.GetFile(), true);