From 75e58bb0bde79d18ed4436769f017b5496745009 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Fri, 2 Aug 2013 11:01:15 +0000 Subject: [PATCH] clang-format: Fix string breaking after "<<". Before, clang-format would not break overly long string literals following a "<<" with FormatStyle::AlwaysBreakBeforeMultilineStrings being set. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187650 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/Format.cpp | 2 +- unittests/Format/FormatTest.cpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index b2bf3fea98..02cbc316c1 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -936,7 +936,7 @@ private: State.NextToken = State.NextToken->Next; if (!Newline && Style.AlwaysBreakBeforeMultilineStrings && - Current.is(tok::string_literal)) + Current.is(tok::string_literal) && Current.CanBreakBefore) return 0; return breakProtrudingToken(Current, State, DryRun); diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 3a3164c0f4..ba78995eb5 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -5167,6 +5167,11 @@ TEST_F(FormatTest, BreakStringLiterals) { "aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa " "aaaaaaaaaaaaaaaaaaaaaa\");", getGoogleStyle())); + EXPECT_EQ("llvm::outs() << \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \"\n" + " \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\";", + format("llvm::outs() << " + "\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa" + "aaaaaaaaaaaaaaaaaaa\";")); FormatStyle AlignLeft = getLLVMStyleWithColumns(12); AlignLeft.AlignEscapedNewlinesLeft = true; -- 2.40.0