Author: Chuanqi Xu Date: 2022-01-28T13:56:19+08:00 New Revision: 8cc23bde264e6b19eb10784750cf1cf70bbb2475
URL: https://github.com/llvm/llvm-project/commit/8cc23bde264e6b19eb10784750cf1cf70bbb2475 DIFF: https://github.com/llvm/llvm-project/commit/8cc23bde264e6b19eb10784750cf1cf70bbb2475.diff LOG: [NFC] Mark the parameter const for isSame* methods in ASTContext Added: Modified: clang/include/clang/AST/ASTContext.h clang/lib/AST/ASTContext.cpp Removed: ################################################################################ diff --git a/clang/include/clang/AST/ASTContext.h b/clang/include/clang/AST/ASTContext.h index f39ce14bc82cb..0ebd17822cf4f 100644 --- a/clang/include/clang/AST/ASTContext.h +++ b/clang/include/clang/AST/ASTContext.h @@ -2616,23 +2616,32 @@ class ASTContext : public RefCountedBase<ASTContext> { /// template name uses the shortest form of the dependent /// nested-name-specifier, which itself contains all canonical /// types, values, and templates. - TemplateName getCanonicalTemplateName(TemplateName Name) const; + TemplateName getCanonicalTemplateName(const TemplateName &Name) const; /// Determine whether the given template names refer to the same /// template. - bool hasSameTemplateName(TemplateName X, TemplateName Y); + bool hasSameTemplateName(const TemplateName &X, const TemplateName &Y) const; /// Determine whether the two declarations refer to the same entity. - bool isSameEntity(NamedDecl *X, NamedDecl *Y); + /// + /// FIXME: isSameEntity is not const due to its implementation calls + /// hasSameFunctionTypeIgnoringExceptionSpec which may alter this. + bool isSameEntity(const NamedDecl *X, const NamedDecl *Y); /// Determine whether two template parameter lists are similar enough /// that they may be used in declarations of the same template. - bool isSameTemplateParameterList(TemplateParameterList *X, - TemplateParameterList *Y); + /// + /// FIXME: isSameTemplateParameterList is not const since it calls + /// isSameTemplateParameter. + bool isSameTemplateParameterList(const TemplateParameterList *X, + const TemplateParameterList *Y); /// Determine whether two template parameters are similar enough /// that they may be used in declarations of the same template. - bool isSameTemplateParameter(NamedDecl *X, NamedDecl *Y); + /// + /// FIXME: isSameTemplateParameterList is not const since it calls + /// isSameEntity. + bool isSameTemplateParameter(const NamedDecl *X, const NamedDecl *Y); /// Retrieve the "canonical" template argument. /// diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index 8a780250b6d8e..153c89319161e 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -6099,7 +6099,8 @@ ASTContext::getNameForTemplate(TemplateName Name, llvm_unreachable("bad template name kind!"); } -TemplateName ASTContext::getCanonicalTemplateName(TemplateName Name) const { +TemplateName +ASTContext::getCanonicalTemplateName(const TemplateName &Name) const { switch (Name.getKind()) { case TemplateName::QualifiedTemplate: case TemplateName::Template: { @@ -6141,13 +6142,14 @@ TemplateName ASTContext::getCanonicalTemplateName(TemplateName Name) const { llvm_unreachable("bad template name!"); } -bool ASTContext::hasSameTemplateName(TemplateName X, TemplateName Y) { - X = getCanonicalTemplateName(X); - Y = getCanonicalTemplateName(Y); - return X.getAsVoidPointer() == Y.getAsVoidPointer(); +bool ASTContext::hasSameTemplateName(const TemplateName &X, + const TemplateName &Y) const { + return getCanonicalTemplateName(X).getAsVoidPointer() == + getCanonicalTemplateName(Y).getAsVoidPointer(); } -bool ASTContext::isSameTemplateParameter(NamedDecl *X, NamedDecl *Y) { +bool ASTContext::isSameTemplateParameter(const NamedDecl *X, + const NamedDecl *Y) { if (X->getKind() != Y->getKind()) return false; @@ -6198,8 +6200,8 @@ bool ASTContext::isSameTemplateParameter(NamedDecl *X, NamedDecl *Y) { TY->getTemplateParameters()); } -bool ASTContext::isSameTemplateParameterList(TemplateParameterList *X, - TemplateParameterList *Y) { +bool ASTContext::isSameTemplateParameterList(const TemplateParameterList *X, + const TemplateParameterList *Y) { if (X->size() != Y->size()) return false; @@ -6302,7 +6304,7 @@ static bool hasSameOverloadableAttrs(const FunctionDecl *A, return true; } -bool ASTContext::isSameEntity(NamedDecl *X, NamedDecl *Y) { +bool ASTContext::isSameEntity(const NamedDecl *X, const NamedDecl *Y) { if (X == Y) return true; @@ -6409,6 +6411,8 @@ bool ASTContext::isSameEntity(NamedDecl *X, NamedDecl *Y) { if (getLangOpts().CPlusPlus17 && XFPT && YFPT && (isUnresolvedExceptionSpec(XFPT->getExceptionSpecType()) || isUnresolvedExceptionSpec(YFPT->getExceptionSpecType())) && + // FIXME: We could make isSameEntity const after we make + // hasSameFunctionTypeIgnoringExceptionSpec const. hasSameFunctionTypeIgnoringExceptionSpec(XT, YT)) return true; return false; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits