Author: Rahul Joshi Date: 2025-05-15T05:33:01-07:00 New Revision: 5f53ca30da249b2d46f61791e12e74efef9a8bb6
URL: https://github.com/llvm/llvm-project/commit/5f53ca30da249b2d46f61791e12e74efef9a8bb6 DIFF: https://github.com/llvm/llvm-project/commit/5f53ca30da249b2d46f61791e12e74efef9a8bb6.diff LOG: [NFC][Clang] Adopt simplified `getTrailingObjects` in Decl/DeclTemplate (#139977) Adopt simplied `getTrailingObjects` variants that are not templated and/or return ArrayRef in Decl/DeclTemplate .h/.cpp files. Added: Modified: clang/include/clang/AST/Decl.h clang/include/clang/AST/DeclTemplate.h clang/lib/AST/Decl.cpp clang/lib/AST/DeclTemplate.cpp Removed: ################################################################################ diff --git a/clang/include/clang/AST/Decl.h b/clang/include/clang/AST/Decl.h index f1013c57e008f..9290ff3764c8c 100644 --- a/clang/include/clang/AST/Decl.h +++ b/clang/include/clang/AST/Decl.h @@ -185,7 +185,7 @@ class PragmaCommentDecl final PragmaMSCommentKind getCommentKind() const { return CommentKind; } - StringRef getArg() const { return getTrailingObjects<char>(); } + StringRef getArg() const { return getTrailingObjects(); } // Implement isa/cast/dyncast/etc. static bool classof(const Decl *D) { return classofKind(D->getKind()); } @@ -217,8 +217,8 @@ class PragmaDetectMismatchDecl final static PragmaDetectMismatchDecl * CreateDeserialized(ASTContext &C, GlobalDeclID ID, unsigned NameValueSize); - StringRef getName() const { return getTrailingObjects<char>(); } - StringRef getValue() const { return getTrailingObjects<char>() + ValueStart; } + StringRef getName() const { return getTrailingObjects(); } + StringRef getValue() const { return getTrailingObjects() + ValueStart; } // Implement isa/cast/dyncast/etc. static bool classof(const Decl *D) { return classofKind(D->getKind()); } @@ -1991,7 +1991,7 @@ class FunctionDecl : public DeclaratorDecl, /// Get the unqualified lookup results that should be used in this /// defaulted function definition. ArrayRef<DeclAccessPair> getUnqualifiedLookups() const { - return {getTrailingObjects<DeclAccessPair>(), NumLookups}; + return getTrailingObjects<DeclAccessPair>(NumLookups); } StringLiteral *getDeletedMessage() const { @@ -4780,13 +4780,9 @@ class OutlinedFunctionDecl final explicit OutlinedFunctionDecl(DeclContext *DC, unsigned NumParams); - ImplicitParamDecl *const *getParams() const { - return getTrailingObjects<ImplicitParamDecl *>(); - } + ImplicitParamDecl *const *getParams() const { return getTrailingObjects(); } - ImplicitParamDecl **getParams() { - return getTrailingObjects<ImplicitParamDecl *>(); - } + ImplicitParamDecl **getParams() { return getTrailingObjects(); } public: friend class ASTDeclReader; @@ -4857,13 +4853,9 @@ class CapturedDecl final explicit CapturedDecl(DeclContext *DC, unsigned NumParams); - ImplicitParamDecl *const *getParams() const { - return getTrailingObjects<ImplicitParamDecl *>(); - } + ImplicitParamDecl *const *getParams() const { return getTrailingObjects(); } - ImplicitParamDecl **getParams() { - return getTrailingObjects<ImplicitParamDecl *>(); - } + ImplicitParamDecl **getParams() { return getTrailingObjects(); } public: friend class ASTDeclReader; @@ -5187,12 +5179,10 @@ class HLSLRootSignatureDecl final unsigned NumElems; - llvm::hlsl::rootsig::RootElement *getElems() { - return getTrailingObjects<llvm::hlsl::rootsig::RootElement>(); - } + llvm::hlsl::rootsig::RootElement *getElems() { return getTrailingObjects(); } const llvm::hlsl::rootsig::RootElement *getElems() const { - return getTrailingObjects<llvm::hlsl::rootsig::RootElement>(); + return getTrailingObjects(); } HLSLRootSignatureDecl(DeclContext *DC, SourceLocation Loc, IdentifierInfo *ID, diff --git a/clang/include/clang/AST/DeclTemplate.h b/clang/include/clang/AST/DeclTemplate.h index 80c97681d9163..37419d8eb7c9a 100644 --- a/clang/include/clang/AST/DeclTemplate.h +++ b/clang/include/clang/AST/DeclTemplate.h @@ -712,7 +712,7 @@ class DependentFunctionTemplateSpecializationInfo final /// Returns the candidates for the primary function template. ArrayRef<FunctionTemplateDecl *> getCandidates() const { - return {getTrailingObjects<FunctionTemplateDecl *>(), NumCandidates}; + return getTrailingObjects(NumCandidates); } }; @@ -1325,8 +1325,7 @@ class TemplateTypeParmDecl final : public TypeDecl, /// Returns the type constraint associated with this template parameter (if /// any). const TypeConstraint *getTypeConstraint() const { - return TypeConstraintInitialized ? getTrailingObjects<TypeConstraint>() : - nullptr; + return TypeConstraintInitialized ? getTrailingObjects() : nullptr; } void setTypeConstraint(ConceptReference *CR, @@ -1711,7 +1710,7 @@ class TemplateTemplateParmDecl final /// pack. TemplateParameterList *getExpansionTemplateParameters(unsigned I) const { assert(I < NumExpandedParams && "Out-of-range expansion type index"); - return getTrailingObjects<TemplateParameterList *>()[I]; + return getTrailingObjects()[I]; } const DefArgStorage &getDefaultArgStorage() const { return DefaultArgument; } @@ -3254,8 +3253,7 @@ class ImplicitConceptSpecializationDecl final unsigned NumTemplateArgs); ArrayRef<TemplateArgument> getTemplateArguments() const { - return ArrayRef<TemplateArgument>(getTrailingObjects<TemplateArgument>(), - NumTemplateArgs); + return getTrailingObjects(NumTemplateArgs); } void setTemplateArguments(ArrayRef<TemplateArgument> Converted); diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index 061fedb403ddd..8425e40567b27 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -4325,8 +4325,7 @@ DependentFunctionTemplateSpecializationInfo:: const ASTTemplateArgumentListInfo *TemplateArgsWritten) : NumCandidates(Candidates.size()), TemplateArgumentsAsWritten(TemplateArgsWritten) { - std::transform(Candidates.begin(), Candidates.end(), - getTrailingObjects<FunctionTemplateDecl *>(), + std::transform(Candidates.begin(), Candidates.end(), getTrailingObjects(), [](NamedDecl *ND) { return cast<FunctionTemplateDecl>(ND->getUnderlyingDecl()); }); @@ -5380,7 +5379,7 @@ PragmaCommentDecl *PragmaCommentDecl::Create(const ASTContext &C, PragmaCommentDecl *PCD = new (C, DC, additionalSizeToAlloc<char>(Arg.size() + 1)) PragmaCommentDecl(DC, CommentLoc, CommentKind); - memcpy(PCD->getTrailingObjects<char>(), Arg.data(), Arg.size()); + memcpy(PCD->getTrailingObjects(), Arg.data(), Arg.size()); PCD->getTrailingObjects<char>()[Arg.size()] = '\0'; return PCD; } @@ -5402,11 +5401,10 @@ PragmaDetectMismatchDecl::Create(const ASTContext &C, TranslationUnitDecl *DC, PragmaDetectMismatchDecl *PDMD = new (C, DC, additionalSizeToAlloc<char>(ValueStart + Value.size() + 1)) PragmaDetectMismatchDecl(DC, Loc, ValueStart); - memcpy(PDMD->getTrailingObjects<char>(), Name.data(), Name.size()); - PDMD->getTrailingObjects<char>()[Name.size()] = '\0'; - memcpy(PDMD->getTrailingObjects<char>() + ValueStart, Value.data(), - Value.size()); - PDMD->getTrailingObjects<char>()[ValueStart + Value.size()] = '\0'; + memcpy(PDMD->getTrailingObjects(), Name.data(), Name.size()); + PDMD->getTrailingObjects()[Name.size()] = '\0'; + memcpy(PDMD->getTrailingObjects() + ValueStart, Value.data(), Value.size()); + PDMD->getTrailingObjects()[ValueStart + Value.size()] = '\0'; return PDMD; } @@ -5900,7 +5898,7 @@ ImportDecl::ImportDecl(DeclContext *DC, SourceLocation StartLoc, : Decl(Import, DC, StartLoc), ImportedModule(Imported), NextLocalImportAndComplete(nullptr, true) { assert(getNumModuleIdentifiers(Imported) == IdentifierLocs.size()); - auto *StoredLocs = getTrailingObjects<SourceLocation>(); + auto *StoredLocs = getTrailingObjects(); llvm::uninitialized_copy(IdentifierLocs, StoredLocs); } @@ -5908,7 +5906,7 @@ ImportDecl::ImportDecl(DeclContext *DC, SourceLocation StartLoc, Module *Imported, SourceLocation EndLoc) : Decl(Import, DC, StartLoc), ImportedModule(Imported), NextLocalImportAndComplete(nullptr, false) { - *getTrailingObjects<SourceLocation>() = EndLoc; + *getTrailingObjects() = EndLoc; } ImportDecl *ImportDecl::Create(ASTContext &C, DeclContext *DC, @@ -5939,14 +5937,12 @@ ArrayRef<SourceLocation> ImportDecl::getIdentifierLocs() const { if (!isImportComplete()) return {}; - const auto *StoredLocs = getTrailingObjects<SourceLocation>(); - return llvm::ArrayRef(StoredLocs, - getNumModuleIdentifiers(getImportedModule())); + return getTrailingObjects(getNumModuleIdentifiers(getImportedModule())); } SourceRange ImportDecl::getSourceRange() const { if (!isImportComplete()) - return SourceRange(getLocation(), *getTrailingObjects<SourceLocation>()); + return SourceRange(getLocation(), *getTrailingObjects()); return SourceRange(getLocation(), getIdentifierLocs().back()); } diff --git a/clang/lib/AST/DeclTemplate.cpp b/clang/lib/AST/DeclTemplate.cpp index 6857eef87de38..b951e68b0a1b8 100644 --- a/clang/lib/AST/DeclTemplate.cpp +++ b/clang/lib/AST/DeclTemplate.cpp @@ -755,7 +755,7 @@ void TemplateTypeParmDecl::setTypeConstraint( "call setTypeConstraint"); assert(!TypeConstraintInitialized && "TypeConstraint was already initialized!"); - new (getTrailingObjects<TypeConstraint>()) + new (getTrailingObjects()) TypeConstraint(Loc, ImmediatelyDeclaredConstraint, ArgPackSubstIndex); TypeConstraintInitialized = true; } @@ -880,8 +880,7 @@ TemplateTemplateParmDecl::TemplateTemplateParmDecl( : TemplateDecl(TemplateTemplateParm, DC, L, Id, Params), TemplateParmPosition(D, P), Typename(Typename), ParameterPack(true), ExpandedParameterPack(true), NumExpandedParams(Expansions.size()) { - llvm::uninitialized_copy(Expansions, - getTrailingObjects<TemplateParameterList *>()); + llvm::uninitialized_copy(Expansions, getTrailingObjects()); } TemplateTemplateParmDecl * @@ -939,7 +938,7 @@ void TemplateTemplateParmDecl::setDefaultArgument( //===----------------------------------------------------------------------===// TemplateArgumentList::TemplateArgumentList(ArrayRef<TemplateArgument> Args) : NumArguments(Args.size()) { - llvm::uninitialized_copy(Args, getTrailingObjects<TemplateArgument>()); + llvm::uninitialized_copy(Args, getTrailingObjects()); } TemplateArgumentList * @@ -1166,7 +1165,7 @@ ImplicitConceptSpecializationDecl::CreateDeserialized( void ImplicitConceptSpecializationDecl::setTemplateArguments( ArrayRef<TemplateArgument> Converted) { assert(Converted.size() == NumTemplateArgs); - llvm::uninitialized_copy(Converted, getTrailingObjects<TemplateArgument>()); + llvm::uninitialized_copy(Converted, getTrailingObjects()); } //===----------------------------------------------------------------------===// _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits