xref: /src/contrib/llvm-project/lldb/source/Symbol/CompilerDecl.cpp (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1cfca06d7SDimitry Andric //===-- CompilerDecl.cpp --------------------------------------------------===//
2e81d9d49SDimitry Andric //
35f29bb8aSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
45f29bb8aSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
55f29bb8aSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6e81d9d49SDimitry Andric //
7e81d9d49SDimitry Andric //===----------------------------------------------------------------------===//
8e81d9d49SDimitry Andric 
9e81d9d49SDimitry Andric #include "lldb/Symbol/CompilerDecl.h"
10e81d9d49SDimitry Andric #include "lldb/Symbol/CompilerDeclContext.h"
11e81d9d49SDimitry Andric #include "lldb/Symbol/TypeSystem.h"
12ac9a064cSDimitry Andric #include "lldb/Utility/Scalar.h"
13e81d9d49SDimitry Andric 
14e81d9d49SDimitry Andric using namespace lldb_private;
15e81d9d49SDimitry Andric 
GetName() const1614f1b3e8SDimitry Andric ConstString CompilerDecl::GetName() const {
17e81d9d49SDimitry Andric   return m_type_system->DeclGetName(m_opaque_decl);
18e81d9d49SDimitry Andric }
19e81d9d49SDimitry Andric 
GetMangledName() const2014f1b3e8SDimitry Andric ConstString CompilerDecl::GetMangledName() const {
21e81d9d49SDimitry Andric   return m_type_system->DeclGetMangledName(m_opaque_decl);
22e81d9d49SDimitry Andric }
23e81d9d49SDimitry Andric 
GetDeclContext() const2414f1b3e8SDimitry Andric CompilerDeclContext CompilerDecl::GetDeclContext() const {
25e81d9d49SDimitry Andric   return m_type_system->DeclGetDeclContext(m_opaque_decl);
26e81d9d49SDimitry Andric }
27e81d9d49SDimitry Andric 
GetType() const28ac9a064cSDimitry Andric CompilerType CompilerDecl::GetType() const {
29ac9a064cSDimitry Andric   return m_type_system->GetTypeForDecl(m_opaque_decl);
30ac9a064cSDimitry Andric }
31ac9a064cSDimitry Andric 
GetFunctionReturnType() const3214f1b3e8SDimitry Andric CompilerType CompilerDecl::GetFunctionReturnType() const {
33e81d9d49SDimitry Andric   return m_type_system->DeclGetFunctionReturnType(m_opaque_decl);
34e81d9d49SDimitry Andric }
35e81d9d49SDimitry Andric 
GetNumFunctionArguments() const3614f1b3e8SDimitry Andric size_t CompilerDecl::GetNumFunctionArguments() const {
37e81d9d49SDimitry Andric   return m_type_system->DeclGetFunctionNumArguments(m_opaque_decl);
38e81d9d49SDimitry Andric }
39e81d9d49SDimitry Andric 
GetFunctionArgumentType(size_t arg_idx) const4014f1b3e8SDimitry Andric CompilerType CompilerDecl::GetFunctionArgumentType(size_t arg_idx) const {
41e81d9d49SDimitry Andric   return m_type_system->DeclGetFunctionArgumentType(m_opaque_decl, arg_idx);
42e81d9d49SDimitry Andric }
43e81d9d49SDimitry Andric 
operator ==(const lldb_private::CompilerDecl & lhs,const lldb_private::CompilerDecl & rhs)4414f1b3e8SDimitry Andric bool lldb_private::operator==(const lldb_private::CompilerDecl &lhs,
4514f1b3e8SDimitry Andric                               const lldb_private::CompilerDecl &rhs) {
4614f1b3e8SDimitry Andric   return lhs.GetTypeSystem() == rhs.GetTypeSystem() &&
4714f1b3e8SDimitry Andric          lhs.GetOpaqueDecl() == rhs.GetOpaqueDecl();
48e81d9d49SDimitry Andric }
49e81d9d49SDimitry Andric 
operator !=(const lldb_private::CompilerDecl & lhs,const lldb_private::CompilerDecl & rhs)5014f1b3e8SDimitry Andric bool lldb_private::operator!=(const lldb_private::CompilerDecl &lhs,
5114f1b3e8SDimitry Andric                               const lldb_private::CompilerDecl &rhs) {
5214f1b3e8SDimitry Andric   return lhs.GetTypeSystem() != rhs.GetTypeSystem() ||
5314f1b3e8SDimitry Andric          lhs.GetOpaqueDecl() != rhs.GetOpaqueDecl();
54e81d9d49SDimitry Andric }
55312c0ed1SDimitry Andric 
56312c0ed1SDimitry Andric std::vector<lldb_private::CompilerContext>
GetCompilerContext() const57312c0ed1SDimitry Andric CompilerDecl::GetCompilerContext() const {
58312c0ed1SDimitry Andric   return m_type_system->DeclGetCompilerContext(m_opaque_decl);
59312c0ed1SDimitry Andric }
60ac9a064cSDimitry Andric 
GetConstantValue() const61ac9a064cSDimitry Andric Scalar CompilerDecl::GetConstantValue() const {
62ac9a064cSDimitry Andric   return m_type_system->DeclGetConstantValue(m_opaque_decl);
63ac9a064cSDimitry Andric }
64