10 #ifndef LLVM_CLANG_FRONTEND_LAYOUTOVERRIDESOURCE_H
11 #define LLVM_CLANG_FRONTEND_LAYOUTOVERRIDESOURCE_H
15 #include "llvm/ADT/StringMap.h"
16 #include "llvm/ADT/StringRef.h"
39 llvm::StringMap<Layout> Layouts;
52 uint64_t &Size, uint64_t &Alignment,
53 llvm::DenseMap<const FieldDecl *, uint64_t> &FieldOffsets,
54 llvm::DenseMap<const CXXRecordDecl *, CharUnits> &BaseOffsets,
RecordDecl - 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.
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.