|
clang 24.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 104 of file ASTReaderDecl.cpp.
|
inline |
Definition at line 108 of file ASTReaderDecl.cpp.
| void ASTDeclMerger::MergeDefinitionData | ( | CXXRecordDecl * | D, |
| struct CXXRecordDecl::DefinitionData && | NewDD ) |
Definition at line 2098 of file ASTReaderDecl.cpp.
References clang::cast(), clang::LambdaCapture::getCaptureKind(), clang::CXXRecordDecl::getODRHash(), NO_MERGE, and clang::shouldSkipCheckingODR().
Referenced by mergeTemplatePattern().
| void ASTDeclMerger::MergeDefinitionData | ( | ObjCInterfaceDecl * | D, |
| struct ObjCInterfaceDecl::DefinitionData && | NewDD ) |
Definition at line 1288 of file ASTReaderDecl.cpp.
References clang::ObjCInterfaceDecl::getODRHash().
| void ASTDeclMerger::MergeDefinitionData | ( | ObjCProtocolDecl * | D, |
| struct ObjCProtocolDecl::DefinitionData && | NewDD ) |
Definition at line 1399 of file ASTReaderDecl.cpp.
References clang::ObjCProtocolDecl::getODRHash().
| 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 2993 of file ASTReaderDecl.cpp.
References clang::cast(), clang::TagDecl::isFirstDecl(), and mergeRedeclarable().
|
inline |
Definition at line 122 of file ASTReaderDecl.cpp.
References mergeRedeclarableImpl(), and clang::T.
Referenced by mergeLambda(), and mergeTemplatePattern().
| 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 3079 of file ASTReaderDecl.cpp.
References assert_cast(), clang::Redeclarable< decl_type >::First, clang::CXXRecordDecl::getCanonicalDecl(), clang::DeclIDBase::isValid(), mergeTemplatePattern(), clang::Redeclarable< decl_type >::PreviousDeclLink(), clang::Redeclarable< decl_type >::RedeclLink, 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 3036 of file ASTReaderDecl.cpp.
References clang::cast(), clang::TemplateDecl::getTemplatedDecl(), MergeDefinitionData(), mergeRedeclarable(), and clang::Result.
Referenced by mergeRedeclarableImpl().