From: Daniel Jasper Date: Wed, 6 May 2015 14:23:38 +0000 (+0000) Subject: clang-format: Consider operator precedence as penalty when breaking X-Git-Tag: llvmorg-3.7.0-rc1~5283 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e92bf6f14178e24c2be4812ddb772b01995f9c79;p=platform%2Fupstream%2Fllvm.git clang-format: Consider operator precedence as penalty when breaking before operators. This fixes llvm.org/23382. llvm-svn: 236602 --- diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index fa12d4d..be29239 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -1686,6 +1686,9 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line, prec::Level Level = Left.getPrecedence(); if (Level != prec::Unknown) return Level; + Level = Right.getPrecedence(); + if (Level != prec::Unknown) + return Level; return 3; } diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 9173061..cb1f7bd 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -3500,6 +3500,10 @@ TEST_F(FormatTest, ExpressionIndentationBreakingBeforeOperators) { " + cc;", Style); + verifyFormat("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n" + " = aaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaa;", + Style); + // Forced by comments. verifyFormat( "unsigned ContentSize =\n"