[clang-tools-extra] c8391ec - [clang-tidy] Fix renaming parameter packs in `sizeof...` expressions (#219155)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Sep 4 06:29:49 PDT 2026
Author: Zeyi Xu
Date: 2026-09-04T21:29:45+08:00
New Revision: c8391ec76e50dbb353acf1649142ef8f35e174d5
URL: https://github.com/llvm/llvm-project/commit/c8391ec76e50dbb353acf1649142ef8f35e174d5
DIFF: https://github.com/llvm/llvm-project/commit/c8391ec76e50dbb353acf1649142ef8f35e174d5.diff
LOG: [clang-tidy] Fix renaming parameter packs in `sizeof...` expressions (#219155)
Record parameter pack usages held by `SizeOfPackExpr` in the common
renamer visitor. This ensures that declarations and `sizeof...`
references are renamed together.
Closes #219154
Added:
Modified:
clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
clang-tools-extra/docs/ReleaseNotes.md
clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
index 943c21a14c6d9..7b984891803e5 100644
--- a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
+++ b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
@@ -276,6 +276,11 @@ class RenamerClangTidyVisitor
return true;
}
+ bool VisitSizeOfPackExpr(SizeOfPackExpr *SizeOfPack) {
+ Check->addUsage(SizeOfPack->getPack(), SizeOfPack->getPackLoc(), SM);
+ return true;
+ }
+
bool TraverseNestedNameSpecifierLoc(NestedNameSpecifierLoc Loc) {
if (const NestedNameSpecifier Spec = Loc.getNestedNameSpecifier();
Spec.getKind() == NestedNameSpecifier::Kind::Namespace) {
diff --git a/clang-tools-extra/docs/ReleaseNotes.md b/clang-tools-extra/docs/ReleaseNotes.md
index bb3fe614f3564..70dd45eb3297c 100644
--- a/clang-tools-extra/docs/ReleaseNotes.md
+++ b/clang-tools-extra/docs/ReleaseNotes.md
@@ -216,6 +216,9 @@ infrastructure are described first, followed by tool-specific sections.
- Fixed {option}`DefaultHungarianPrefix` being incorrectly diagnosed as an
invalid option.
+ - Fixed invalid fixes when renaming parameter packs used in `sizeof...`
+ expressions.
+
- Added the {option}`TypedefInheritAnonTagConfig`, which checks a
typedef or type alias that provides the only name of an otherwise unnamed
tag, such as `typedef enum {} MyEnum;`, against the style configured for
diff --git a/clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp b/clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp
index f0a72ee31bc21..d00235aa6f28f 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp
@@ -512,6 +512,8 @@ void Global_Fun(TYPE_parameters... PARAMETER_PACK) {
// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: invalid case style for global function 'Global_Fun'
// CHECK-MESSAGES: :[[@LINE-2]]:36: warning: invalid case style for parameter pack 'PARAMETER_PACK'
// CHECK-FIXES: void GlobalFun(typeParameters_t... parameterPack) {
+ (void)sizeof...(PARAMETER_PACK);
+// CHECK-FIXES: (void)sizeof...(parameterPack);
global_function(1, 2);
// CHECK-FIXES: GlobalFunction(1, 2);
FOO_bar = Global_variable;
More information about the cfe-commits
mailing list