9#ifndef LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGEXTERNALASTSOURCECALLBACKS_H
10#define LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGEXTERNALASTSOURCECALLBACKS_H
13#include "clang/Basic/ASTSourceDescriptor.h"
30 bool isA(
const void *ClassID)
const override {
return ClassID == &
ID; }
31 static bool classof(
const clang::ExternalASTSource *s) {
return s->isA(&
ID); }
36 const clang::DeclContext *DC,
37 llvm::function_ref<
bool(clang::Decl::Kind)> IsKindWeWant,
41 clang::DeclarationName Name)
override;
45 void CompleteType(clang::ObjCInterfaceDecl *objc_decl)
override;
48 const clang::RecordDecl *Record, uint64_t &Size, uint64_t &Alignment,
49 llvm::DenseMap<const clang::FieldDecl *, uint64_t> &FieldOffsets,
50 llvm::DenseMap<const clang::CXXRecordDecl *, clang::CharUnits>
52 llvm::DenseMap<const clang::CXXRecordDecl *, clang::CharUnits>
53 &VirtualBaseOffsets)
override;
59 std::optional<clang::ASTSourceDescriptor>
68 llvm::DenseMap<clang::Module *, unsigned>
m_ids;
static char ID
LLVM RTTI support.
std::vector< clang::Module * > m_modules
static bool classof(const clang::ExternalASTSource *s)
TypeSystemClang & GetTypeSystem() const
bool FindExternalVisibleDeclsByName(const clang::DeclContext *DC, clang::DeclarationName Name) override
OptionalClangModuleID RegisterModule(clang::Module *module)
ClangExternalASTSourceCallbacks(TypeSystemClang &ast)
std::optional< clang::ASTSourceDescriptor > getSourceDescriptor(unsigned ID) override
Module-related methods.
void CompleteType(clang::TagDecl *tag_decl) override
OptionalClangModuleID GetIDForModule(clang::Module *module)
bool isA(const void *ClassID) const override
LLVM RTTI support.
clang::Module * getModule(unsigned ID) override
bool layoutRecordType(const clang::RecordDecl *Record, uint64_t &Size, uint64_t &Alignment, llvm::DenseMap< const clang::FieldDecl *, uint64_t > &FieldOffsets, llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > &BaseOffsets, llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > &VirtualBaseOffsets) override
void FindExternalLexicalDecls(const clang::DeclContext *DC, llvm::function_ref< bool(clang::Decl::Kind)> IsKindWeWant, llvm::SmallVectorImpl< clang::Decl * > &Result) override
llvm::DenseMap< clang::Module *, unsigned > m_ids
A TypeSystem implementation based on Clang.
A class that represents a running process on the host machine.