clang 20.0.0git
|
An abstract interface that should be implemented by external AST sources that also provide information for semantic analysis. More...
#include "clang/Sema/MultiplexExternalSemaSource.h"
Public Member Functions | |
MultiplexExternalSemaSource (ExternalSemaSource *S1, ExternalSemaSource *S2) | |
Constructs a new multiplexing external sema source and appends the given element to it. | |
~MultiplexExternalSemaSource () override | |
void | AddSource (ExternalSemaSource *Source) |
Appends new source to the source list. | |
Decl * | GetExternalDecl (GlobalDeclID ID) override |
Resolve a declaration ID into a declaration, potentially building a new declaration. | |
void | CompleteRedeclChain (const Decl *D) override |
Complete the redeclaration chain if it's been extended since the previous generation of the AST source. | |
Selector | GetExternalSelector (uint32_t ID) override |
Resolve a selector ID into a selector. | |
uint32_t | GetNumExternalSelectors () override |
Returns the number of selectors known to the external AST source. | |
Stmt * | GetExternalDeclStmt (uint64_t Offset) override |
Resolve the offset of a statement in the decl stream into a statement. | |
CXXBaseSpecifier * | GetExternalCXXBaseSpecifiers (uint64_t Offset) override |
Resolve the offset of a set of C++ base specifiers in the decl stream into an array of specifiers. | |
CXXCtorInitializer ** | GetExternalCXXCtorInitializers (uint64_t Offset) override |
Resolve a handle to a list of ctor initializers into the list of initializers themselves. | |
ExtKind | hasExternalDefinitions (const Decl *D) override |
bool | FindExternalVisibleDeclsByName (const DeclContext *DC, DeclarationName Name) override |
Find all declarations with the given name in the given context. | |
void | completeVisibleDeclsMap (const DeclContext *DC) override |
Ensures that the table of all visible declarations inside this context is up to date. | |
void | FindExternalLexicalDecls (const DeclContext *DC, llvm::function_ref< bool(Decl::Kind)> IsKindWeWant, SmallVectorImpl< Decl * > &Result) override |
Finds all declarations lexically contained within the given DeclContext, after applying an optional filter predicate. | |
void | FindFileRegionDecls (FileID File, unsigned Offset, unsigned Length, SmallVectorImpl< Decl * > &Decls) override |
Get the decls that are contained in a file in the Offset/Length range. | |
void | CompleteType (TagDecl *Tag) override |
Gives the external AST source an opportunity to complete an incomplete type. | |
void | CompleteType (ObjCInterfaceDecl *Class) override |
Gives the external AST source an opportunity to complete an incomplete Objective-C class. | |
void | ReadComments () override |
Loads comment ranges. | |
void | StartedDeserializing () override |
Notify ExternalASTSource that we started deserialization of a decl or type so until FinishedDeserializing is called there may be decls that are initializing. | |
void | FinishedDeserializing () override |
Notify ExternalASTSource that we finished the deserialization of a decl or type. | |
void | StartTranslationUnit (ASTConsumer *Consumer) override |
Function that will be invoked when we begin parsing a new translation unit involving this external AST source. | |
void | PrintStats () override |
Print any statistics that have been gathered regarding the external AST source. | |
Module * | getModule (unsigned ID) override |
Retrieve the module that corresponds to the given module ID. | |
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 |
Perform layout on the given record. | |
void | getMemoryBufferSizes (MemoryBufferSizes &sizes) const override |
Return the amount of memory used by memory buffers, breaking down by heap-backed versus mmap'ed memory. | |
void | InitializeSema (Sema &S) override |
Initialize the semantic source with the Sema instance being used to perform semantic analysis on the abstract syntax tree. | |
void | ForgetSema () override |
Inform the semantic consumer that Sema is no longer available. | |
void | ReadMethodPool (Selector Sel) override |
Load the contents of the global method pool for a given selector. | |
void | updateOutOfDateSelector (Selector Sel) override |
Load the contents of the global method pool for a given selector if necessary. | |
void | ReadKnownNamespaces (SmallVectorImpl< NamespaceDecl * > &Namespaces) override |
Load the set of namespaces that are known to the external source, which will be used during typo correction. | |
void | ReadUndefinedButUsed (llvm::MapVector< NamedDecl *, SourceLocation > &Undefined) override |
Load the set of used but not defined functions or variables with internal linkage, or used but not defined inline functions. | |
void | ReadMismatchingDeleteExpressions (llvm::MapVector< FieldDecl *, llvm::SmallVector< std::pair< SourceLocation, bool >, 4 > > &Exprs) override |
bool | LookupUnqualified (LookupResult &R, Scope *S) override |
Do last resort, unqualified lookup on a LookupResult that Sema cannot find. | |
void | ReadTentativeDefinitions (SmallVectorImpl< VarDecl * > &Defs) override |
Read the set of tentative definitions known to the external Sema source. | |
void | ReadUnusedFileScopedDecls (SmallVectorImpl< const DeclaratorDecl * > &Decls) override |
Read the set of unused file-scope declarations known to the external Sema source. | |
void | ReadDelegatingConstructors (SmallVectorImpl< CXXConstructorDecl * > &Decls) override |
Read the set of delegating constructors known to the external Sema source. | |
void | ReadExtVectorDecls (SmallVectorImpl< TypedefNameDecl * > &Decls) override |
Read the set of ext_vector type declarations known to the external Sema source. | |
void | ReadUnusedLocalTypedefNameCandidates (llvm::SmallSetVector< const TypedefNameDecl *, 4 > &Decls) override |
Read the set of potentially unused typedefs known to the source. | |
void | ReadReferencedSelectors (SmallVectorImpl< std::pair< Selector, SourceLocation > > &Sels) override |
Read the set of referenced selectors known to the external Sema source. | |
void | ReadWeakUndeclaredIdentifiers (SmallVectorImpl< std::pair< IdentifierInfo *, WeakInfo > > &WI) override |
Read the set of weak, undeclared identifiers known to the external Sema source. | |
void | ReadUsedVTables (SmallVectorImpl< ExternalVTableUse > &VTables) override |
Read the set of used vtables known to the external Sema source. | |
void | ReadPendingInstantiations (SmallVectorImpl< std::pair< ValueDecl *, SourceLocation > > &Pending) override |
Read the set of pending instantiations known to the external Sema source. | |
void | ReadLateParsedTemplates (llvm::MapVector< const FunctionDecl *, std::unique_ptr< LateParsedTemplate > > &LPTMap) override |
Read the set of late parsed template functions for this source. | |
void | ReadDeclsToCheckForDeferredDiags (llvm::SmallSetVector< Decl *, 4 > &Decls) override |
Read the set of decls to be checked for deferred diags. | |
TypoCorrection | CorrectTypo (const DeclarationNameInfo &Typo, int LookupKind, Scope *S, CXXScopeSpec *SS, CorrectionCandidateCallback &CCC, DeclContext *MemberContext, bool EnteringContext, const ObjCObjectPointerType *OPT) override |
Try to "correct" a typo in the source code by finding visible declarations whose names are similar to the name that was present in the source code. | |
bool | MaybeDiagnoseMissingCompleteType (SourceLocation Loc, QualType T) override |
Produces a diagnostic note if one of the attached sources contains a complete definition for T . | |
void | AssignedLambdaNumbering (const CXXRecordDecl *Lambda) override |
Notify the external source that a lambda was assigned a mangling number. | |
Public Member Functions inherited from clang::ExternalSemaSource | |
ExternalSemaSource ()=default | |
~ExternalSemaSource () override | |
virtual void | InitializeSema (Sema &S) |
Initialize the semantic source with the Sema instance being used to perform semantic analysis on the abstract syntax tree. | |
virtual void | ForgetSema () |
Inform the semantic consumer that Sema is no longer available. | |
virtual void | ReadMethodPool (Selector Sel) |
Load the contents of the global method pool for a given selector. | |
virtual void | updateOutOfDateSelector (Selector Sel) |
Load the contents of the global method pool for a given selector if necessary. | |
virtual void | ReadKnownNamespaces (SmallVectorImpl< NamespaceDecl * > &Namespaces) |
Load the set of namespaces that are known to the external source, which will be used during typo correction. | |
virtual void | ReadUndefinedButUsed (llvm::MapVector< NamedDecl *, SourceLocation > &Undefined) |
Load the set of used but not defined functions or variables with internal linkage, or used but not defined internal functions. | |
virtual void | ReadMismatchingDeleteExpressions (llvm::MapVector< FieldDecl *, llvm::SmallVector< std::pair< SourceLocation, bool >, 4 > > &) |
virtual bool | LookupUnqualified (LookupResult &R, Scope *S) |
Do last resort, unqualified lookup on a LookupResult that Sema cannot find. | |
virtual void | ReadTentativeDefinitions (SmallVectorImpl< VarDecl * > &TentativeDefs) |
Read the set of tentative definitions known to the external Sema source. | |
virtual void | ReadUnusedFileScopedDecls (SmallVectorImpl< const DeclaratorDecl * > &Decls) |
Read the set of unused file-scope declarations known to the external Sema source. | |
virtual void | ReadDelegatingConstructors (SmallVectorImpl< CXXConstructorDecl * > &Decls) |
Read the set of delegating constructors known to the external Sema source. | |
virtual void | ReadExtVectorDecls (SmallVectorImpl< TypedefNameDecl * > &Decls) |
Read the set of ext_vector type declarations known to the external Sema source. | |
virtual void | ReadUnusedLocalTypedefNameCandidates (llvm::SmallSetVector< const TypedefNameDecl *, 4 > &Decls) |
Read the set of potentially unused typedefs known to the source. | |
virtual void | ReadReferencedSelectors (SmallVectorImpl< std::pair< Selector, SourceLocation > > &Sels) |
Read the set of referenced selectors known to the external Sema source. | |
virtual void | ReadWeakUndeclaredIdentifiers (SmallVectorImpl< std::pair< IdentifierInfo *, WeakInfo > > &WI) |
Read the set of weak, undeclared identifiers known to the external Sema source. | |
virtual void | ReadUsedVTables (SmallVectorImpl< ExternalVTableUse > &VTables) |
Read the set of used vtables known to the external Sema source. | |
virtual void | ReadPendingInstantiations (SmallVectorImpl< std::pair< ValueDecl *, SourceLocation > > &Pending) |
Read the set of pending instantiations known to the external Sema source. | |
virtual void | ReadLateParsedTemplates (llvm::MapVector< const FunctionDecl *, std::unique_ptr< LateParsedTemplate > > &LPTMap) |
Read the set of late parsed template functions for this source. | |
virtual void | ReadDeclsToCheckForDeferredDiags (llvm::SmallSetVector< Decl *, 4 > &Decls) |
Read the set of decls to be checked for deferred diags. | |
virtual TypoCorrection | CorrectTypo (const DeclarationNameInfo &Typo, int LookupKind, Scope *S, CXXScopeSpec *SS, CorrectionCandidateCallback &CCC, DeclContext *MemberContext, bool EnteringContext, const ObjCObjectPointerType *OPT) |
Try to "correct" a typo in the source code by finding visible declarations whose names are similar to the name that was present in the source code. | |
virtual bool | MaybeDiagnoseMissingCompleteType (SourceLocation Loc, QualType T) |
Produces a diagnostic note if the external source contains a complete definition for T . | |
virtual void | AssignedLambdaNumbering (const CXXRecordDecl *Lambda) |
Notify the external source that a lambda was assigned a mangling number. | |
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 |
bool | isA (const void *ClassID) const override |
LLVM-style RTTI. | |
static bool | classof (const ExternalASTSource *S) |
Additional Inherited Members | |
Public Types inherited from clang::ExternalASTSource | |
enum | ExtKind { EK_Always , EK_Never , EK_ReplyHazy } |
Static Public Member Functions inherited from clang::ExternalSemaSource | |
static bool | classof (const ExternalASTSource *S) |
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 abstract interface that should be implemented by external AST sources that also provide information for semantic analysis.
Definition at line 38 of file MultiplexExternalSemaSource.h.
MultiplexExternalSemaSource::MultiplexExternalSemaSource | ( | ExternalSemaSource * | S1, |
ExternalSemaSource * | S2 | ||
) |
Constructs a new multiplexing external sema source and appends the given element to it.
[in] | S1 | - A non-null (old) ExternalSemaSource. |
[in] | S2 | - A non-null (new) ExternalSemaSource. |
Definition at line 22 of file MultiplexExternalSemaSource.cpp.
|
override |
Definition at line 31 of file MultiplexExternalSemaSource.cpp.
void MultiplexExternalSemaSource::AddSource | ( | ExternalSemaSource * | Source | ) |
Appends new source to the source list.
[in] | Source | - An ExternalSemaSource. |
[in] | source | - An ExternalSemaSource. |
Definition at line 40 of file MultiplexExternalSemaSource.cpp.
|
overridevirtual |
Notify the external source that a lambda was assigned a mangling number.
This enables the external source to track the correspondence between lambdas and mangling numbers if necessary.
Reimplemented from clang::ExternalSemaSource.
Definition at line 345 of file MultiplexExternalSemaSource.cpp.
|
inlinestatic |
Definition at line 371 of file MultiplexExternalSemaSource.h.
|
overridevirtual |
Complete the redeclaration chain if it's been extended since the previous generation of the AST source.
Reimplemented from clang::ExternalASTSource.
Definition at line 56 of file MultiplexExternalSemaSource.cpp.
References CompleteRedeclChain(), and D.
Referenced by CompleteRedeclChain().
|
overridevirtual |
Gives the external AST source an opportunity to complete an incomplete Objective-C class.
This routine will only be invoked if the "externally completed" bit is set on the ObjCInterfaceDecl via the function ObjCInterfaceDecl::setExternallyCompleted()
.
Reimplemented from clang::ExternalASTSource.
Definition at line 143 of file MultiplexExternalSemaSource.cpp.
References clang::Class, and CompleteType().
|
overridevirtual |
Gives the external AST source an opportunity to complete an incomplete type.
Reimplemented from clang::ExternalASTSource.
Definition at line 138 of file MultiplexExternalSemaSource.cpp.
References CompleteType().
Referenced by CompleteType().
|
overridevirtual |
Ensures that the table of all visible declarations inside this context is up to date.
Reimplemented from clang::ExternalASTSource.
Definition at line 118 of file MultiplexExternalSemaSource.cpp.
References completeVisibleDeclsMap().
Referenced by completeVisibleDeclsMap().
|
overridevirtual |
Try to "correct" a typo in the source code by finding visible declarations whose names are similar to the name that was present in the source code.
TypoName | the DeclarationNameInfo structure that contains the name that was present in the source code along with its location. |
LookupKind | the name-lookup criteria used to search for the name. |
S | the scope in which name lookup occurs. |
SS | the nested-name-specifier that precedes the name we're looking for, if present. |
CCC | A CorrectionCandidateCallback object that provides further validation of typo correction candidates. It also provides flags for determining the set of keywords permitted. |
MemberContext | if non-NULL, the context in which to look for a member access expression. |
EnteringContext | whether we're entering the context described by the nested-name-specifier SS. |
OPT | when non-NULL, the search for visible declarations will also walk the protocols in the qualified interfaces of OPT . |
TypoCorrection
containing the corrected name if the typo along with information such as the NamedDecl
where the corrected name was declared, and any additional NestedNameSpecifier
needed to access it (C++ only). The TypoCorrection
is empty if there is no correction. ExternalSemaSource::CorrectTypo is always given the first chance to correct a typo (really, to offer suggestions to repair a failed lookup). It will even be called when SpellChecking is turned off or after a fatal error has already been detected.
Reimplemented from clang::ExternalSemaSource.
Definition at line 320 of file MultiplexExternalSemaSource.cpp.
References clang::C, CorrectTypo(), and E.
Referenced by CorrectTypo().
|
overridevirtual |
Finds all declarations lexically contained within the given DeclContext, after applying an optional filter predicate.
IsKindWeWant | a predicate function that returns true if the passed declaration kind is one we are looking for. |
Reimplemented from clang::ExternalASTSource.
Definition at line 123 of file MultiplexExternalSemaSource.cpp.
References FindExternalLexicalDecls(), and clang::Result.
Referenced by FindExternalLexicalDecls().
|
overridevirtual |
Find all declarations with the given name in the given context.
Reimplemented from clang::ExternalASTSource.
Definition at line 110 of file MultiplexExternalSemaSource.cpp.
References FindExternalVisibleDeclsByName().
Referenced by FindExternalVisibleDeclsByName().
|
overridevirtual |
Get the decls that are contained in a file in the Offset/Length range.
Length
can be 0 to indicate a point at Offset
instead of a range.
Reimplemented from clang::ExternalASTSource.
Definition at line 130 of file MultiplexExternalSemaSource.cpp.
References clang::File, and FindFileRegionDecls().
Referenced by FindFileRegionDecls().
|
overridevirtual |
Notify ExternalASTSource that we finished the deserialization of a decl or type.
Must be paired with StartedDeserializing.
Reimplemented from clang::ExternalASTSource.
Definition at line 158 of file MultiplexExternalSemaSource.cpp.
References FinishedDeserializing().
Referenced by FinishedDeserializing().
|
overridevirtual |
Inform the semantic consumer that Sema is no longer available.
Reimplemented from clang::ExternalSemaSource.
Definition at line 210 of file MultiplexExternalSemaSource.cpp.
References ForgetSema().
Referenced by ForgetSema().
|
overridevirtual |
Resolve the offset of a set of C++ base specifiers in the decl stream into an array of specifiers.
Reimplemented from clang::ExternalASTSource.
Definition at line 85 of file MultiplexExternalSemaSource.cpp.
References GetExternalCXXBaseSpecifiers().
Referenced by GetExternalCXXBaseSpecifiers().
|
overridevirtual |
Resolve a handle to a list of ctor initializers into the list of initializers themselves.
Reimplemented from clang::ExternalASTSource.
Definition at line 94 of file MultiplexExternalSemaSource.cpp.
|
overridevirtual |
Resolve a declaration ID into a declaration, potentially building a new declaration.
Reimplemented from clang::ExternalASTSource.
Definition at line 49 of file MultiplexExternalSemaSource.cpp.
References GetExternalDecl(), and clang::Result.
Referenced by GetExternalDecl().
|
overridevirtual |
Resolve the offset of a statement in the decl stream into a statement.
Reimplemented from clang::ExternalASTSource.
Definition at line 78 of file MultiplexExternalSemaSource.cpp.
References GetExternalDeclStmt(), and clang::Result.
Referenced by GetExternalDeclStmt().
|
overridevirtual |
Resolve a selector ID into a selector.
Reimplemented from clang::ExternalASTSource.
Definition at line 61 of file MultiplexExternalSemaSource.cpp.
References clang::Selector::isNull().
|
overridevirtual |
Return the amount of memory used by memory buffers, breaking down by heap-backed versus mmap'ed memory.
Reimplemented from clang::ExternalASTSource.
Definition at line 193 of file MultiplexExternalSemaSource.cpp.
References clang::ExternalASTSource::getMemoryBufferSizes().
Retrieve the module that corresponds to the given module ID.
Reimplemented from clang::ExternalASTSource.
Definition at line 173 of file MultiplexExternalSemaSource.cpp.
References getModule().
Referenced by getModule().
|
overridevirtual |
Returns the number of selectors known to the external AST source.
Reimplemented from clang::ExternalASTSource.
Definition at line 71 of file MultiplexExternalSemaSource.cpp.
References GetNumExternalSelectors().
Referenced by GetNumExternalSelectors().
|
overridevirtual |
Reimplemented from clang::ExternalASTSource.
Definition at line 102 of file MultiplexExternalSemaSource.cpp.
References D, and clang::ExternalASTSource::EK_ReplyHazy.
|
overridevirtual |
Initialize the semantic source with the Sema instance being used to perform semantic analysis on the abstract syntax tree.
Reimplemented from clang::ExternalSemaSource.
Definition at line 205 of file MultiplexExternalSemaSource.cpp.
References InitializeSema().
Referenced by InitializeSema().
|
inlineoverridevirtual |
LLVM-style RTTI.
Reimplemented from clang::ExternalSemaSource.
Definition at line 368 of file MultiplexExternalSemaSource.h.
References clang::ExternalSemaSource::isA().
|
overridevirtual |
Perform layout on the given record.
This routine allows the external AST source to provide an specific layout for a record, overriding the layout that would normally be constructed. It is intended for clients who receive specific layout details rather than source code (such as LLDB). The client is expected to fill in the field offsets, base offsets, virtual base offsets, and complete object size.
Record | The record whose layout is being requested. |
Size | The final size of the record, in bits. |
Alignment | The final alignment of the record, in bits. |
FieldOffsets | The offset of each of the fields within the record, expressed in bits. All of the fields must be provided with offsets. |
BaseOffsets | The offset of each of the direct, non-virtual base classes. If any bases are not given offsets, the bases will be laid out according to the ABI. |
VirtualBaseOffsets | The offset of each of the virtual base classes (either direct or not). If any bases are not given offsets, the bases will be laid out according to the ABI. |
Reimplemented from clang::ExternalASTSource.
Definition at line 180 of file MultiplexExternalSemaSource.cpp.
References layoutRecordType().
Referenced by layoutRecordType().
|
overridevirtual |
Do last resort, unqualified lookup on a LookupResult that Sema cannot find.
R | a LookupResult that is being recovered. |
S | the Scope of the identifier occurrence. |
Reimplemented from clang::ExternalSemaSource.
Definition at line 245 of file MultiplexExternalSemaSource.cpp.
References clang::LookupResult::empty(), and LookupUnqualified().
Referenced by LookupUnqualified().
|
overridevirtual |
Produces a diagnostic note if one of the attached sources contains a complete definition for T
.
Queries the sources in list order until the first one claims that a diagnostic was produced.
Loc | the location at which a complete type was required but not provided |
T | the QualType that should have been complete at Loc |
Reimplemented from clang::ExternalSemaSource.
Definition at line 336 of file MultiplexExternalSemaSource.cpp.
References E, Loc, MaybeDiagnoseMissingCompleteType(), and clang::T.
Referenced by MaybeDiagnoseMissingCompleteType().
|
overridevirtual |
Print any statistics that have been gathered regarding the external AST source.
Reimplemented from clang::ExternalASTSource.
Definition at line 168 of file MultiplexExternalSemaSource.cpp.
References PrintStats().
Referenced by PrintStats().
|
overridevirtual |
Loads comment ranges.
Reimplemented from clang::ExternalASTSource.
Definition at line 148 of file MultiplexExternalSemaSource.cpp.
References ReadComments().
Referenced by ReadComments().
|
overridevirtual |
Read the set of decls to be checked for deferred diags.
The external source should append its own potentially emitted function and variable decls which may cause deferred diags. Note that this routine may be invoked multiple times; the external source should take care not to introduce the same declarations repeatedly.
Reimplemented from clang::ExternalSemaSource.
Definition at line 276 of file MultiplexExternalSemaSource.cpp.
References ReadDeclsToCheckForDeferredDiags().
Referenced by ReadDeclsToCheckForDeferredDiags().
|
overridevirtual |
Read the set of delegating constructors known to the external Sema source.
The external source should append its own delegating constructors to the given vector of declarations. Note that this routine may be invoked multiple times; the external source should take care not to introduce the same declarations repeatedly.
Reimplemented from clang::ExternalSemaSource.
Definition at line 264 of file MultiplexExternalSemaSource.cpp.
References ReadDelegatingConstructors().
Referenced by ReadDelegatingConstructors().
|
overridevirtual |
Read the set of ext_vector type declarations known to the external Sema source.
The external source should append its own ext_vector type declarations to the given vector of declarations. Note that this routine may be invoked multiple times; the external source should take care not to introduce the same declarations repeatedly.
Reimplemented from clang::ExternalSemaSource.
Definition at line 270 of file MultiplexExternalSemaSource.cpp.
References ReadExtVectorDecls().
Referenced by ReadExtVectorDecls().
|
overridevirtual |
Load the set of namespaces that are known to the external source, which will be used during typo correction.
Reimplemented from clang::ExternalSemaSource.
Definition at line 225 of file MultiplexExternalSemaSource.cpp.
References ReadKnownNamespaces().
Referenced by ReadKnownNamespaces().
|
overridevirtual |
Read the set of late parsed template functions for this source.
The external source should insert its own late parsed template functions into the map. Note that this routine may be invoked multiple times; the external source should take care not to introduce the same map entries repeatedly.
Reimplemented from clang::ExternalSemaSource.
Definition at line 313 of file MultiplexExternalSemaSource.cpp.
References ReadLateParsedTemplates().
Referenced by ReadLateParsedTemplates().
|
overridevirtual |
Load the contents of the global method pool for a given selector.
Reimplemented from clang::ExternalSemaSource.
Definition at line 215 of file MultiplexExternalSemaSource.cpp.
References ReadMethodPool().
Referenced by ReadMethodPool().
|
overridevirtual |
Reimplemented from clang::ExternalSemaSource.
Definition at line 237 of file MultiplexExternalSemaSource.cpp.
|
overridevirtual |
Read the set of pending instantiations known to the external Sema source.
The external source should append its own pending instantiations to the given vector. Note that this routine may be invoked multiple times; the external source should take care not to introduce the same instantiations repeatedly.
Reimplemented from clang::ExternalSemaSource.
Definition at line 306 of file MultiplexExternalSemaSource.cpp.
References ReadPendingInstantiations().
Referenced by ReadPendingInstantiations().
|
overridevirtual |
Read the set of referenced selectors known to the external Sema source.
The external source should append its own referenced selectors to the given vector of selectors. Note that this routine may be invoked multiple times; the external source should take care not to introduce the same selectors repeatedly.
Reimplemented from clang::ExternalSemaSource.
Definition at line 288 of file MultiplexExternalSemaSource.cpp.
References ReadReferencedSelectors().
Referenced by ReadReferencedSelectors().
|
overridevirtual |
Read the set of tentative definitions known to the external Sema source.
The external source should append its own tentative definitions to the given vector of tentative definitions. Note that this routine may be invoked multiple times; the external source should take care not to introduce the same declarations repeatedly.
Reimplemented from clang::ExternalSemaSource.
Definition at line 252 of file MultiplexExternalSemaSource.cpp.
References ReadTentativeDefinitions().
Referenced by ReadTentativeDefinitions().
|
overridevirtual |
Load the set of used but not defined functions or variables with internal linkage, or used but not defined inline functions.
Reimplemented from clang::ExternalSemaSource.
Definition at line 231 of file MultiplexExternalSemaSource.cpp.
References ReadUndefinedButUsed().
Referenced by ReadUndefinedButUsed().
|
overridevirtual |
Read the set of unused file-scope declarations known to the external Sema source.
The external source should append its own unused, filed-scope to the given vector of declarations. Note that this routine may be invoked multiple times; the external source should take care not to introduce the same declarations repeatedly.
Reimplemented from clang::ExternalSemaSource.
Definition at line 258 of file MultiplexExternalSemaSource.cpp.
References ReadUnusedFileScopedDecls().
Referenced by ReadUnusedFileScopedDecls().
|
overridevirtual |
Read the set of potentially unused typedefs known to the source.
The external source should append its own potentially unused local typedefs to the given vector of declarations. Note that this routine may be invoked multiple times; the external source should take care not to introduce the same declarations repeatedly.
Reimplemented from clang::ExternalSemaSource.
Definition at line 282 of file MultiplexExternalSemaSource.cpp.
References ReadUnusedLocalTypedefNameCandidates().
Referenced by ReadUnusedLocalTypedefNameCandidates().
|
overridevirtual |
Read the set of used vtables known to the external Sema source.
The external source should append its own used vtables to the given vector. Note that this routine may be invoked multiple times; the external source should take care not to introduce the same vtables repeatedly.
Reimplemented from clang::ExternalSemaSource.
Definition at line 300 of file MultiplexExternalSemaSource.cpp.
References ReadUsedVTables().
Referenced by ReadUsedVTables().
|
overridevirtual |
Read the set of weak, undeclared identifiers known to the external Sema source.
The external source should append its own weak, undeclared identifiers to the given vector. Note that this routine may be invoked multiple times; the external source should take care not to introduce the same identifiers repeatedly.
Reimplemented from clang::ExternalSemaSource.
Definition at line 294 of file MultiplexExternalSemaSource.cpp.
References ReadWeakUndeclaredIdentifiers().
Referenced by ReadWeakUndeclaredIdentifiers().
|
overridevirtual |
Notify ExternalASTSource that we started deserialization of a decl or type so until FinishedDeserializing is called there may be decls that are initializing.
Must be paired with FinishedDeserializing.
Reimplemented from clang::ExternalASTSource.
Definition at line 153 of file MultiplexExternalSemaSource.cpp.
References StartedDeserializing().
Referenced by StartedDeserializing().
|
overridevirtual |
Function that will be invoked when we begin parsing a new translation unit involving this external AST source.
Reimplemented from clang::ExternalASTSource.
Definition at line 163 of file MultiplexExternalSemaSource.cpp.
References StartTranslationUnit().
Referenced by StartTranslationUnit().
|
overridevirtual |
Load the contents of the global method pool for a given selector if necessary.
Reimplemented from clang::ExternalSemaSource.
Definition at line 220 of file MultiplexExternalSemaSource.cpp.
References updateOutOfDateSelector().
Referenced by updateOutOfDateSelector().