Files
clang-p2996/lldb/source/Symbol/CompilerDecl.cpp
Sean Callanan 5ba3215fe3 Removed the m_decl_objects map from ClangASTContext.
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
2016-05-23 18:30:59 +00:00

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();
}