diff options
author | Krystian Stasiowski <sdkrystian@gmail.com> | 2023-10-07 02:55:31 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-07 10:55:31 +0400 |
commit | 3a3b84b180278207731451dfac24f47d02b50e84 (patch) | |
tree | d5038a0fa46d0041560dedf345e001711d75506e /clang/lib/AST/DeclBase.cpp | |
parent | 859f2d032386632562521a99db20923217d98988 (diff) | |
download | llvm-3a3b84b180278207731451dfac24f47d02b50e84.zip llvm-3a3b84b180278207731451dfac24f47d02b50e84.tar.gz llvm-3a3b84b180278207731451dfac24f47d02b50e84.tar.bz2 |
[clang] remove ClassScopeFunctionSpecializationDecl (#66636)
This removes the `ClassScopeFunctionSpecializationDecl` `Decl` node, and
instead uses `DependentFunctionTemplateSpecializationInfo` to handle
such declarations. `DependentFunctionTemplateSpecializationInfo` is also
changed to store a `const ASTTemplateArgumentListInfo*` to be more in
line with `FunctionTemplateSpecializationInfo`.
This also changes `FunctionDecl::isFunctionTemplateSpecialization` to
return `true` for dependent specializations, and
`FunctionDecl::getTemplateSpecializationKind`/`FunctionDecl::getTemplateSpecializationKindForInstantiation`
to return `TSK_ExplicitSpecialization` for non-friend dependent
specializations (the same behavior as dependent class scope
`ClassTemplateSepcializationDecl` & `VarTemplateSepcializationDecl`).
Diffstat (limited to 'clang/lib/AST/DeclBase.cpp')
-rw-r--r-- | clang/lib/AST/DeclBase.cpp | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/clang/lib/AST/DeclBase.cpp b/clang/lib/AST/DeclBase.cpp index 46372f9..4823d70 100644 --- a/clang/lib/AST/DeclBase.cpp +++ b/clang/lib/AST/DeclBase.cpp @@ -936,7 +936,6 @@ unsigned Decl::getIdentifierNamespaceForKind(Kind DeclKind) { case BuiltinTemplate: case ClassTemplateSpecialization: case ClassTemplatePartialSpecialization: - case ClassScopeFunctionSpecialization: case VarTemplateSpecialization: case VarTemplatePartialSpecialization: case ObjCImplementation: @@ -1077,9 +1076,7 @@ bool Decl::AccessDeclContextCheck() const { isa<ParmVarDecl>(this) || // FIXME: a ClassTemplateSpecialization or CXXRecordDecl can have // AS_none as access specifier. - isa<CXXRecordDecl>(this) || - isa<ClassScopeFunctionSpecializationDecl>(this) || - isa<LifetimeExtendedTemporaryDecl>(this)) + isa<CXXRecordDecl>(this) || isa<LifetimeExtendedTemporaryDecl>(this)) return true; assert(Access != AS_none && |