LLDB  mainline
Classes | Public Types | Public Member Functions | List of all members
lldb_private::ClangASTImporter Class Reference

#include <ClangASTImporter.h>

Classes

struct  LayoutInfo
 
class  MapCompleter
 

Public Types

typedef std::vector< std::pair< lldb::ModuleSP, CompilerDeclContext > > NamespaceMap
 
typedef std::shared_ptr< NamespaceMapNamespaceMapSP
 

Public Member Functions

 ClangASTImporter ()
 
clang::QualType CopyType (clang::ASTContext *dst_ctx, clang::ASTContext *src_ctx, clang::QualType type)
 
lldb::opaque_compiler_type_t CopyType (clang::ASTContext *dst_ctx, clang::ASTContext *src_ctx, lldb::opaque_compiler_type_t type)
 
CompilerType CopyType (ClangASTContext &dst, const CompilerType &src_type)
 
clang::Decl * CopyDecl (clang::ASTContext *dst_ctx, clang::ASTContext *src_ctx, clang::Decl *decl)
 
lldb::opaque_compiler_type_t DeportType (clang::ASTContext *dst_ctx, clang::ASTContext *src_ctx, lldb::opaque_compiler_type_t type)
 
clang::Decl * DeportDecl (clang::ASTContext *dst_ctx, clang::ASTContext *src_ctx, clang::Decl *decl)
 
void InsertRecordDecl (clang::RecordDecl *decl, const LayoutInfo &layout)
 
bool LayoutRecordType (const clang::RecordDecl *record_decl, uint64_t &bit_size, uint64_t &alignment, llvm::DenseMap< const clang::FieldDecl *, uint64_t > &field_offsets, llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > &base_offsets, llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > &vbase_offsets)
 
bool CanImport (const CompilerType &type)
 
bool Import (const CompilerType &type)
 
bool CompleteType (const CompilerType &compiler_type)
 
void CompleteDecl (clang::Decl *decl)
 
bool CompleteTagDecl (clang::TagDecl *decl)
 
bool CompleteTagDeclWithOrigin (clang::TagDecl *decl, clang::TagDecl *origin)
 
bool CompleteObjCInterfaceDecl (clang::ObjCInterfaceDecl *interface_decl)
 
bool CompleteAndFetchChildren (clang::QualType type)
 
bool RequireCompleteType (clang::QualType type)
 
bool ResolveDeclOrigin (const clang::Decl *decl, clang::Decl **original_decl, clang::ASTContext **original_ctx)
 
void SetDeclOrigin (const clang::Decl *decl, clang::Decl *original_decl)
 
ClangASTMetadataGetDeclMetadata (const clang::Decl *decl)
 
void RegisterNamespaceMap (const clang::NamespaceDecl *decl, NamespaceMapSP &namespace_map)
 
NamespaceMapSP GetNamespaceMap (const clang::NamespaceDecl *decl)
 
void BuildNamespaceMap (const clang::NamespaceDecl *decl)
 
void InstallMapCompleter (clang::ASTContext *dst_ctx, MapCompleter &completer)
 
void ForgetDestination (clang::ASTContext *dst_ctx)
 
void ForgetSource (clang::ASTContext *dst_ctx, clang::ASTContext *src_ctx)
 

Detailed Description

Definition at line 84 of file ClangASTImporter.h.

Member Typedef Documentation

◆ NamespaceMap

typedef std::vector<std::pair<lldb::ModuleSP, CompilerDeclContext> > lldb_private::ClangASTImporter::NamespaceMap

Definition at line 172 of file ClangASTImporter.h.

◆ NamespaceMapSP

Definition at line 173 of file ClangASTImporter.h.

Constructor & Destructor Documentation

◆ ClangASTImporter()

lldb_private::ClangASTImporter::ClangASTImporter ( )
inline

Definition at line 98 of file ClangASTImporter.h.

Member Function Documentation

◆ BuildNamespaceMap()

void ClangASTImporter::BuildNamespaceMap ( const clang::NamespaceDecl *  decl)

Definition at line 770 of file ClangASTImporter.cpp.

◆ CanImport()

bool ClangASTImporter::CanImport ( const CompilerType type)

◆ CompleteAndFetchChildren()

bool ClangASTImporter::CompleteAndFetchChildren ( clang::QualType  type)

Definition at line 623 of file ClangASTImporter.cpp.

◆ CompleteDecl()

void ClangASTImporter::CompleteDecl ( clang::Decl *  decl)

◆ CompleteObjCInterfaceDecl()

bool ClangASTImporter::CompleteObjCInterfaceDecl ( clang::ObjCInterfaceDecl *  interface_decl)

◆ CompleteTagDecl()

bool ClangASTImporter::CompleteTagDecl ( clang::TagDecl *  decl)

◆ CompleteTagDeclWithOrigin()

bool ClangASTImporter::CompleteTagDeclWithOrigin ( clang::TagDecl *  decl,
clang::TagDecl *  origin 
)

◆ CompleteType()

bool ClangASTImporter::CompleteType ( const CompilerType compiler_type)

◆ CopyDecl()

clang::Decl * ClangASTImporter::CopyDecl ( clang::ASTContext *  dst_ctx,
clang::ASTContext *  src_ctx,
clang::Decl *  decl 
)

◆ CopyType() [1/3]

clang::QualType ClangASTImporter::CopyType ( clang::ASTContext *  dst_ctx,
clang::ASTContext *  src_ctx,
clang::QualType  type 
)

Definition at line 58 of file ClangASTImporter.cpp.

Referenced by DWARFASTParserClang::ParseTypeFromDWO().

◆ CopyType() [2/3]

lldb::opaque_compiler_type_t ClangASTImporter::CopyType ( clang::ASTContext *  dst_ctx,
clang::ASTContext *  src_ctx,
lldb::opaque_compiler_type_t  type 
)

Definition at line 72 of file ClangASTImporter.cpp.

◆ CopyType() [3/3]

CompilerType ClangASTImporter::CopyType ( ClangASTContext dst,
const CompilerType src_type 
)

◆ DeportDecl()

clang::Decl * ClangASTImporter::DeportDecl ( clang::ASTContext *  dst_ctx,
clang::ASTContext *  src_ctx,
clang::Decl *  decl 
)

◆ DeportType()

lldb::opaque_compiler_type_t ClangASTImporter::DeportType ( clang::ASTContext *  dst_ctx,
clang::ASTContext *  src_ctx,
lldb::opaque_compiler_type_t  type 
)

◆ ForgetDestination()

void ClangASTImporter::ForgetDestination ( clang::ASTContext *  dst_ctx)

◆ ForgetSource()

void ClangASTImporter::ForgetSource ( clang::ASTContext *  dst_ctx,
clang::ASTContext *  src_ctx 
)

◆ GetDeclMetadata()

ClangASTMetadata * ClangASTImporter::GetDeclMetadata ( const clang::Decl *  decl)

◆ GetNamespaceMap()

ClangASTImporter::NamespaceMapSP ClangASTImporter::GetNamespaceMap ( const clang::NamespaceDecl *  decl)

Definition at line 757 of file ClangASTImporter.cpp.

◆ Import()

bool ClangASTImporter::Import ( const CompilerType type)

◆ InsertRecordDecl()

void ClangASTImporter::InsertRecordDecl ( clang::RecordDecl *  decl,
const LayoutInfo layout 
)

◆ InstallMapCompleter()

void lldb_private::ClangASTImporter::InstallMapCompleter ( clang::ASTContext *  dst_ctx,
MapCompleter completer 
)
inline

Definition at line 195 of file ClangASTImporter.h.

◆ LayoutRecordType()

bool ClangASTImporter::LayoutRecordType ( const clang::RecordDecl *  record_decl,
uint64_t &  bit_size,
uint64_t &  alignment,
llvm::DenseMap< const clang::FieldDecl *, uint64_t > &  field_offsets,
llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > &  base_offsets,
llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > &  vbase_offsets 
)

◆ RegisterNamespaceMap()

void ClangASTImporter::RegisterNamespaceMap ( const clang::NamespaceDecl *  decl,
NamespaceMapSP namespace_map 
)

Definition at line 749 of file ClangASTImporter.cpp.

◆ RequireCompleteType()

bool ClangASTImporter::RequireCompleteType ( clang::QualType  type)

Definition at line 681 of file ClangASTImporter.cpp.

Referenced by CompleteExternalTagDeclType().

◆ ResolveDeclOrigin()

bool lldb_private::ClangASTImporter::ResolveDeclOrigin ( const clang::Decl *  decl,
clang::Decl **  original_decl,
clang::ASTContext **  original_ctx 
)
inline

Definition at line 150 of file ClangASTImporter.h.

◆ SetDeclOrigin()

void ClangASTImporter::SetDeclOrigin ( const clang::Decl *  decl,
clang::Decl *  original_decl 
)

Definition at line 733 of file ClangASTImporter.cpp.


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