LLDB mainline
lldb_private::npdb::UdtRecordCompleter Class Reference

#include <UdtRecordCompleter.h>

Inheritance diagram for lldb_private::npdb::UdtRecordCompleter:
[legend]

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

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
CompilerTypem_derived_ct
clang::TagDecl & m_tag_decl
PdbAstBuilderm_ast_builder
PdbIndexm_index
std::vector< IndexedBasem_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

Detailed Description

Definition at line 40 of file UdtRecordCompleter.h.

Member Typedef Documentation

◆ IndexedBase

Initial value:
std::pair<uint64_t, std::unique_ptr<clang::CXXBaseSpecifier>>

Definition at line 41 of file UdtRecordCompleter.h.

◆ MemberUP

Definition at line 79 of file UdtRecordCompleter.h.

Constructor & Destructor Documentation

◆ UdtRecordCompleter()

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 )

Member Function Documentation

◆ AddBaseClassForTypeIndex()

clang::QualType UdtRecordCompleter::AddBaseClassForTypeIndex ( llvm::codeview::TypeIndex ti,
llvm::codeview::MemberAccess access,
std::optional< uint64_t > vtable_idx = std::optional<uint64_t>() )
private

◆ AddMember()

uint64_t UdtRecordCompleter::AddMember ( TypeSystemClang & clang,
Member * field,
uint64_t bit_offset,
CompilerType parent_ct,
ClangASTImporter::LayoutInfo & parent_layout,
clang::DeclContext * decl_ctx )
private

◆ AddMethod()

void UdtRecordCompleter::AddMethod ( llvm::StringRef name,
llvm::codeview::TypeIndex type_idx,
llvm::codeview::MemberAccess access,
llvm::codeview::MethodOptions options,
llvm::codeview::MemberAttributes attrs )
private

◆ complete()

◆ FinishRecord()

void UdtRecordCompleter::FinishRecord ( )
private

Definition at line 403 of file UdtRecordCompleter.cpp.

References AddMember(), m_ast_builder, m_derived_ct, m_id, m_layout, and m_record.

Referenced by complete().

Member Data Documentation

◆ m_ast_builder

PdbAstBuilder& lldb_private::npdb::UdtRecordCompleter::m_ast_builder
private

◆ m_bases

std::vector<IndexedBase> lldb_private::npdb::UdtRecordCompleter::m_bases
private

Definition at line 56 of file UdtRecordCompleter.h.

Referenced by AddBaseClassForTypeIndex(), and complete().

◆ m_cvr

union lldb_private::npdb::UdtRecordCompleter::UdtTagRecord lldb_private::npdb::UdtRecordCompleter::m_cvr
private

◆ m_cxx_record_map

llvm::DenseMap<lldb::opaque_compiler_type_t, llvm::SmallSet<std::pair<llvm::StringRef, CompilerType>, 8> >& lldb_private::npdb::UdtRecordCompleter::m_cxx_record_map
private

Definition at line 61 of file UdtRecordCompleter.h.

Referenced by AddMethod(), and UdtRecordCompleter().

◆ m_decl_to_status

llvm::DenseMap<clang::Decl *, DeclStatus>& lldb_private::npdb::UdtRecordCompleter::m_decl_to_status
private

Definition at line 58 of file UdtRecordCompleter.h.

Referenced by AddMember(), and UdtRecordCompleter().

◆ m_derived_ct

CompilerType& lldb_private::npdb::UdtRecordCompleter::m_derived_ct
private

Definition at line 52 of file UdtRecordCompleter.h.

Referenced by AddMethod(), complete(), FinishRecord(), and UdtRecordCompleter().

◆ m_id

PdbTypeSymId lldb_private::npdb::UdtRecordCompleter::m_id
private

Definition at line 51 of file UdtRecordCompleter.h.

Referenced by FinishRecord(), and UdtRecordCompleter().

◆ m_index

PdbIndex& lldb_private::npdb::UdtRecordCompleter::m_index
private

Definition at line 55 of file UdtRecordCompleter.h.

Referenced by AddBaseClassForTypeIndex(), and UdtRecordCompleter().

◆ m_layout

ClangASTImporter::LayoutInfo lldb_private::npdb::UdtRecordCompleter::m_layout
private

Definition at line 57 of file UdtRecordCompleter.h.

Referenced by complete(), and FinishRecord().

◆ m_record

Record lldb_private::npdb::UdtRecordCompleter::m_record
private

Definition at line 128 of file UdtRecordCompleter.h.

Referenced by FinishRecord().

◆ m_tag_decl

clang::TagDecl& lldb_private::npdb::UdtRecordCompleter::m_tag_decl
private

Definition at line 53 of file UdtRecordCompleter.h.

Referenced by complete(), and UdtRecordCompleter().


The documentation for this class was generated from the following files: