https://github.com/smanna12 created https://github.com/llvm/llvm-project/pull/75657
This patch renames CheckForDuplicateCodeAlignAttrs() to CheckForDuplicateLoopAttrs() and corresponding other functions that call it to be used for other statement attributes in future. >From f3cfe4cbc1053162b825cc144a5f5c0f73a40b77 Mon Sep 17 00:00:00 2001 From: "Manna, Soumi" <soumi.ma...@intel.com> Date: Fri, 15 Dec 2023 13:15:50 -0800 Subject: [PATCH] [NFC][CLANG] Rename duplicate loop attributes diagnostic functions This patch renames CheckForDuplicateCodeAlignAttrs() to CheckForDuplicateLoopAttrs() and corresponding other functions that call it to be used for other statement attributes in future. --- clang/include/clang/Sema/Sema.h | 2 +- clang/lib/Sema/SemaStmtAttr.cpp | 18 +++++++++--------- clang/lib/Sema/TreeTransform.h | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index 1d7b4c729ce84e..20228da15ade8f 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -2102,7 +2102,7 @@ class Sema final { SourceLocation AttrLoc); CodeAlignAttr *BuildCodeAlignAttr(const AttributeCommonInfo &CI, Expr *E); - bool CheckRebuiltCodeAlignStmtAttributes(ArrayRef<const Attr *> Attrs); + bool CheckRebuiltStmtAttributes(ArrayRef<const Attr *> Attrs); bool CheckQualifiedFunctionForTypeId(QualType T, SourceLocation Loc); diff --git a/clang/lib/Sema/SemaStmtAttr.cpp b/clang/lib/Sema/SemaStmtAttr.cpp index 0d0a7bcebab4e8..a7f6ba4d7abf04 100644 --- a/clang/lib/Sema/SemaStmtAttr.cpp +++ b/clang/lib/Sema/SemaStmtAttr.cpp @@ -361,11 +361,11 @@ static Attr *handleCodeAlignAttr(Sema &S, Stmt *St, const ParsedAttr &A) { } // Diagnose non-identical duplicates as a 'conflicting' loop attributes -// and suppress duplicate errors in cases where the two match for -// [[clang::code_align()]] attribute. -static void CheckForDuplicateCodeAlignAttrs(Sema &S, +// and suppress duplicate errors in cases where the two match. +template <typename LoopAttrT> +static void CheckForDuplicateLoopAttrs(Sema &S, ArrayRef<const Attr *> Attrs) { - auto FindFunc = [](const Attr *A) { return isa<const CodeAlignAttr>(A); }; + auto FindFunc = [](const Attr *A) { return isa<const LoopAttrT>(A); }; const auto *FirstItr = std::find_if(Attrs.begin(), Attrs.end(), FindFunc); if (FirstItr == Attrs.end()) // no attributes found @@ -375,7 +375,7 @@ static void CheckForDuplicateCodeAlignAttrs(Sema &S, std::optional<llvm::APSInt> FirstValue; const auto *CAFA = - dyn_cast<ConstantExpr>(cast<CodeAlignAttr>(*FirstItr)->getAlignment()); + dyn_cast<ConstantExpr>(cast<LoopAttrT>(*FirstItr)->getAlignment()); // Return early if first alignment expression is dependent (since we don't // know what the effective size will be), and skip the loop entirely. if (!CAFA) @@ -384,7 +384,7 @@ static void CheckForDuplicateCodeAlignAttrs(Sema &S, while (Attrs.end() != (LastFoundItr = std::find_if(LastFoundItr + 1, Attrs.end(), FindFunc))) { const auto *CASA = dyn_cast<ConstantExpr>( - cast<CodeAlignAttr>(*LastFoundItr)->getAlignment()); + cast<LoopAttrT>(*LastFoundItr)->getAlignment()); // If the value is dependent, we can not test anything. if (!CASA) return; @@ -635,10 +635,10 @@ void Sema::ProcessStmtAttributes(Stmt *S, const ParsedAttributes &InAttrs, } CheckForIncompatibleAttributes(*this, OutAttrs); - CheckForDuplicateCodeAlignAttrs(*this, OutAttrs); + CheckForDuplicateLoopAttrs<CodeAlignAttr>(*this, OutAttrs); } -bool Sema::CheckRebuiltCodeAlignStmtAttributes(ArrayRef<const Attr *> Attrs) { - CheckForDuplicateCodeAlignAttrs(*this, Attrs); +bool Sema::CheckRebuiltStmtAttributes(ArrayRef<const Attr *> Attrs) { + CheckForDuplicateLoopAttrs<CodeAlignAttr>(*this, Attrs); return false; } diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 1ad843d0bf4e0c..7df5bf0cb71370 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -1378,7 +1378,7 @@ class TreeTransform { StmtResult RebuildAttributedStmt(SourceLocation AttrLoc, ArrayRef<const Attr *> Attrs, Stmt *SubStmt) { - if (SemaRef.CheckRebuiltCodeAlignStmtAttributes(Attrs)) + if (SemaRef.CheckRebuiltStmtAttributes(Attrs)) return StmtError(); return SemaRef.BuildAttributedStmt(AttrLoc, Attrs, SubStmt); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits