[clang] 30f4781 - [clang-format] Handle C digit separators (#158418)

via cfe-commits cfe-commits at lists.llvm.org
Sun Sep 14 14:21:04 PDT 2025


Author: owenca
Date: 2025-09-14T14:20:59-07:00
New Revision: 30f4781eef567b99214e02137a57c7ac91279a48

URL: https://github.com/llvm/llvm-project/commit/30f4781eef567b99214e02137a57c7ac91279a48
DIFF: https://github.com/llvm/llvm-project/commit/30f4781eef567b99214e02137a57c7ac91279a48.diff

LOG: [clang-format] Handle C digit separators (#158418)

Fixes #158413

Added: 
    

Modified: 
    clang/lib/Format/Format.cpp
    clang/unittests/Format/TokenAnnotatorTest.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index 1776e373cf8a8..68e9618432035 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -4117,6 +4117,7 @@ LangOptions getFormattingLangOpts(const FormatStyle &Style) {
   switch (Style.Language) {
   case FormatStyle::LK_C:
     LangOpts.C11 = 1;
+    LangOpts.C23 = 1;
     break;
   case FormatStyle::LK_Cpp:
   case FormatStyle::LK_ObjC:

diff  --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp
index 141b0001cb52d..f6435f13f0791 100644
--- a/clang/unittests/Format/TokenAnnotatorTest.cpp
+++ b/clang/unittests/Format/TokenAnnotatorTest.cpp
@@ -4105,6 +4105,13 @@ TEST_F(TokenAnnotatorTest, UTF8StringLiteral) {
   EXPECT_TOKEN(Tokens[1], tok::utf8_string_literal, TT_Unknown);
 }
 
+TEST_F(TokenAnnotatorTest, C23DigitSeparator) {
+  auto Tokens = annotate("return 1'000;", getLLVMStyle(FormatStyle::LK_C));
+  ASSERT_EQ(Tokens.size(), 4u) << Tokens;
+  EXPECT_EQ(Tokens[1]->TokenText, "1'000");
+  EXPECT_TOKEN(Tokens[2], tok::semi, TT_Unknown);
+}
+
 TEST_F(TokenAnnotatorTest, IdentifierPackage) {
   auto Tokens = annotate("auto package;");
   ASSERT_EQ(Tokens.size(), 4u) << Tokens;


        


More information about the cfe-commits mailing list