19 #include "llvm/Support/ErrorHandling.h"
21 using namespace clang;
56 const RecordDecl *Record, uint64_t &Size, uint64_t &Alignment,
57 llvm::DenseMap<const FieldDecl *, uint64_t> &FieldOffsets,
58 llvm::DenseMap<const CXXRecordDecl *, CharUnits> &BaseOffsets,
59 llvm::DenseMap<const CXXRecordDecl *, CharUnits> &VirtualBaseOffsets) {
108 uint32_t OldGeneration = CurrentGeneration;
114 CurrentGeneration =
P->incrementGeneration(C);
118 if (!++CurrentGeneration)
119 llvm::report_fatal_error(
"generation counter overflowed",
false);
122 return OldGeneration;
Defines the clang::ASTContext interface.
Smart pointer class that efficiently represents Objective-C method names.
virtual Decl * GetExternalDecl(uint32_t ID)
Resolve a declaration ID into a declaration, potentially building a new declaration.
virtual uint32_t GetNumExternalSelectors()
Returns the number of selectors known to 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.
virtual void PrintStats()
Print any statistics that have been gathered regarding the external AST source.
virtual void CompleteRedeclChain(const Decl *D)
Gives the external AST source an opportunity to complete the redeclaration chain for a declaration...
virtual Selector GetExternalSelector(uint32_t ID)
Resolve a selector ID into a selector.
virtual void StartedDeserializing()
Notify ExternalASTSource that we started deserialization of a decl or type so until FinishedDeseriali...
MemoryBufferSizes getMemoryBufferSizes() const
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
uint32_t incrementGeneration(ASTContext &C)
Increment the current generation.
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...
Describes a module or submodule.
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. Length can be 0 to indicate a ...
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 callin...
virtual void FinishedDeserializing()
Notify ExternalASTSource that we finished the deserialization of a decl or type. Must be paired with ...
virtual ExternalLoadResult FindExternalLexicalDecls(const DeclContext *DC, bool(*isKindWeWant)(Decl::Kind), SmallVectorImpl< Decl * > &Result)
Finds all declarations lexically contained within the given DeclContext, after applying an optional f...
Represents an ObjC class declaration.
virtual void completeVisibleDeclsMap(const DeclContext *DC)
Ensures that the table of all visible declarations inside this context is up to date.
ID
Defines the set of possible language-specific address spaces.
ExternalLoadResult
Enumeration describing the result of loading information from an external source. ...
The external information has already been loaded, and therefore no additional processing is required...
ExternalASTSource * getExternalSource() const
Retrieve a pointer to the external AST source associated with this AST context, if any...
virtual Stmt * GetExternalDeclStmt(uint64_t Offset)
Resolve the offset of a statement in the decl stream into a statement.
TagDecl - Represents the declaration of a struct/union/class/enum.
An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...
virtual void StartTranslationUnit(ASTConsumer *Consumer)
Function that will be invoked when we begin parsing a new translation unit involving this external AS...
virtual void ReadComments()
Loads comment ranges.
virtual CXXCtorInitializer ** GetExternalCXXCtorInitializers(uint64_t Offset)
Resolve the offset of a set of C++ constructor initializers in the decl stream into an array of initi...
virtual ~ExternalASTSource()
Represents a C++ base or member initializer.
virtual void CompleteType(TagDecl *Tag)
Gives the external AST source an opportunity to complete an incomplete type.
Represents a base class of a C++ class.
virtual llvm::Optional< ASTSourceDescriptor > getSourceDescriptor(unsigned ID)
Return a descriptor for the corresponding module, if one exists.
Kind
Lists the kind of concrete classes of Decl.
Holds everything needed to generate debug info for an imported module or precompiled header file...