Index: clang/lib/Format/UnwrappedLineParser.cpp =================================================================== --- clang/lib/Format/UnwrappedLineParser.cpp +++ clang/lib/Format/UnwrappedLineParser.cpp @@ -864,6 +864,10 @@ if (AddLevels > 0u && Style.BreakBeforeBraces != FormatStyle::BS_Whitesmiths) Line->Level += AddLevels; + // Bail out if there are too many levels. Otherwise, the stack might overflow. + if (Line->Level > 300) + return; + const bool SimpleBlock = parseLevel(Tok, CanContainBracedList, NextLBracesType, IfKind);