clang 20.0.0git
|
Public Member Functions | |
ASTDeclMerger (ASTReader &Reader) | |
void | mergeLambda (CXXRecordDecl *D, RedeclarableResult &Redecl, Decl &Context, unsigned Number) |
Attempt to merge D with a previous declaration of the same lambda, which is found by its index within its context declaration, if it has one. | |
template<typename T > | |
void | mergeRedeclarableImpl (Redeclarable< T > *D, T *Existing, GlobalDeclID KeyDeclID) |
Attempts to merge the given declaration (D) with another declaration of the same entity. | |
template<typename T > | |
void | mergeRedeclarable (Redeclarable< T > *D, T *Existing, RedeclarableResult &Redecl) |
void | mergeTemplatePattern (RedeclarableTemplateDecl *D, RedeclarableTemplateDecl *Existing, bool IsKeyDecl) |
Merge together the pattern declarations from two template declarations. | |
void | MergeDefinitionData (CXXRecordDecl *D, struct CXXRecordDecl::DefinitionData &&NewDD) |
void | MergeDefinitionData (ObjCInterfaceDecl *D, struct ObjCInterfaceDecl::DefinitionData &&NewDD) |
void | MergeDefinitionData (ObjCProtocolDecl *D, struct ObjCProtocolDecl::DefinitionData &&NewDD) |
Definition at line 106 of file ASTReaderDecl.cpp.
|
inline |
Definition at line 110 of file ASTReaderDecl.cpp.
void ASTDeclMerger::MergeDefinitionData | ( | CXXRecordDecl * | D, |
struct CXXRecordDecl::DefinitionData && | NewDD | ||
) |
Definition at line 2056 of file ASTReaderDecl.cpp.
References D, clang::LambdaCapture::getCaptureKind(), clang::ASTReader::getContext(), clang::ASTReader::mergeDefinitionVisibility(), NO_MERGE, and clang::shouldSkipCheckingODR().
Referenced by mergeTemplatePattern(), clang::ASTDeclReader::VisitClassTemplateSpecializationDeclImpl(), clang::ASTDeclReader::VisitObjCInterfaceDecl(), and clang::ASTDeclReader::VisitObjCProtocolDecl().
void ASTDeclMerger::MergeDefinitionData | ( | ObjCInterfaceDecl * | D, |
struct ObjCInterfaceDecl::DefinitionData && | NewDD | ||
) |
Definition at line 1273 of file ASTReaderDecl.cpp.
References D, and clang::ASTReader::mergeDefinitionVisibility().
void ASTDeclMerger::MergeDefinitionData | ( | ObjCProtocolDecl * | D, |
struct ObjCProtocolDecl::DefinitionData && | NewDD | ||
) |
Definition at line 1384 of file ASTReaderDecl.cpp.
References D, and clang::ASTReader::mergeDefinitionVisibility().
void ASTDeclMerger::mergeLambda | ( | CXXRecordDecl * | D, |
RedeclarableResult & | Redecl, | ||
Decl & | Context, | ||
unsigned | IndexInContext | ||
) |
Attempt to merge D with a previous declaration of the same lambda, which is found by its index within its context declaration, if it has one.
We can't look up lambdas in their enclosing lexical or semantic context in general, because for lambdas in variables, both of those might be a namespace or the translation unit.
Definition at line 2858 of file ASTReaderDecl.cpp.
References D, clang::ASTReader::getContext(), clang::ASTContext::getLangOpts(), clang::Decl::isFirstDecl(), and mergeRedeclarable().
Referenced by clang::ASTDeclReader::VisitCXXRecordDeclImpl().
|
inline |
Definition at line 124 of file ASTReaderDecl.cpp.
References D, and mergeRedeclarableImpl().
Referenced by mergeLambda(), clang::ASTDeclReader::mergeRedeclarable(), mergeTemplatePattern(), clang::ASTDeclReader::VisitClassTemplateSpecializationDeclImpl(), clang::ASTDeclReader::VisitFunctionDecl(), and clang::ASTDeclReader::VisitVarTemplateSpecializationDeclImpl().
void ASTDeclMerger::mergeRedeclarableImpl | ( | Redeclarable< T > * | D, |
T * | Existing, | ||
GlobalDeclID | KeyDeclID | ||
) |
Attempts to merge the given declaration (D) with another declaration of the same entity.
KeyDeclID | the decl ID of the key declaration |
D. | GlobalDeclID() if |
is | not a key declaration. See the comments of ASTReader::KeyDecls for the explanation of key declaration. |
Definition at line 2944 of file ASTReaderDecl.cpp.
References D, clang::Decl::getCanonicalDecl(), clang::DeclIDBase::isValid(), mergeTemplatePattern(), clang::Redeclarable< decl_type >::PreviousDeclLink(), and clang::T.
Referenced by mergeRedeclarable().
void ASTDeclMerger::mergeTemplatePattern | ( | RedeclarableTemplateDecl * | D, |
RedeclarableTemplateDecl * | Existing, | ||
bool | IsKeyDecl | ||
) |
Merge together the pattern declarations from two template declarations.
Definition at line 2901 of file ASTReaderDecl.cpp.
References D, clang::TemplateDecl::getTemplatedDecl(), MergeDefinitionData(), mergeRedeclarable(), and clang::Result.
Referenced by mergeRedeclarableImpl().