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" 38 llvm::StringMap<Layout> Layouts;
51 uint64_t &Size, uint64_t &Alignment,
52 llvm::DenseMap<const FieldDecl *, uint64_t> &FieldOffsets,
53 llvm::DenseMap<const CXXRecordDecl *, CharUnits> &BaseOffsets,
Represents a struct/union/class.
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.
CharUnits - This is an opaque type for sizes expressed in character units.
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified...
void dump()
Dump the overridden layouts.
Abstract interface for external sources of AST nodes.
Dataflow Directional Tag Classes.
LayoutOverrideSource(StringRef Filename)
Create a new AST source that overrides the layout of some set of record types.
An external AST source that overrides the layout of a specified set of record types.
Represents a C++ struct/union/class.