summaryrefslogtreecommitdiffstats
path: root/clang/lib/Format/Format.cpp
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2013-07-17 15:38:19 +0000
committerDaniel Jasper <djasper@google.com>2013-07-17 15:38:19 +0000
commitc834c70986b01f5086d72bc5c5e564d7d0ebbc74 (patch)
treebe37cc901d894de56cdbaade23f87fee5e26c352 /clang/lib/Format/Format.cpp
parent21b3da0f939c699e671dd8df460fce7079361123 (diff)
downloadbcm5719-llvm-c834c70986b01f5086d72bc5c5e564d7d0ebbc74.tar.gz
bcm5719-llvm-c834c70986b01f5086d72bc5c5e564d7d0ebbc74.zip
Improve line breaking before multi-line strings.
The AlwaysBreakBeforeMultilineStrings rule does not really make sense if it does not a column gain. Before (in Google style): f( "aaaa" "bbbb"); After: f("aaaa" "bbbb"); llvm-svn: 186515
Diffstat (limited to 'clang/lib/Format/Format.cpp')
-rw-r--r--clang/lib/Format/Format.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index 125283a0c6d..a4495ba62ee 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -1177,6 +1177,14 @@ private:
!Current.isTrailingComment() &&
!Current.isOneOf(tok::r_paren, tok::r_brace))
return true;
+ if (Style.AlwaysBreakBeforeMultilineStrings &&
+ State.Column > State.Stack.back().Indent &&
+ Current.is(tok::string_literal) && Previous.isNot(tok::lessless) &&
+ Previous.Type != TT_InlineASMColon &&
+ ((Current.getNextNonComment() &&
+ Current.getNextNonComment()->is(tok::string_literal)) ||
+ (Current.TokenText.find("\\\n") != StringRef::npos)))
+ return true;
// If we need to break somewhere inside the LHS of a binary expression, we
// should also break after the operator. Otherwise, the formatting would
OpenPOWER on IntegriCloud