llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Yanzuo Liu (zwuis) <details> <summary>Changes</summary> The FIXME comment on this overload: ```cpp // FIXME: The parameter Deps is the result populated by this method, the // caller doesn't need it since it is populated by computeDependence. remove // it. ``` --- Full diff: https://github.com/llvm/llvm-project/pull/227942.diff 4 Files Affected: - (modified) clang/include/clang/AST/TemplateBase.h (-7) - (modified) clang/lib/AST/Expr.cpp (+9-6) - (modified) clang/lib/AST/ExprCXX.cpp (+4-7) - (modified) clang/lib/AST/TemplateBase.cpp (-15) ``````````diff diff --git a/clang/include/clang/AST/TemplateBase.h b/clang/include/clang/AST/TemplateBase.h index 5896cc721668d..f161f6561e742 100644 --- a/clang/include/clang/AST/TemplateBase.h +++ b/clang/include/clang/AST/TemplateBase.h @@ -780,13 +780,6 @@ struct alignas(void *) ASTTemplateKWAndArgsInfo { void initializeFrom(SourceLocation TemplateKWLoc, const TemplateArgumentListInfo &List, TemplateArgumentLoc *OutArgArray); - // FIXME: The parameter Deps is the result populated by this method, the - // caller doesn't need it since it is populated by computeDependence. remove - // it. - void initializeFrom(SourceLocation TemplateKWLoc, - const TemplateArgumentListInfo &List, - TemplateArgumentLoc *OutArgArray, - TemplateArgumentDependence &Deps); void initializeFrom(SourceLocation TemplateKWLoc); void copyInto(const TemplateArgumentLoc *ArgArray, diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index 728be799c50a3..6b9aef5d479a6 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -476,12 +476,16 @@ DeclRefExpr::DeclRefExpr(const ASTContext &Ctx, DeclRefExprBits.CapturedByCopyInLambdaWithExplicitObjectParameter = false; DeclRefExprBits.NonOdrUseReason = NOUR; if (TemplateArgs) { - auto Deps = TemplateArgumentDependence::None; getTrailingObjects<ASTTemplateKWAndArgsInfo>()->initializeFrom( - TemplateKWLoc, *TemplateArgs, getTrailingObjects<TemplateArgumentLoc>(), - Deps); + TemplateKWLoc, *TemplateArgs, + getTrailingObjects<TemplateArgumentLoc>()); +#ifndef NDEBUG + auto Deps = TemplateArgumentDependence::None; + for (const TemplateArgumentLoc &Loc : TemplateArgs->arguments()) + Deps |= Loc.getArgument().getDependence(); assert(!(Deps & TemplateArgumentDependence::Dependent) && "built a DeclRefExpr with dependent template args"); +#endif } else if (TemplateKWLoc.isValid()) { getTrailingObjects<ASTTemplateKWAndArgsInfo>()->initializeFrom( TemplateKWLoc); @@ -1766,10 +1770,9 @@ MemberExpr::MemberExpr(Expr *Base, bool IsArrow, SourceLocation OperatorLoc, if (hasFoundDecl()) *getTrailingObjects<DeclAccessPair>() = FoundDecl; if (TemplateArgs) { - auto Deps = TemplateArgumentDependence::None; getTrailingObjects<ASTTemplateKWAndArgsInfo>()->initializeFrom( - TemplateKWLoc, *TemplateArgs, getTrailingObjects<TemplateArgumentLoc>(), - Deps); + TemplateKWLoc, *TemplateArgs, + getTrailingObjects<TemplateArgumentLoc>()); } else if (TemplateKWLoc.isValid()) { getTrailingObjects<ASTTemplateKWAndArgsInfo>()->initializeFrom( TemplateKWLoc); diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp index 9d42d47f24840..86d22485dca51 100644 --- a/clang/lib/AST/ExprCXX.cpp +++ b/clang/lib/AST/ExprCXX.cpp @@ -531,9 +531,8 @@ OverloadExpr::OverloadExpr(StmtClass SC, const ASTContext &Context, } if (TemplateArgs) { - auto Deps = TemplateArgumentDependence::None; getTrailingASTTemplateKWAndArgsInfo()->initializeFrom( - TemplateKWLoc, *TemplateArgs, getTrailingTemplateArgumentLoc(), Deps); + TemplateKWLoc, *TemplateArgs, getTrailingTemplateArgumentLoc()); } else if (TemplateKWLoc.isValid()) { getTrailingASTTemplateKWAndArgsInfo()->initializeFrom(TemplateKWLoc); } @@ -562,9 +561,8 @@ DependentScopeDeclRefExpr::DependentScopeDeclRefExpr( DependentScopeDeclRefExprBits.HasTemplateKWAndArgsInfo = (Args != nullptr) || TemplateKWLoc.isValid(); if (Args) { - auto Deps = TemplateArgumentDependence::None; getTrailingObjects<ASTTemplateKWAndArgsInfo>()->initializeFrom( - TemplateKWLoc, *Args, getTrailingObjects<TemplateArgumentLoc>(), Deps); + TemplateKWLoc, *Args, getTrailingObjects<TemplateArgumentLoc>()); } else if (TemplateKWLoc.isValid()) { getTrailingObjects<ASTTemplateKWAndArgsInfo>()->initializeFrom( TemplateKWLoc); @@ -1556,10 +1554,9 @@ CXXDependentScopeMemberExpr::CXXDependentScopeMemberExpr( CXXDependentScopeMemberExprBits.OperatorLoc = OperatorLoc; if (TemplateArgs) { - auto Deps = TemplateArgumentDependence::None; getTrailingObjects<ASTTemplateKWAndArgsInfo>()->initializeFrom( - TemplateKWLoc, *TemplateArgs, getTrailingObjects<TemplateArgumentLoc>(), - Deps); + TemplateKWLoc, *TemplateArgs, + getTrailingObjects<TemplateArgumentLoc>()); } else if (TemplateKWLoc.isValid()) { getTrailingObjects<ASTTemplateKWAndArgsInfo>()->initializeFrom( TemplateKWLoc); diff --git a/clang/lib/AST/TemplateBase.cpp b/clang/lib/AST/TemplateBase.cpp index 1616e7e457dce..9356bbadc7a48 100644 --- a/clang/lib/AST/TemplateBase.cpp +++ b/clang/lib/AST/TemplateBase.cpp @@ -814,21 +814,6 @@ void ASTTemplateKWAndArgsInfo::initializeFrom(SourceLocation TemplateKWLoc) { NumTemplateArgs = 0; } -void ASTTemplateKWAndArgsInfo::initializeFrom( - SourceLocation TemplateKWLoc, const TemplateArgumentListInfo &Info, - TemplateArgumentLoc *OutArgArray, TemplateArgumentDependence &Deps) { - this->TemplateKWLoc = TemplateKWLoc; - LAngleLoc = Info.getLAngleLoc(); - RAngleLoc = Info.getRAngleLoc(); - NumTemplateArgs = Info.size(); - - for (unsigned i = 0; i != NumTemplateArgs; ++i) { - Deps |= Info[i].getArgument().getDependence(); - - new (&OutArgArray[i]) TemplateArgumentLoc(Info[i]); - } -} - void ASTTemplateKWAndArgsInfo::copyInto(const TemplateArgumentLoc *ArgArray, TemplateArgumentListInfo &Info) const { Info.setLAngleLoc(LAngleLoc); `````````` </details> https://github.com/llvm/llvm-project/pull/227942 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
