[clang] [clang-format] Handle C digit separators (PR #158418)
via cfe-commits
cfe-commits at lists.llvm.org
Sat Sep 13 03:03:28 PDT 2025
https://github.com/owenca created https://github.com/llvm/llvm-project/pull/158418
Fixes #158413
>From 1fab8bf95f0c7b20a1c1e2f073bf718f5ee3bdb7 Mon Sep 17 00:00:00 2001
From: Owen Pan <owenpiano at gmail.com>
Date: Sat, 13 Sep 2025 03:00:30 -0700
Subject: [PATCH] [clang-format] Handle C digit separators
Fixes #158413
---
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 e3b22cdabaccd..e7fba3822ae6d 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -4087,6 +4087,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