Skip to content

Commit 30f4781

Browse files
authored
[clang-format] Handle C digit separators (#158418)
Fixes #158413
1 parent 7d949ee commit 30f4781

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

clang/lib/Format/Format.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4117,6 +4117,7 @@ LangOptions getFormattingLangOpts(const FormatStyle &Style) {
41174117
switch (Style.Language) {
41184118
case FormatStyle::LK_C:
41194119
LangOpts.C11 = 1;
4120+
LangOpts.C23 = 1;
41204121
break;
41214122
case FormatStyle::LK_Cpp:
41224123
case FormatStyle::LK_ObjC:

clang/unittests/Format/TokenAnnotatorTest.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4105,6 +4105,13 @@ TEST_F(TokenAnnotatorTest, UTF8StringLiteral) {
41054105
EXPECT_TOKEN(Tokens[1], tok::utf8_string_literal, TT_Unknown);
41064106
}
41074107

4108+
TEST_F(TokenAnnotatorTest, C23DigitSeparator) {
4109+
auto Tokens = annotate("return 1'000;", getLLVMStyle(FormatStyle::LK_C));
4110+
ASSERT_EQ(Tokens.size(), 4u) << Tokens;
4111+
EXPECT_EQ(Tokens[1]->TokenText, "1'000");
4112+
EXPECT_TOKEN(Tokens[2], tok::semi, TT_Unknown);
4113+
}
4114+
41084115
TEST_F(TokenAnnotatorTest, IdentifierPackage) {
41094116
auto Tokens = annotate("auto package;");
41104117
ASSERT_EQ(Tokens.size(), 4u) << Tokens;

0 commit comments

Comments
 (0)