1*9f2f44ceSEd Maste //===-- CompilerDecl.cpp ----------------------------------------*- C++ -*-===// 2*9f2f44ceSEd Maste // 3*9f2f44ceSEd Maste // The LLVM Compiler Infrastructure 4*9f2f44ceSEd Maste // 5*9f2f44ceSEd Maste // This file is distributed under the University of Illinois Open Source 6*9f2f44ceSEd Maste // License. See LICENSE.TXT for details. 7*9f2f44ceSEd Maste // 8*9f2f44ceSEd Maste //===----------------------------------------------------------------------===// 9*9f2f44ceSEd Maste 10*9f2f44ceSEd Maste #include "lldb/Symbol/CompilerDecl.h" 11*9f2f44ceSEd Maste #include "lldb/Symbol/CompilerDeclContext.h" 12*9f2f44ceSEd Maste #include "lldb/Symbol/TypeSystem.h" 13*9f2f44ceSEd Maste 14*9f2f44ceSEd Maste using namespace lldb_private; 15*9f2f44ceSEd Maste 16*9f2f44ceSEd Maste bool 17*9f2f44ceSEd Maste CompilerDecl::IsClang () const 18*9f2f44ceSEd Maste { 19*9f2f44ceSEd Maste return IsValid() && m_type_system->getKind() == TypeSystem::eKindClang; 20*9f2f44ceSEd Maste } 21*9f2f44ceSEd Maste 22*9f2f44ceSEd Maste ConstString 23*9f2f44ceSEd Maste CompilerDecl::GetName() const 24*9f2f44ceSEd Maste { 25*9f2f44ceSEd Maste return m_type_system->DeclGetName(m_opaque_decl); 26*9f2f44ceSEd Maste } 27*9f2f44ceSEd Maste 28*9f2f44ceSEd Maste ConstString 29*9f2f44ceSEd Maste CompilerDecl::GetMangledName () const 30*9f2f44ceSEd Maste { 31*9f2f44ceSEd Maste return m_type_system->DeclGetMangledName(m_opaque_decl); 32*9f2f44ceSEd Maste } 33*9f2f44ceSEd Maste 34*9f2f44ceSEd Maste lldb::VariableSP 35*9f2f44ceSEd Maste CompilerDecl::GetAsVariable () 36*9f2f44ceSEd Maste { 37*9f2f44ceSEd Maste return m_type_system->DeclGetVariable(m_opaque_decl); 38*9f2f44ceSEd Maste } 39*9f2f44ceSEd Maste 40*9f2f44ceSEd Maste CompilerDeclContext 41*9f2f44ceSEd Maste CompilerDecl::GetDeclContext() const 42*9f2f44ceSEd Maste { 43*9f2f44ceSEd Maste return m_type_system->DeclGetDeclContext(m_opaque_decl); 44*9f2f44ceSEd Maste } 45*9f2f44ceSEd Maste 46*9f2f44ceSEd Maste CompilerType 47*9f2f44ceSEd Maste CompilerDecl::GetFunctionReturnType() const 48*9f2f44ceSEd Maste { 49*9f2f44ceSEd Maste return m_type_system->DeclGetFunctionReturnType(m_opaque_decl); 50*9f2f44ceSEd Maste } 51*9f2f44ceSEd Maste 52*9f2f44ceSEd Maste size_t 53*9f2f44ceSEd Maste CompilerDecl::GetNumFunctionArguments() const 54*9f2f44ceSEd Maste { 55*9f2f44ceSEd Maste return m_type_system->DeclGetFunctionNumArguments(m_opaque_decl); 56*9f2f44ceSEd Maste } 57*9f2f44ceSEd Maste 58*9f2f44ceSEd Maste CompilerType 59*9f2f44ceSEd Maste CompilerDecl::GetFunctionArgumentType (size_t arg_idx) const 60*9f2f44ceSEd Maste { 61*9f2f44ceSEd Maste return m_type_system->DeclGetFunctionArgumentType(m_opaque_decl, arg_idx); 62*9f2f44ceSEd Maste } 63*9f2f44ceSEd Maste 64*9f2f44ceSEd Maste bool 65*9f2f44ceSEd Maste lldb_private::operator == (const lldb_private::CompilerDecl &lhs, const lldb_private::CompilerDecl &rhs) 66*9f2f44ceSEd Maste { 67*9f2f44ceSEd Maste return lhs.GetTypeSystem() == rhs.GetTypeSystem() && lhs.GetOpaqueDecl() == rhs.GetOpaqueDecl(); 68*9f2f44ceSEd Maste } 69*9f2f44ceSEd Maste 70*9f2f44ceSEd Maste 71*9f2f44ceSEd Maste bool 72*9f2f44ceSEd Maste lldb_private::operator != (const lldb_private::CompilerDecl &lhs, const lldb_private::CompilerDecl &rhs) 73*9f2f44ceSEd Maste { 74*9f2f44ceSEd Maste return lhs.GetTypeSystem() != rhs.GetTypeSystem() || lhs.GetOpaqueDecl() != rhs.GetOpaqueDecl(); 75*9f2f44ceSEd Maste } 76*9f2f44ceSEd Maste 77