[clang] 5cf7d87 - [NFC][Clang][AST] Adopt simplified `getTrailingObjects` in AST (#144432)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 19 09:25:07 PDT 2025
Author: Rahul Joshi
Date: 2025-06-19T09:25:04-07:00
New Revision: 5cf7d871b030212d021ffc9356620551f09ad402
URL: https://github.com/llvm/llvm-project/commit/5cf7d871b030212d021ffc9356620551f09ad402
DIFF: https://github.com/llvm/llvm-project/commit/5cf7d871b030212d021ffc9356620551f09ad402.diff
LOG: [NFC][Clang][AST] Adopt simplified `getTrailingObjects` in AST (#144432)
Adopt simplified `getTrailingObjects` API in several places in clag/AST
that were missed by earlier changes.
Added:
Modified:
clang/include/clang/AST/DeclTemplate.h
clang/include/clang/AST/Expr.h
clang/include/clang/AST/OpenACCClause.h
clang/include/clang/AST/OpenMPClause.h
clang/include/clang/AST/StmtOpenACC.h
clang/include/clang/AST/Type.h
clang/lib/AST/ASTImporter.cpp
clang/lib/AST/Decl.cpp
clang/lib/AST/ExprCXX.cpp
clang/lib/AST/OpenMPClause.cpp
clang/lib/AST/Type.cpp
Removed:
################################################################################
diff --git a/clang/include/clang/AST/DeclTemplate.h b/clang/include/clang/AST/DeclTemplate.h
index 8d8b1ca938829..939b14b0351d6 100644
--- a/clang/include/clang/AST/DeclTemplate.h
+++ b/clang/include/clang/AST/DeclTemplate.h
@@ -279,7 +279,7 @@ class TemplateArgumentList final
/// Produce this as an array ref.
ArrayRef<TemplateArgument> asArray() const {
- return llvm::ArrayRef(data(), size());
+ return getTrailingObjects(size());
}
/// Retrieve the number of template arguments in this
@@ -287,9 +287,7 @@ class TemplateArgumentList final
unsigned size() const { return NumArguments; }
/// Retrieve a pointer to the template argument list.
- const TemplateArgument *data() const {
- return getTrailingObjects<TemplateArgument>();
- }
+ const TemplateArgument *data() const { return getTrailingObjects(); }
};
void *allocateDefaultArgStorageChain(const ASTContext &C);
@@ -505,12 +503,10 @@ class FunctionTemplateSpecializationInfo final
TemplateArgumentsAsWritten(TemplateArgsAsWritten),
PointOfInstantiation(POI) {
if (MSInfo)
- getTrailingObjects<MemberSpecializationInfo *>()[0] = MSInfo;
+ getTrailingObjects()[0] = MSInfo;
}
- size_t numTrailingObjects(OverloadToken<MemberSpecializationInfo*>) const {
- return Function.getInt();
- }
+ size_t numTrailingObjects() const { return Function.getInt(); }
public:
friend TrailingObjects;
@@ -597,9 +593,7 @@ class FunctionTemplateSpecializationInfo final
/// function and the function template, and should always be
/// TSK_ExplicitSpecialization whenever we have MemberSpecializationInfo.
MemberSpecializationInfo *getMemberSpecializationInfo() const {
- return numTrailingObjects(OverloadToken<MemberSpecializationInfo *>())
- ? getTrailingObjects<MemberSpecializationInfo *>()[0]
- : nullptr;
+ return numTrailingObjects() ? getTrailingObjects()[0] : nullptr;
}
void Profile(llvm::FoldingSetNodeID &ID) {
diff --git a/clang/include/clang/AST/Expr.h b/clang/include/clang/AST/Expr.h
index 9fc23d30b733f..41e50359962ee 100644
--- a/clang/include/clang/AST/Expr.h
+++ b/clang/include/clang/AST/Expr.h
@@ -7364,17 +7364,14 @@ class RecoveryExpr final : public Expr,
ArrayRef<Expr *> SubExprs);
static RecoveryExpr *CreateEmpty(ASTContext &Ctx, unsigned NumSubExprs);
- ArrayRef<Expr *> subExpressions() {
- auto *B = getTrailingObjects<Expr *>();
- return llvm::ArrayRef(B, B + NumExprs);
- }
+ ArrayRef<Expr *> subExpressions() { return getTrailingObjects(NumExprs); }
ArrayRef<const Expr *> subExpressions() const {
return const_cast<RecoveryExpr *>(this)->subExpressions();
}
child_range children() {
- Stmt **B = reinterpret_cast<Stmt **>(getTrailingObjects<Expr *>());
+ Stmt **B = reinterpret_cast<Stmt **>(getTrailingObjects());
return child_range(B, B + NumExprs);
}
diff --git a/clang/include/clang/AST/OpenACCClause.h b/clang/include/clang/AST/OpenACCClause.h
index 67fbdfeb0702f..a778c7cc3dc98 100644
--- a/clang/include/clang/AST/OpenACCClause.h
+++ b/clang/include/clang/AST/OpenACCClause.h
@@ -307,7 +307,7 @@ class OpenACCDeviceTypeClause final
}
ArrayRef<DeviceTypeArgument> getArchitectures() const {
- return getTrailingObjects<DeviceTypeArgument>(NumArchs);
+ return getTrailingObjects(NumArchs);
}
static OpenACCDeviceTypeClause *
diff --git a/clang/include/clang/AST/OpenMPClause.h b/clang/include/clang/AST/OpenMPClause.h
index 6fd16bc0f03be..2fa8fa529741e 100644
--- a/clang/include/clang/AST/OpenMPClause.h
+++ b/clang/include/clang/AST/OpenMPClause.h
@@ -302,8 +302,7 @@ template <class T> class OMPVarListClause : public OMPClause {
void setVarRefs(ArrayRef<Expr *> VL) {
assert(VL.size() == NumVars &&
"Number of variables is not the same as the preallocated buffer");
- std::copy(VL.begin(), VL.end(),
- static_cast<T *>(this)->template getTrailingObjects<Expr *>());
+ llvm::copy(VL, getVarRefs().begin());
}
public:
@@ -388,9 +387,7 @@ template <class T> class OMPDirectiveListClause : public OMPClause {
assert(
DK.size() == NumKinds &&
"Number of directive kinds is not the same as the preallocated buffer");
- std::copy(DK.begin(), DK.end(),
- static_cast<T *>(this)
- ->template getTrailingObjects<OpenMPDirectiveKind>());
+ std::copy(DK.begin(), DK.end(), getDirectiveKinds().begin());
}
SourceLocation getLParenLoc() { return LParenLoc; }
@@ -980,20 +977,14 @@ class OMPSizesClause final
/// Returns the tile size expressions.
MutableArrayRef<Expr *> getSizesRefs() {
- return static_cast<OMPSizesClause *>(this)
- ->template getTrailingObjects<Expr *>(NumSizes);
- }
- ArrayRef<Expr *> getSizesRefs() const {
- return static_cast<const OMPSizesClause *>(this)
- ->template getTrailingObjects<Expr *>(NumSizes);
+ return getTrailingObjects(NumSizes);
}
+ ArrayRef<Expr *> getSizesRefs() const { return getTrailingObjects(NumSizes); }
/// Sets the tile size expressions.
void setSizesRefs(ArrayRef<Expr *> VL) {
assert(VL.size() == NumSizes);
- std::copy(VL.begin(), VL.end(),
- static_cast<OMPSizesClause *>(this)
- ->template getTrailingObjects<Expr *>());
+ llvm::copy(VL, getSizesRefs().begin());
}
child_range children() {
@@ -1043,8 +1034,7 @@ class OMPPermutationClause final
/// Sets the permutation index expressions.
void setArgRefs(ArrayRef<Expr *> VL) {
assert(VL.size() == NumLoops && "Expecting one expression per loop");
- llvm::copy(VL, static_cast<OMPPermutationClause *>(this)
- ->template getTrailingObjects<Expr *>());
+ llvm::copy(VL, getTrailingObjects());
}
/// Build an empty clause.
@@ -1083,14 +1073,8 @@ class OMPPermutationClause final
/// Returns the permutation index expressions.
///@{
- MutableArrayRef<Expr *> getArgsRefs() {
- return static_cast<OMPPermutationClause *>(this)
- ->template getTrailingObjects<Expr *>(NumLoops);
- }
- ArrayRef<Expr *> getArgsRefs() const {
- return static_cast<const OMPPermutationClause *>(this)
- ->template getTrailingObjects<Expr *>(NumLoops);
- }
+ MutableArrayRef<Expr *> getArgsRefs() { return getTrailingObjects(NumLoops); }
+ ArrayRef<Expr *> getArgsRefs() const { return getTrailingObjects(NumLoops); }
///@}
child_range children() {
@@ -9239,9 +9223,7 @@ class OMPAffinityClause final
SourceLocation(), N) {}
/// Sets the affinity modifier for the clause, if any.
- void setModifier(Expr *E) {
- getTrailingObjects<Expr *>()[varlist_size()] = E;
- }
+ void setModifier(Expr *E) { getTrailingObjects()[varlist_size()] = E; }
/// Sets the location of ':' symbol.
void setColonLoc(SourceLocation Loc) { ColonLoc = Loc; }
@@ -9268,10 +9250,8 @@ class OMPAffinityClause final
static OMPAffinityClause *CreateEmpty(const ASTContext &C, unsigned N);
/// Gets affinity modifier.
- Expr *getModifier() { return getTrailingObjects<Expr *>()[varlist_size()]; }
- Expr *getModifier() const {
- return getTrailingObjects<Expr *>()[varlist_size()];
- }
+ Expr *getModifier() { return getTrailingObjects()[varlist_size()]; }
+ Expr *getModifier() const { return getTrailingObjects()[varlist_size()]; }
/// Gets the location of ':' symbol.
SourceLocation getColonLoc() const { return ColonLoc; }
diff --git a/clang/include/clang/AST/StmtOpenACC.h b/clang/include/clang/AST/StmtOpenACC.h
index c8f8b968b1c80..9ad3d8e00d98a 100644
--- a/clang/include/clang/AST/StmtOpenACC.h
+++ b/clang/include/clang/AST/StmtOpenACC.h
@@ -736,7 +736,7 @@ class OpenACCUpdateConstruct final
OpenACCDirectiveKind::Update, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCUpdateConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
diff --git a/clang/include/clang/AST/Type.h b/clang/include/clang/AST/Type.h
index 3896cd914bf04..35a8b898d8e19 100644
--- a/clang/include/clang/AST/Type.h
+++ b/clang/include/clang/AST/Type.h
@@ -6052,9 +6052,7 @@ class PackIndexingType final
ArrayRef<QualType> Expansions);
private:
- const QualType *getExpansionsPtr() const {
- return getTrailingObjects<QualType>();
- }
+ const QualType *getExpansionsPtr() const { return getTrailingObjects(); }
static TypeDependence computeDependence(QualType Pattern, Expr *IndexExpr,
ArrayRef<QualType> Expansions = {});
@@ -6494,7 +6492,7 @@ class HLSLInlineSpirvType final
uint32_t getSize() const { return Size; }
uint32_t getAlignment() const { return Alignment; }
ArrayRef<SpirvOperand> getOperands() const {
- return getTrailingObjects<SpirvOperand>(NumOperands);
+ return getTrailingObjects(NumOperands);
}
bool isSugared() const { return false; }
diff --git a/clang/lib/AST/ASTImporter.cpp b/clang/lib/AST/ASTImporter.cpp
index 5c44353d8b987..96a5e2eeaa4d7 100644
--- a/clang/lib/AST/ASTImporter.cpp
+++ b/clang/lib/AST/ASTImporter.cpp
@@ -4452,7 +4452,7 @@ ExpectedDecl ASTNodeImporter::VisitFriendDecl(FriendDecl *D) {
}
SmallVector<TemplateParameterList *, 1> ToTPLists(D->NumTPLists);
- auto **FromTPLists = D->getTrailingObjects<TemplateParameterList *>();
+ auto **FromTPLists = D->getTrailingObjects();
for (unsigned I = 0; I < D->NumTPLists; I++) {
if (auto ListOrErr = import(FromTPLists[I]))
ToTPLists[I] = *ListOrErr;
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp
index 860968939b4ae..c4376aab480cd 100644
--- a/clang/lib/AST/Decl.cpp
+++ b/clang/lib/AST/Decl.cpp
@@ -5380,7 +5380,7 @@ PragmaCommentDecl *PragmaCommentDecl::Create(const ASTContext &C,
new (C, DC, additionalSizeToAlloc<char>(Arg.size() + 1))
PragmaCommentDecl(DC, CommentLoc, CommentKind);
memcpy(PCD->getTrailingObjects(), Arg.data(), Arg.size());
- PCD->getTrailingObjects<char>()[Arg.size()] = '\0';
+ PCD->getTrailingObjects()[Arg.size()] = '\0';
return PCD;
}
diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp
index 43b1c39d73798..2b66445fe253a 100644
--- a/clang/lib/AST/ExprCXX.cpp
+++ b/clang/lib/AST/ExprCXX.cpp
@@ -806,8 +806,7 @@ CXXDynamicCastExpr *CXXDynamicCastExpr::Create(const ASTContext &C, QualType T,
new (Buffer) CXXDynamicCastExpr(T, VK, K, Op, PathSize, WrittenTy, L,
RParenLoc, AngleBrackets);
if (PathSize)
- llvm::uninitialized_copy(*BasePath,
- E->getTrailingObjects<CXXBaseSpecifier *>());
+ llvm::uninitialized_copy(*BasePath, E->getTrailingObjects());
return E;
}
@@ -869,8 +868,7 @@ CXXReinterpretCastExpr::Create(const ASTContext &C, QualType T,
new (Buffer) CXXReinterpretCastExpr(T, VK, K, Op, PathSize, WrittenTy, L,
RParenLoc, AngleBrackets);
if (PathSize)
- llvm::uninitialized_copy(*BasePath,
- E->getTrailingObjects<CXXBaseSpecifier *>());
+ llvm::uninitialized_copy(*BasePath, E->getTrailingObjects());
return E;
}
diff --git a/clang/lib/AST/OpenMPClause.cpp b/clang/lib/AST/OpenMPClause.cpp
index 0e5052b944162..f714974b94760 100644
--- a/clang/lib/AST/OpenMPClause.cpp
+++ b/clang/lib/AST/OpenMPClause.cpp
@@ -370,26 +370,26 @@ OMPOrderedClause *OMPOrderedClause::CreateEmpty(const ASTContext &C,
void OMPOrderedClause::setLoopNumIterations(unsigned NumLoop,
Expr *NumIterations) {
assert(NumLoop < NumberOfLoops && "out of loops number.");
- getTrailingObjects<Expr *>()[NumLoop] = NumIterations;
+ getTrailingObjects()[NumLoop] = NumIterations;
}
ArrayRef<Expr *> OMPOrderedClause::getLoopNumIterations() const {
- return getTrailingObjects<Expr *>(NumberOfLoops);
+ return getTrailingObjects(NumberOfLoops);
}
void OMPOrderedClause::setLoopCounter(unsigned NumLoop, Expr *Counter) {
assert(NumLoop < NumberOfLoops && "out of loops number.");
- getTrailingObjects<Expr *>()[NumberOfLoops + NumLoop] = Counter;
+ getTrailingObjects()[NumberOfLoops + NumLoop] = Counter;
}
Expr *OMPOrderedClause::getLoopCounter(unsigned NumLoop) {
assert(NumLoop < NumberOfLoops && "out of loops number.");
- return getTrailingObjects<Expr *>()[NumberOfLoops + NumLoop];
+ return getTrailingObjects()[NumberOfLoops + NumLoop];
}
const Expr *OMPOrderedClause::getLoopCounter(unsigned NumLoop) const {
assert(NumLoop < NumberOfLoops && "out of loops number.");
- return getTrailingObjects<Expr *>()[NumberOfLoops + NumLoop];
+ return getTrailingObjects()[NumberOfLoops + NumLoop];
}
OMPUpdateClause *OMPUpdateClause::Create(const ASTContext &C,
@@ -1678,7 +1678,7 @@ OMPInitClause *OMPInitClause::Create(const ASTContext &C, Expr *InteropVar,
InteropInfo.IsTarget, InteropInfo.IsTargetSync, StartLoc, LParenLoc,
VarLoc, EndLoc, InteropInfo.PreferTypes.size() + 1);
Clause->setInteropVar(InteropVar);
- llvm::copy(InteropInfo.PreferTypes, Clause->getTrailingObjects<Expr *>() + 1);
+ llvm::copy(InteropInfo.PreferTypes, Clause->getTrailingObjects() + 1);
return Clause;
}
diff --git a/clang/lib/AST/Type.cpp b/clang/lib/AST/Type.cpp
index a461dbde4093c..543f05e4ee7cc 100644
--- a/clang/lib/AST/Type.cpp
+++ b/clang/lib/AST/Type.cpp
@@ -3981,7 +3981,7 @@ CountAttributedType::CountAttributedType(
CountAttributedTypeBits.NumCoupledDecls = CoupledDecls.size();
CountAttributedTypeBits.CountInBytes = CountInBytes;
CountAttributedTypeBits.OrNull = OrNull;
- auto *DeclSlot = getTrailingObjects<TypeCoupledDeclRefInfo>();
+ auto *DeclSlot = getTrailingObjects();
Decls = llvm::ArrayRef(DeclSlot, CoupledDecls.size());
for (unsigned i = 0; i != CoupledDecls.size(); ++i)
DeclSlot[i] = CoupledDecls[i];
More information about the cfe-commits
mailing list