Author: Owen Pan Date: 2022-04-01T17:30:59-07:00 New Revision: 492cb7bf91648058f3fc9ca37f9383786f7ce718
URL: https://github.com/llvm/llvm-project/commit/492cb7bf91648058f3fc9ca37f9383786f7ce718 DIFF: https://github.com/llvm/llvm-project/commit/492cb7bf91648058f3fc9ca37f9383786f7ce718.diff LOG: [clang-format] Fix a crash in qualifier alignment Related to #54513. Added: Modified: clang/lib/Format/QualifierAlignmentFixer.cpp clang/unittests/Format/QualifierFixerTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/QualifierAlignmentFixer.cpp b/clang/lib/Format/QualifierAlignmentFixer.cpp index fc37f18c790a4..c0b3345404dec 100644 --- a/clang/lib/Format/QualifierAlignmentFixer.cpp +++ b/clang/lib/Format/QualifierAlignmentFixer.cpp @@ -303,6 +303,8 @@ const FormatToken *LeftRightQualifierAlignmentFixer::analyzeLeft( if (LastQual && Qual != LastQual && Qual->is(QualifierType)) { rotateTokens(SourceMgr, Fixes, Tok, Qual, /*Left=*/true); + if (!Qual->Next) + return Tok; Tok = Qual->Next; } else if (Tok->startsSequence(tok::identifier, QualifierType)) { if (Tok->Next->Next && Tok->Next->Next->isOneOf(tok::identifier, tok::star, diff --git a/clang/unittests/Format/QualifierFixerTest.cpp b/clang/unittests/Format/QualifierFixerTest.cpp index cd796f48cb568..fc7e932af4402 100755 --- a/clang/unittests/Format/QualifierFixerTest.cpp +++ b/clang/unittests/Format/QualifierFixerTest.cpp @@ -816,6 +816,7 @@ TEST_F(QualifierFixerTest, NoOpQualifierReplacements) { EXPECT_EQ(ReplacementCount, 0); verifyFormat("static const uint32 foo[] = {0, 31};", Style); verifyFormat("#define MACRO static const", Style); + verifyFormat("using sc = static const", Style); EXPECT_EQ(ReplacementCount, 0); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits