m_decl_objects is problematic because it assumes that each VarDecl has a unique variable associated with it. This is not the case in inline contexts. Also the information in this map can be reconstructed very easily without maintaining the map. The rest of the testsuite passes with this cange, and I've added a testcase covering the inline contexts affected by this. <rdar://problem/26278502> llvm-svn: 270474
71 lines
1.8 KiB
C++
71 lines
1.8 KiB
C++
//===-- CompilerDecl.cpp ----------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "lldb/Symbol/CompilerDecl.h"
|
|
#include "lldb/Symbol/CompilerDeclContext.h"
|
|
#include "lldb/Symbol/TypeSystem.h"
|
|
|
|
using namespace lldb_private;
|
|
|
|
bool
|
|
CompilerDecl::IsClang () const
|
|
{
|
|
return IsValid() && m_type_system->getKind() == TypeSystem::eKindClang;
|
|
}
|
|
|
|
ConstString
|
|
CompilerDecl::GetName() const
|
|
{
|
|
return m_type_system->DeclGetName(m_opaque_decl);
|
|
}
|
|
|
|
ConstString
|
|
CompilerDecl::GetMangledName () const
|
|
{
|
|
return m_type_system->DeclGetMangledName(m_opaque_decl);
|
|
}
|
|
|
|
CompilerDeclContext
|
|
CompilerDecl::GetDeclContext() const
|
|
{
|
|
return m_type_system->DeclGetDeclContext(m_opaque_decl);
|
|
}
|
|
|
|
CompilerType
|
|
CompilerDecl::GetFunctionReturnType() const
|
|
{
|
|
return m_type_system->DeclGetFunctionReturnType(m_opaque_decl);
|
|
}
|
|
|
|
size_t
|
|
CompilerDecl::GetNumFunctionArguments() const
|
|
{
|
|
return m_type_system->DeclGetFunctionNumArguments(m_opaque_decl);
|
|
}
|
|
|
|
CompilerType
|
|
CompilerDecl::GetFunctionArgumentType (size_t arg_idx) const
|
|
{
|
|
return m_type_system->DeclGetFunctionArgumentType(m_opaque_decl, arg_idx);
|
|
}
|
|
|
|
bool
|
|
lldb_private::operator == (const lldb_private::CompilerDecl &lhs, const lldb_private::CompilerDecl &rhs)
|
|
{
|
|
return lhs.GetTypeSystem() == rhs.GetTypeSystem() && lhs.GetOpaqueDecl() == rhs.GetOpaqueDecl();
|
|
}
|
|
|
|
|
|
bool
|
|
lldb_private::operator != (const lldb_private::CompilerDecl &lhs, const lldb_private::CompilerDecl &rhs)
|
|
{
|
|
return lhs.GetTypeSystem() != rhs.GetTypeSystem() || lhs.GetOpaqueDecl() != rhs.GetOpaqueDecl();
|
|
}
|
|
|