Skip to content

Commit 5af5cfb

Browse files
owencatstellar
authored andcommitted
[clang-format] Handle C digit separators (llvm#158418)
Fixes llvm#158413 (cherry picked from commit 30f4781)
1 parent 0174263 commit 5af5cfb

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
@@ -4043,6 +4043,7 @@ LangOptions getFormattingLangOpts(const FormatStyle &Style) {
40434043
switch (Style.Language) {
40444044
case FormatStyle::LK_C:
40454045
LangOpts.C11 = 1;
4046+
LangOpts.C23 = 1;
40464047
break;
40474048
case FormatStyle::LK_Cpp:
40484049
case FormatStyle::LK_ObjC:

clang/unittests/Format/TokenAnnotatorTest.cpp

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

4100+
TEST_F(TokenAnnotatorTest, C23DigitSeparator) {
4101+
auto Tokens = annotate("return 1'000;", getLLVMStyle(FormatStyle::LK_C));
4102+
ASSERT_EQ(Tokens.size(), 4u) << Tokens;
4103+
EXPECT_EQ(Tokens[1]->TokenText, "1'000");
4104+
EXPECT_TOKEN(Tokens[2], tok::semi, TT_Unknown);
4105+
}
4106+
41004107
TEST_F(TokenAnnotatorTest, IdentifierPackage) {
41014108
auto Tokens = annotate("auto package;");
41024109
ASSERT_EQ(Tokens.size(), 4u) << Tokens;

0 commit comments

Comments
 (0)