]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/source/Symbol/CompilerDeclContext.cpp
Merge ^/head r293036 through r293174.
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / source / Symbol / CompilerDeclContext.cpp
1 //===-- CompilerDeclContext.cpp ---------------------------------*- 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 #include "lldb/Symbol/CompilerDeclContext.h"
11 #include "lldb/Symbol/CompilerDecl.h"
12 #include "lldb/Symbol/TypeSystem.h"
13 #include <vector>
14
15 using namespace lldb_private;
16
17 std::vector<CompilerDecl>
18 CompilerDeclContext::FindDeclByName (ConstString name)
19 {
20     if (IsValid())
21         return m_type_system->DeclContextFindDeclByName(m_opaque_decl_ctx, name);
22     else
23         return std::vector<CompilerDecl>();
24 }
25
26 bool
27 CompilerDeclContext::IsClang () const
28 {
29     return IsValid() && m_type_system->getKind() == TypeSystem::eKindClang;
30 }
31
32 ConstString
33 CompilerDeclContext::GetName () const
34 {
35     if (IsValid())
36         return m_type_system->DeclContextGetName(m_opaque_decl_ctx);
37     else
38         return ConstString();
39 }
40
41 bool
42 CompilerDeclContext::IsStructUnionOrClass () const
43 {
44     if (IsValid())
45         return m_type_system->DeclContextIsStructUnionOrClass(m_opaque_decl_ctx);
46     else
47         return false;
48 }
49
50 bool
51 CompilerDeclContext::IsClassMethod (lldb::LanguageType *language_ptr,
52                                     bool *is_instance_method_ptr,
53                                     ConstString *language_object_name_ptr)
54 {
55     if (IsValid())
56         return m_type_system->DeclContextIsClassMethod (m_opaque_decl_ctx,
57                                                         language_ptr,
58                                                         is_instance_method_ptr,
59                                                         language_object_name_ptr);
60     else
61         return false;
62 }
63
64 bool
65 lldb_private::operator == (const lldb_private::CompilerDeclContext &lhs, const lldb_private::CompilerDeclContext &rhs)
66 {
67     return lhs.GetTypeSystem() == rhs.GetTypeSystem() && lhs.GetOpaqueDeclContext() == rhs.GetOpaqueDeclContext();
68 }
69
70
71 bool
72 lldb_private::operator != (const lldb_private::CompilerDeclContext &lhs, const lldb_private::CompilerDeclContext &rhs)
73 {
74     return lhs.GetTypeSystem() != rhs.GetTypeSystem() || lhs.GetOpaqueDeclContext() != rhs.GetOpaqueDeclContext();
75 }