https://github.com/llvmbot created 
https://github.com/llvm/llvm-project/pull/158512

Backport 30f4781eef567b99214e02137a57c7ac91279a48

Requested by: @owenca

>From 45684d48d66be8e36b5df7bc99d2833ce58b2a97 Mon Sep 17 00:00:00 2001
From: owenca <owenpi...@gmail.com>
Date: Sun, 14 Sep 2025 14:20:59 -0700
Subject: [PATCH] [clang-format] Handle C digit separators (#158418)

Fixes #158413

(cherry picked from commit 30f4781eef567b99214e02137a57c7ac91279a48)
---
 clang/lib/Format/Format.cpp                   | 1 +
 clang/unittests/Format/TokenAnnotatorTest.cpp | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index 513fcfcd41258..161a6c4b47e7f 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -4043,6 +4043,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 af94841c820a4..0a3dc946e8c1c 100644
--- a/clang/unittests/Format/TokenAnnotatorTest.cpp
+++ b/clang/unittests/Format/TokenAnnotatorTest.cpp
@@ -4097,6 +4097,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;

_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to