1 //===-- Declaration.cpp ---------------------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #include "lldb/Core/Declaration.h"
10 #include "lldb/Utility/Stream.h"
12 using namespace lldb_private
;
14 void Declaration::Dump(Stream
*s
, bool show_fullpaths
) const {
20 *s
<< m_file
.GetFilename();
22 s
->Printf(":%u", m_line
);
23 if (m_column
!= LLDB_INVALID_COLUMN_NUMBER
)
24 s
->Printf(":%u", m_column
);
27 s
->Printf(", line = %u", m_line
);
28 if (m_column
!= LLDB_INVALID_COLUMN_NUMBER
)
29 s
->Printf(":%u", m_column
);
30 } else if (m_column
!= LLDB_INVALID_COLUMN_NUMBER
)
31 s
->Printf(", column = %u", m_column
);
35 bool Declaration::DumpStopContext(Stream
*s
, bool show_fullpaths
) const {
40 m_file
.GetFilename().Dump(s
);
43 s
->Printf(":%u", m_line
);
44 if (m_column
!= LLDB_INVALID_COLUMN_NUMBER
)
45 s
->Printf(":%u", m_column
);
47 } else if (m_line
> 0) {
48 s
->Printf(" line %u", m_line
);
49 if (m_column
!= LLDB_INVALID_COLUMN_NUMBER
)
50 s
->Printf(":%u", m_column
);
56 size_t Declaration::MemorySize() const { return sizeof(Declaration
); }
58 int Declaration::Compare(const Declaration
&a
, const Declaration
&b
) {
59 int result
= FileSpec::Compare(a
.m_file
, b
.m_file
, true);
62 if (a
.m_line
< b
.m_line
)
64 else if (a
.m_line
> b
.m_line
)
66 if (a
.m_column
< b
.m_column
)
68 else if (a
.m_column
> b
.m_column
)
73 bool Declaration::FileAndLineEqual(const Declaration
&declaration
,
75 int file_compare
= FileSpec::Compare(this->m_file
, declaration
.m_file
, full
);
76 return file_compare
== 0 && this->m_line
== declaration
.m_line
;
79 bool lldb_private::operator==(const Declaration
&lhs
, const Declaration
&rhs
) {
80 if (lhs
.GetColumn() != rhs
.GetColumn())
83 return lhs
.GetLine() == rhs
.GetLine() && lhs
.GetFile() == rhs
.GetFile();