clang 20.0.0git
|
An external AST source that overrides the layout of a specified set of record types. More...
#include "clang/Frontend/LayoutOverrideSource.h"
Public Member Functions | |
LayoutOverrideSource (StringRef Filename) | |
Create a new AST source that overrides the layout of some 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. | |
Public Member Functions inherited from clang::ExternalASTSource | |
ExternalASTSource ()=default | |
virtual | ~ExternalASTSource () |
uint32_t | getGeneration () const |
Get the current generation of this AST source. | |
virtual Decl * | GetExternalDecl (GlobalDeclID ID) |
Resolve a declaration ID into a declaration, potentially building a new declaration. | |
virtual Selector | GetExternalSelector (uint32_t ID) |
Resolve a selector ID into a selector. | |
virtual uint32_t | GetNumExternalSelectors () |
Returns the number of selectors known to the external AST source. | |
virtual Stmt * | GetExternalDeclStmt (uint64_t Offset) |
Resolve the offset of a statement in the decl stream into a statement. | |
virtual CXXCtorInitializer ** | GetExternalCXXCtorInitializers (uint64_t Offset) |
Resolve the offset of a set of C++ constructor initializers in the decl stream into an array of initializers. | |
virtual CXXBaseSpecifier * | GetExternalCXXBaseSpecifiers (uint64_t Offset) |
Resolve the offset of a set of C++ base specifiers in the decl stream into an array of specifiers. | |
virtual void | updateOutOfDateIdentifier (const IdentifierInfo &II) |
Update an out-of-date identifier. | |
virtual bool | FindExternalVisibleDeclsByName (const DeclContext *DC, DeclarationName Name) |
Find all declarations with the given name in the given context, and add them to the context by calling SetExternalVisibleDeclsForName or SetNoExternalVisibleDeclsForName. | |
virtual void | completeVisibleDeclsMap (const DeclContext *DC) |
Ensures that the table of all visible declarations inside this context is up to date. | |
virtual Module * | getModule (unsigned ID) |
Retrieve the module that corresponds to the given module ID. | |
virtual std::optional< ASTSourceDescriptor > | getSourceDescriptor (unsigned ID) |
Return a descriptor for the corresponding module, if one exists. | |
virtual ExtKind | hasExternalDefinitions (const Decl *D) |
virtual void | FindExternalLexicalDecls (const DeclContext *DC, llvm::function_ref< bool(Decl::Kind)> IsKindWeWant, SmallVectorImpl< Decl * > &Result) |
Finds all declarations lexically contained within the given DeclContext, after applying an optional filter predicate. | |
void | FindExternalLexicalDecls (const DeclContext *DC, SmallVectorImpl< Decl * > &Result) |
Finds all declarations lexically contained within the given DeclContext. | |
virtual void | FindFileRegionDecls (FileID File, unsigned Offset, unsigned Length, SmallVectorImpl< Decl * > &Decls) |
Get the decls that are contained in a file in the Offset/Length range. | |
virtual void | CompleteRedeclChain (const Decl *D) |
Gives the external AST source an opportunity to complete the redeclaration chain for a declaration. | |
virtual void | CompleteType (TagDecl *Tag) |
Gives the external AST source an opportunity to complete an incomplete type. | |
virtual void | CompleteType (ObjCInterfaceDecl *Class) |
Gives the external AST source an opportunity to complete an incomplete Objective-C class. | |
virtual void | ReadComments () |
Loads comment ranges. | |
virtual void | StartedDeserializing () |
Notify ExternalASTSource that we started deserialization of a decl or type so until FinishedDeserializing is called there may be decls that are initializing. | |
virtual void | FinishedDeserializing () |
Notify ExternalASTSource that we finished the deserialization of a decl or type. | |
virtual void | StartTranslationUnit (ASTConsumer *Consumer) |
Function that will be invoked when we begin parsing a new translation unit involving this external AST source. | |
virtual void | PrintStats () |
Print any statistics that have been gathered regarding the external AST source. | |
virtual 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) |
Perform layout on the given record. | |
MemoryBufferSizes | getMemoryBufferSizes () const |
Return the amount of memory used by memory buffers, breaking down by heap-backed versus mmap'ed memory. | |
virtual void | getMemoryBufferSizes (MemoryBufferSizes &sizes) const |
virtual bool | isA (const void *ClassID) const |
LLVM-style RTTI. | |
Additional Inherited Members | |
Public Types inherited from clang::ExternalASTSource | |
enum | ExtKind { EK_Always , EK_Never , EK_ReplyHazy } |
Static Public Member Functions inherited from clang::ExternalASTSource | |
static bool | classof (const ExternalASTSource *S) |
Protected Member Functions inherited from clang::ExternalASTSource | |
uint32_t | incrementGeneration (ASTContext &C) |
Increment the current generation. | |
Static Protected Member Functions inherited from clang::ExternalASTSource | |
static DeclContextLookupResult | SetExternalVisibleDeclsForName (const DeclContext *DC, DeclarationName Name, ArrayRef< NamedDecl * > Decls) |
static DeclContextLookupResult | SetNoExternalVisibleDeclsForName (const DeclContext *DC, DeclarationName Name) |
An external AST source that overrides the layout of a specified set of record types.
This class is used only for testing the ability of external AST sources to override the layout of record types. Its input is the output format of the command-line argument -fdump-record-layouts.
Definition at line 24 of file LayoutOverrideSource.h.
|
explicit |
Create a new AST source that overrides the layout of some set of record types.
The file is the result of passing -fdump-record-layouts to a file.
Definition at line 42 of file LayoutOverrideSource.cpp.
References Filename, clang::CharUnits::fromQuantity(), clang::isDigit(), clang::isWhitespace(), clang::Line, parseName(), and parseUnsigned().
LLVM_DUMP_METHOD void LayoutOverrideSource::dump | ( | ) |
Dump the overridden layouts.
Definition at line 245 of file LayoutOverrideSource.cpp.
|
overridevirtual |
If this particular record type has an overridden layout, return that layout.
Reimplemented from clang::ExternalASTSource.
Definition at line 192 of file LayoutOverrideSource.cpp.