[clang] [clang][AST][NFC] Remove an overload of `ASTTemplateKWAndArgsInfo::initializeFrom` (PR #227942)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 30 20:46:20 PDT 2026
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
More information about the cfe-commits
mailing list