Skip to content

Commit 95fa0be

Browse files
owencallvmbot
authored andcommitted
[clang-format] Correctly identify token-pasted record names (#106484)
See #89706 (comment). (cherry picked from commit 7579787)
1 parent 6d7e428 commit 95fa0be

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

clang/lib/Format/UnwrappedLineParser.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4016,6 +4016,7 @@ void UnwrappedLineParser::parseRecord(bool ParseAsExpr) {
40164016
}
40174017
break;
40184018
case tok::coloncolon:
4019+
case tok::hashhash:
40194020
break;
40204021
default:
40214022
if (!JSPastExtendsOrImplements && !ClassName &&

clang/unittests/Format/TokenAnnotatorTest.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3208,6 +3208,16 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
32083208
ASSERT_EQ(Tokens.size(), 11u) << Tokens;
32093209
EXPECT_TOKEN(Tokens[7], tok::l_brace, TT_ClassLBrace);
32103210
EXPECT_BRACE_KIND(Tokens[7], BK_Block);
3211+
EXPECT_TOKEN(Tokens[8], tok::r_brace, TT_ClassRBrace);
3212+
EXPECT_BRACE_KIND(Tokens[8], BK_Block);
3213+
3214+
Tokens = annotate("#define FOO(X) \\\n"
3215+
" struct X##_tag_ {};");
3216+
ASSERT_EQ(Tokens.size(), 14u) << Tokens;
3217+
EXPECT_TOKEN(Tokens[10], tok::l_brace, TT_StructLBrace);
3218+
EXPECT_BRACE_KIND(Tokens[10], BK_Block);
3219+
EXPECT_TOKEN(Tokens[11], tok::r_brace, TT_StructRBrace);
3220+
EXPECT_BRACE_KIND(Tokens[11], BK_Block);
32113221
}
32123222

32133223
TEST_F(TokenAnnotatorTest, UnderstandsElaboratedTypeSpecifier) {

0 commit comments

Comments
 (0)