diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -5001,10 +5001,13 @@ return false; } const FormatToken *Previous = Right.MatchingParen->Previous; - // Avoid breaking when there is an opening parens immediately following + // Avoid breaking when there is another parens immediately following // a closing parens, such as in cast operators and indirect function calls. return !((Previous && (Previous->is(tok::kw_for) || Previous->isIf())) || - (Right.Next && Right.Next->isOneOf(tok::l_paren, tok::r_paren))); + (Right.Next && + (Right.Next->is(tok::l_paren) || + (Right.Next->is(tok::r_paren) && + (Right.NestingLevel == 0 || Previous->is(tok::star)))))); } // Allow breaking after a trailing annotation, e.g. after a method