[clang] [clang-format] Add support for additional C++ declaration specifiers in QualifierOrder (PR #160853)

via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 26 09:12:46 PDT 2025


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp -- clang/lib/Format/QualifierAlignmentFixer.cpp clang/unittests/Format/QualifierFixerTest.cpp
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/clang/unittests/Format/QualifierFixerTest.cpp b/clang/unittests/Format/QualifierFixerTest.cpp
index 090a97607..a993cb96f 100644
--- a/clang/unittests/Format/QualifierFixerTest.cpp
+++ b/clang/unittests/Format/QualifierFixerTest.cpp
@@ -52,12 +52,15 @@ TEST_F(QualifierFixerTest, RotateTokens) {
             tok::kw_friend);
   EXPECT_EQ(LeftRightQualifierAlignmentFixer::getTokenFromQualifier("typedef"),
             tok::kw_typedef);
-  EXPECT_EQ(LeftRightQualifierAlignmentFixer::getTokenFromQualifier("consteval"),
-            tok::kw_consteval);
-  EXPECT_EQ(LeftRightQualifierAlignmentFixer::getTokenFromQualifier("constinit"),
-            tok::kw_constinit);
-  EXPECT_EQ(LeftRightQualifierAlignmentFixer::getTokenFromQualifier("thread_local"),
-            tok::kw_thread_local);
+  EXPECT_EQ(
+      LeftRightQualifierAlignmentFixer::getTokenFromQualifier("consteval"),
+      tok::kw_consteval);
+  EXPECT_EQ(
+      LeftRightQualifierAlignmentFixer::getTokenFromQualifier("constinit"),
+      tok::kw_constinit);
+  EXPECT_EQ(
+      LeftRightQualifierAlignmentFixer::getTokenFromQualifier("thread_local"),
+      tok::kw_thread_local);
   EXPECT_EQ(LeftRightQualifierAlignmentFixer::getTokenFromQualifier("extern"),
             tok::kw_extern);
   EXPECT_EQ(LeftRightQualifierAlignmentFixer::getTokenFromQualifier("mutable"),
@@ -1097,16 +1100,18 @@ TEST_F(QualifierFixerTest, IsQualifierType) {
   TestLexer lexer{Allocator, Buffers};
   const auto LangOpts = getFormattingLangOpts();
 
-  auto Tokens = lexer.lex(
-      "const static inline restrict int double long constexpr friend "
-      "typedef consteval constinit thread_local extern mutable signed unsigned short decltype explicit");
+  auto Tokens =
+      lexer.lex("const static inline restrict int double long constexpr friend "
+                "typedef consteval constinit thread_local extern mutable "
+                "signed unsigned short decltype explicit");
   ASSERT_EQ(Tokens.size(), 20u) << Tokens;
 
   // Test that all tokens are recognized
   for (size_t i = 0; i < 20; ++i) {
-    EXPECT_TRUE(isConfiguredQualifierOrType(Tokens[i], ConfiguredTokens, LangOpts)) 
+    EXPECT_TRUE(
+        isConfiguredQualifierOrType(Tokens[i], ConfiguredTokens, LangOpts))
         << "Token " << i << " should be recognized";
-    EXPECT_TRUE(isQualifierOrType(Tokens[i], LangOpts)) 
+    EXPECT_TRUE(isQualifierOrType(Tokens[i], LangOpts))
         << "Token " << i << " should be recognized by isQualifierOrType";
   }
 
@@ -1400,60 +1405,65 @@ TEST_F(QualifierFixerTest, TemplatesLeft) {
 TEST_F(QualifierFixerTest, NewQualifierSupport) {
   FormatStyle Style = getLLVMStyle();
   Style.QualifierAlignment = FormatStyle::QAS_Custom;
-  
+
   // Test typedef qualifier
   Style.QualifierOrder = {"typedef", "type"};
   verifyFormat("typedef int MyInt;", Style);
-  
+
   // Test consteval qualifier
   Style.QualifierOrder = {"consteval", "type"};
   verifyFormat("consteval int func();", "int consteval func();", Style);
-  
+
   // Test constinit qualifier
   Style.QualifierOrder = {"constinit", "static", "type"};
-  verifyFormat("constinit static int var = 10;", "static constinit int var = 10;", Style);
-  
+  verifyFormat("constinit static int var = 10;",
+               "static constinit int var = 10;", Style);
+
   // Test thread_local qualifier
   Style.QualifierOrder = {"thread_local", "static", "type"};
-  verifyFormat("thread_local static int counter;", "static thread_local int counter;", Style);
-  
+  verifyFormat("thread_local static int counter;",
+               "static thread_local int counter;", Style);
+
   // Test extern qualifier
   Style.QualifierOrder = {"extern", "type"};
   verifyFormat("extern int global_var;", "int extern global_var;", Style);
-  
+
   // Test mutable qualifier
   Style.QualifierOrder = {"mutable", "type"};
   verifyFormat("mutable int cache;", "int mutable cache;", Style);
-  
+
   // Test signed/unsigned qualifiers
   Style.QualifierOrder = {"signed", "type"};
   verifyFormat("signed int num;", "int signed num;", Style);
   Style.QualifierOrder = {"unsigned", "type"};
   verifyFormat("unsigned int num;", "int unsigned num;", Style);
-  
+
   // Test long/short qualifiers
   Style.QualifierOrder = {"long", "type"};
   verifyFormat("long int num;", "int long num;", Style);
   Style.QualifierOrder = {"short", "type"};
   verifyFormat("short int num;", "int short num;", Style);
-  
+
   // Test decltype qualifier
   Style.QualifierOrder = {"decltype", "type"};
-  // Note: decltype is typically used with parentheses and doesn't usually get reordered
-  // This test mainly verifies it's recognized as a qualifier
-  
-  // Test explicit qualifier 
+  // Note: decltype is typically used with parentheses and doesn't usually get
+  // reordered This test mainly verifies it's recognized as a qualifier
+
+  // Test explicit qualifier
   Style.QualifierOrder = {"explicit", "type"};
-  // Note: explicit is typically used with constructors and doesn't usually get reordered
-  // This test mainly verifies it's recognized as a qualifier
-  
+  // Note: explicit is typically used with constructors and doesn't usually get
+  // reordered This test mainly verifies it's recognized as a qualifier
+
   // Test complex combination with new qualifiers
   Style.QualifierOrder = {"extern", "thread_local", "static", "constexpr",
-                          "inline", "unsigned", "long", "type", 
-                          "const", "volatile"};
-  
-  verifyFormat("extern thread_local static constexpr inline unsigned long int const volatile var;",
-               "volatile const extern constexpr thread_local static inline unsigned long int var;", Style);
+                          "inline", "unsigned",     "long",   "type",
+                          "const",  "volatile"};
+
+  verifyFormat("extern thread_local static constexpr inline unsigned long int "
+               "const volatile var;",
+               "volatile const extern constexpr thread_local static inline "
+               "unsigned long int var;",
+               Style);
 }
 
 TEST_F(QualifierFixerTest, Ranges) {

``````````

</details>


https://github.com/llvm/llvm-project/pull/160853


More information about the cfe-commits mailing list