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,
42 clang::DeclarationName Name,
43 const clang::DeclContext *OriginalDC)
override;
47 void CompleteType(clang::ObjCInterfaceDecl *objc_decl)
override;
50 const clang::RecordDecl *Record, uint64_t &Size, uint64_t &Alignment,
51 llvm::DenseMap<const clang::FieldDecl *, uint64_t> &FieldOffsets,
52 llvm::DenseMap<const clang::CXXRecordDecl *, clang::CharUnits>
54 llvm::DenseMap<const clang::CXXRecordDecl *, clang::CharUnits>
55 &VirtualBaseOffsets)
override;
61 std::optional<clang::ASTSourceDescriptor>
70 llvm::DenseMap<clang::Module *, unsigned>
m_ids;
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