9 #ifndef LLVM_CLANG_FRONTEND_LAYOUTOVERRIDESOURCE_H
10 #define LLVM_CLANG_FRONTEND_LAYOUTOVERRIDESOURCE_H
14 #include "llvm/ADT/StringMap.h"
15 #include "llvm/ADT/StringRef.h"
44 llvm::StringMap<Layout> Layouts;
58 llvm::DenseMap<const FieldDecl *, uint64_t> &FieldOffsets,
59 llvm::DenseMap<const CXXRecordDecl *, CharUnits> &BaseOffsets,
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
llvm::MachO::Record Record
Represents a C++ struct/union/class.
CharUnits - This is an opaque type for sizes expressed in character units.
Abstract interface for external sources of AST nodes.
An external AST source that overrides the layout of a specified set of record types.
bool layoutRecordType(const RecordDecl *Record, uint64_t &Size, uint64_t &Alignment, llvm::DenseMap< const FieldDecl *, uint64_t > &FieldOffsets, llvm::DenseMap< const CXXRecordDecl *, CharUnits > &BaseOffsets, llvm::DenseMap< const CXXRecordDecl *, CharUnits > &VirtualBaseOffsets) override
If this particular record type has an overridden layout, return that layout.
void dump()
Dump the overridden layouts.
LayoutOverrideSource(StringRef Filename)
Create a new AST source that overrides the layout of some set of record types.
Represents a struct/union/class.
The JSON file list parser is used to communicate input to InstallAPI.