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;
57 uint64_t &Size, uint64_t &Alignment,
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.
Represents a struct/union/class.
The JSON file list parser is used to communicate input to InstallAPI.