LLDB mainline
|
#include <UdtRecordCompleter.h>
Classes | |
struct | Member |
struct | Record |
union | UdtTagRecord |
Public Types | |
using | MemberUP = std::unique_ptr< Member > |
Public Member Functions | |
UdtRecordCompleter (PdbTypeSymId id, CompilerType &derived_ct, clang::TagDecl &tag_decl, PdbAstBuilder &ast_builder, PdbIndex &index, llvm::DenseMap< clang::Decl *, DeclStatus > &decl_to_status, llvm::DenseMap< lldb::opaque_compiler_type_t, llvm::SmallSet< std::pair< llvm::StringRef, CompilerType >, 8 > > &cxx_record_map) | |
void | complete () |
Private Types | |
using | IndexedBase = std::pair< uint64_t, std::unique_ptr< clang::CXXBaseSpecifier > > |
Private Member Functions | |
clang::QualType | AddBaseClassForTypeIndex (llvm::codeview::TypeIndex ti, llvm::codeview::MemberAccess access, std::optional< uint64_t > vtable_idx=std::optional< uint64_t >()) |
void | AddMethod (llvm::StringRef name, llvm::codeview::TypeIndex type_idx, llvm::codeview::MemberAccess access, llvm::codeview::MethodOptions options, llvm::codeview::MemberAttributes attrs) |
void | FinishRecord () |
uint64_t | AddMember (TypeSystemClang &clang, Member *field, uint64_t bit_offset, CompilerType parent_ct, ClangASTImporter::LayoutInfo &parent_layout, clang::DeclContext *decl_ctx) |
Private Attributes | |
union lldb_private::npdb::UdtRecordCompleter::UdtTagRecord | m_cvr |
PdbTypeSymId | m_id |
CompilerType & | m_derived_ct |
clang::TagDecl & | m_tag_decl |
PdbAstBuilder & | m_ast_builder |
PdbIndex & | m_index |
std::vector< IndexedBase > | m_bases |
ClangASTImporter::LayoutInfo | m_layout |
llvm::DenseMap< clang::Decl *, DeclStatus > & | m_decl_to_status |
llvm::DenseMap< lldb::opaque_compiler_type_t, llvm::SmallSet< std::pair< llvm::StringRef, CompilerType >, 8 > > & | m_cxx_record_map |
Record | m_record |
Definition at line 40 of file UdtRecordCompleter.h.
|
private |
Definition at line 41 of file UdtRecordCompleter.h.
using lldb_private::npdb::UdtRecordCompleter::MemberUP = std::unique_ptr<Member> |
Definition at line 79 of file UdtRecordCompleter.h.
UdtRecordCompleter::UdtRecordCompleter | ( | PdbTypeSymId | id, |
CompilerType & | derived_ct, | ||
clang::TagDecl & | tag_decl, | ||
PdbAstBuilder & | ast_builder, | ||
PdbIndex & | index, | ||
llvm::DenseMap< clang::Decl *, DeclStatus > & | decl_to_status, | ||
llvm::DenseMap< lldb::opaque_compiler_type_t, llvm::SmallSet< std::pair< llvm::StringRef, CompilerType >, 8 > > & | cxx_record_map | ||
) |
Definition at line 37 of file UdtRecordCompleter.cpp.
References lldb_private::ClangASTImporter::LayoutInfo::bit_size, lldb_private::npdb::UdtRecordCompleter::UdtTagRecord::cr, lldb_private::npdb::UdtRecordCompleter::UdtTagRecord::er, lldb_private::npdb::PdbTypeSymId::index, lldb_private::npdb::UdtRecordCompleter::Member::kind, m_cvr, m_id, m_index, m_layout, m_record, lldb_private::npdb::UdtRecordCompleter::Record::record, lldb_private::npdb::UdtRecordCompleter::Member::Struct, lldb_private::npdb::PdbIndex::tpi(), lldb_private::npdb::UdtRecordCompleter::Member::Union, and lldb_private::npdb::UdtRecordCompleter::UdtTagRecord::ur.
|
private |
Definition at line 71 of file UdtRecordCompleter.cpp.
References lldb_private::npdb::PdbAstBuilder::clang(), lldb_private::TypeSystemClang::CreateBaseClassSpecifier(), lldb_private::npdb::PdbAstBuilder::GetOrCreateType(), m_ast_builder, m_bases, m_index, lldb_private::npdb::PdbIndex::tpi(), and lldb_private::npdb::TranslateMemberAccess().
|
private |
Definition at line 343 of file UdtRecordCompleter.cpp.
References lldb_private::npdb::UdtRecordCompleter::Member::access, lldb_private::TypeSystemClang::AddFieldToRecordType(), AddMember(), lldb_private::npdb::SymbolFileNativePDB::anonymous_id, lldb_private::npdb::UdtRecordCompleter::Member::base_offset, lldb_private::ClangASTImporter::LayoutInfo::bit_size, lldb_private::npdb::UdtRecordCompleter::Member::bit_size, lldb_private::npdb::UdtRecordCompleter::Member::bitfield_width, lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), lldb::eAccessPublic, lldb::eLanguageTypeC_plus_plus, lldb_private::npdb::UdtRecordCompleter::Member::Field, lldb_private::ClangASTImporter::LayoutInfo::field_offsets, lldb_private::npdb::UdtRecordCompleter::Member::fields, lldb_private::npdb::PdbAstBuilder::GetClangASTImporter(), lldb_private::npdb::UdtRecordCompleter::Member::kind, m_ast_builder, m_decl_to_status, lldb_private::npdb::UdtRecordCompleter::Member::name, lldb_private::npdb::UdtRecordCompleter::Member::qt, lldb_private::npdb::DeclStatus::resolved, lldb_private::ClangASTMetadata::SetIsDynamicCXXType(), lldb_private::ClangASTImporter::SetRecordLayout(), lldb_private::ClangASTMetadata::SetUserID(), lldb_private::TypeSystemClang::StartTagDeclarationDefinition(), lldb_private::npdb::UdtRecordCompleter::Member::Struct, lldb_private::npdb::PdbAstBuilder::ToCompilerType(), lldb_private::npdb::DeclStatus::uid, and lldb_private::npdb::UdtRecordCompleter::Member::Union.
Referenced by AddMember(), and FinishRecord().
|
private |
Definition at line 92 of file UdtRecordCompleter.cpp.
References lldb_private::TypeSystemClang::AddMethodToCXXRecordType(), lldb_private::npdb::PdbAstBuilder::clang(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::npdb::PdbAstBuilder::GetOrCreateType(), m_ast_builder, m_cxx_record_map, m_derived_ct, lldb_private::TypeSystemClang::RequireCompleteType(), lldb_private::npdb::PdbAstBuilder::ToCompilerType(), and lldb_private::npdb::TranslateMemberAccess().
void UdtRecordCompleter::complete | ( | ) |
Definition at line 308 of file UdtRecordCompleter.cpp.
References lldb_private::TypeSystemClang::BuildIndirectFields(), lldb_private::npdb::PdbAstBuilder::clang(), lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), FinishRecord(), lldb_private::npdb::PdbAstBuilder::GetClangASTImporter(), lldb_private::CompilerType::GetOpaqueQualType(), m_ast_builder, m_bases, m_derived_ct, m_layout, m_tag_decl, lldb_private::TypeSystemClang::RequireCompleteType(), and lldb_private::ClangASTImporter::SetRecordLayout().
Referenced by lldb_private::npdb::PdbAstBuilder::CompleteTagDecl().
|
private |
Definition at line 404 of file UdtRecordCompleter.cpp.
References AddMember(), lldb_private::npdb::PdbAstBuilder::clang(), lldb_private::npdb::UdtRecordCompleter::Record::ConstructRecord(), lldb_private::npdb::UdtRecordCompleter::Member::fields, lldb_private::npdb::PdbAstBuilder::GetOrCreateDeclContextForUid(), m_ast_builder, m_derived_ct, m_id, m_layout, m_record, and lldb_private::npdb::UdtRecordCompleter::Record::record.
Referenced by complete().
|
private |
Definition at line 54 of file UdtRecordCompleter.h.
Referenced by AddBaseClassForTypeIndex(), AddMember(), AddMethod(), complete(), and FinishRecord().
|
private |
Definition at line 56 of file UdtRecordCompleter.h.
Referenced by AddBaseClassForTypeIndex(), and complete().
|
private |
Referenced by UdtRecordCompleter().
|
private |
Definition at line 61 of file UdtRecordCompleter.h.
Referenced by AddMethod().
|
private |
Definition at line 58 of file UdtRecordCompleter.h.
Referenced by AddMember().
|
private |
Definition at line 52 of file UdtRecordCompleter.h.
Referenced by AddMethod(), complete(), and FinishRecord().
|
private |
Definition at line 51 of file UdtRecordCompleter.h.
Referenced by FinishRecord(), and UdtRecordCompleter().
|
private |
Definition at line 55 of file UdtRecordCompleter.h.
Referenced by AddBaseClassForTypeIndex(), and UdtRecordCompleter().
|
private |
Definition at line 57 of file UdtRecordCompleter.h.
Referenced by complete(), FinishRecord(), and UdtRecordCompleter().
|
private |
Definition at line 128 of file UdtRecordCompleter.h.
Referenced by FinishRecord(), and UdtRecordCompleter().
|
private |
Definition at line 53 of file UdtRecordCompleter.h.
Referenced by complete().