Go to the documentation of this file.
9 #ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBASTBUILDER_H
10 #define LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBASTBUILDER_H
12 #include "llvm/ADT/DenseMap.h"
13 #include "llvm/ADT/StringRef.h"
36 class ClangASTImporter;
58 llvm::Optional<lldb_private::CompilerDecl>
99 clang::QualType
CreateArrayType(
const llvm::codeview::ArrayRecord &array);
101 const llvm::codeview::TagRecord &record);
103 const llvm::codeview::EnumRecord &record);
106 llvm::codeview::CallingConvention calling_convention);
110 clang::FunctionDecl &function_decl,
114 llvm::codeview::CVSymbol sym,
115 clang::DeclContext &scope);
120 clang::DeclContext &context);
123 clang::FunctionDecl *
126 uint32_t param_count, clang::StorageClass func_storage,
127 bool is_inline, clang::DeclContext *parent);
133 std::pair<clang::DeclContext *, std::string>
135 std::pair<clang::DeclContext *, std::string>
152 llvm::SmallSet<std::pair<llvm::StringRef, CompilerType>, 8>>
159 #endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBASTBUILDER_H
llvm::DenseMap< lldb::user_id_t, clang::Decl * > m_uid_to_decl
clang::QualType CreateEnumType(PdbTypeSymId id, const llvm::codeview::EnumRecord &record)
CompilerType ToCompilerType(clang::QualType qt)
std::pair< clang::DeclContext *, std::string > CreateDeclInfoForType(const llvm::codeview::TagRecord &record, TypeIndex ti)
clang::VarDecl * CreateVariableDecl(PdbSymUid uid, llvm::codeview::CVSymbol sym, clang::DeclContext &scope)
ClangASTImporter m_importer
std::pair< clang::DeclContext *, std::string > CreateDeclInfoForUndecoratedName(llvm::StringRef uname)
PdbIndex - Lazy access to the important parts of a PDB file.
clang::BlockDecl * GetOrCreateBlockDecl(PdbCompilandSymId block_id)
clang::DeclContext * FromCompilerDeclContext(CompilerDeclContext context)
clang::QualType CreateRecordType(PdbTypeSymId id, const llvm::codeview::TagRecord &record)
clang::NamespaceDecl * GetOrCreateNamespaceDecl(const char *name, clang::DeclContext &context)
TypeSystemClang & clang()
clang::TypedefNameDecl * GetOrCreateTypedefDecl(PdbGlobalSymId id)
clang::FunctionDecl * CreateFunctionDeclFromId(PdbTypeSymId func_tid, PdbCompilandSymId func_sid)
TypeSystemClang & m_clang
lldb_private::CompilerDeclContext GetTranslationUnitDecl()
clang::DeclContext * GetParentDeclContext(PdbSymUid uid)
Represents a generic declaration such as a function declaration.
clang::FunctionDecl * GetOrCreateFunctionDecl(PdbCompilandSymId func_id)
void CreateFunctionParameters(PdbCompilandSymId func_id, clang::FunctionDecl &function_decl, uint32_t param_count)
clang::QualType CreateType(PdbTypeSymId type)
BasicType
Basic types enumeration for the public API SBType::GetBasicType().
DeclStatus(lldb::user_id_t uid, bool resolved)
clang::QualType GetBasicType(lldb::BasicType type)
clang::Decl * FromCompilerDecl(CompilerDecl decl)
CompilerDeclContext ToCompilerDeclContext(clang::DeclContext &context)
clang::Decl * TryGetDecl(PdbSymUid uid) const
llvm::codeview::TypeIndex TypeIndex
bool CompleteTagDecl(clang::TagDecl &tag)
void Dump(Stream &stream)
clang::QualType CreateArrayType(const llvm::codeview::ArrayRecord &array)
bool CompleteType(clang::QualType qt)
llvm::DenseMap< lldb::user_id_t, clang::QualType > m_uid_to_type
Represents a generic declaration context in a program.
clang::QualType CreateSimpleType(TypeIndex ti)
clang::DeclContext * GetParentDeclContextForSymbol(const llvm::codeview::CVSymbol &sym)
llvm::DenseMap< clang::Decl *, DeclStatus > m_decl_to_status
clang::QualType CreatePointerType(const llvm::codeview::PointerRecord &pointer)
clang::FunctionDecl * GetOrCreateInlinedFunctionDecl(PdbCompilandSymId inlinesite_id)
ClangASTImporter & importer()
clang::DeclContext * GetOrCreateDeclContextForUid(PdbSymUid uid)
void ParseDeclsForContext(clang::DeclContext &context)
clang::QualType CreateModifierType(const llvm::codeview::ModifierRecord &modifier)
void ParseAllNamespacesPlusChildrenOf(llvm::Optional< llvm::StringRef > parent)
Manages and observes all Clang AST node importing in LLDB.
llvm::DenseMap< TypeIndex, TypeIndex > m_parent_types
llvm::DenseMap< lldb::opaque_compiler_type_t, llvm::SmallSet< std::pair< llvm::StringRef, CompilerType >, 8 > > m_cxx_record_map
clang::QualType GetOrCreateType(PdbTypeSymId type)
Generic representation of a type in a programming language.
clang::FunctionDecl * CreateFunctionDecl(PdbCompilandSymId func_id, llvm::StringRef func_name, TypeIndex func_ti, CompilerType func_ct, uint32_t param_count, clang::StorageClass func_storage, bool is_inline, clang::DeclContext *parent)
A class that represents a running process on the host machine.
llvm::Optional< lldb_private::CompilerDecl > GetOrCreateDeclForUid(PdbSymUid uid)
CompilerDecl ToCompilerDecl(clang::Decl &decl)
clang::QualType CreateFunctionType(TypeIndex args_type_idx, TypeIndex return_type_idx, llvm::codeview::CallingConvention calling_convention)
clang::VarDecl * GetOrCreateVariableDecl(PdbCompilandSymId scope_id, PdbCompilandSymId var_id)
A TypeSystem implementation based on Clang.
void ParseBlockChildren(PdbCompilandSymId block_id)
void ParseDeclsForSimpleContext(clang::DeclContext &context)
clang::Decl * GetOrCreateSymbolForId(PdbCompilandSymId id)
void * opaque_compiler_type_t
PdbAstBuilder(ObjectFile &obj, PdbIndex &index, TypeSystemClang &clang)