[clang] [clang-format] Fix crash involving array designators and dangling comma (PR #77045)
via cfe-commits
cfe-commits at lists.llvm.org
Sat Jan 6 14:35:48 PST 2024
================
@@ -1444,16 +1444,22 @@ WhitespaceManager::CellDescriptions WhitespaceManager::getCells(unsigned Start,
} else if (C.Tok->is(tok::comma)) {
if (!Cells.empty())
Cells.back().EndIndex = i;
- if (C.Tok->getNextNonComment()->isNot(tok::r_brace)) // dangling comma
+
+ if (const auto *Next = C.Tok->getNextNonComment();
+ Next && Next->isNot(tok::r_brace)) { // dangling comma
++Cell;
+ }
}
} else if (Depth == 1) {
if (C.Tok == MatchingParen) {
if (!Cells.empty())
Cells.back().EndIndex = i;
Cells.push_back(CellDescription{i, ++Cell, i + 1, false, nullptr});
- CellCounts.push_back(C.Tok->Previous->isNot(tok::comma) ? Cell + 1
- : Cell);
+ CellCounts.push_back(
+ C.Tok->Previous->isNot(tok::comma) &&
+ !MatchingParen->MatchingParen->Previous->is(tok::equal)
----------------
XDeme wrote:
I hope the comment is helpful.
https://github.com/llvm/llvm-project/pull/77045
More information about the cfe-commits
mailing list