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,
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
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.
Represents a struct/union/class.