summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Format/Format.cpp2
-rw-r--r--clang/unittests/Format/FormatTest.cpp16
2 files changed, 18 insertions, 0 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index a243a1f3157..b44ea5dc6d5 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -862,6 +862,8 @@ private:
String->OriginalColumn = Macro->OriginalColumn;
String->ColumnWidth = encoding::columnWidthWithTabs(
String->TokenText, String->OriginalColumn, Style.TabWidth, Encoding);
+ String->NewlinesBefore = Macro->NewlinesBefore;
+ String->HasUnescapedNewline = Macro->HasUnescapedNewline;
Tokens.pop_back();
Tokens.pop_back();
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 3887ca0f228..c57eaa95a93 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -7630,6 +7630,22 @@ TEST_F(FormatTest, BreaksStringLiteralsWithin_TMacro) {
EXPECT_EQ(
"_T ( \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\" )",
format(" _T ( \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\" )", Style));
+ EXPECT_EQ("f(\n"
+ "#if !TEST\n"
+ " _T(\"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXn\")\n"
+ "#endif\n"
+ " );",
+ format("f(\n"
+ "#if !TEST\n"
+ "_T(\"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXn\")\n"
+ "#endif\n"
+ ");"));
+ EXPECT_EQ("f(\n"
+ "\n"
+ " _T(\"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXn\"));",
+ format("f(\n"
+ "\n"
+ "_T(\"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXn\"));"));
}
TEST_F(FormatTest, DontSplitStringLiteralsWithEscapedNewlines) {
OpenPOWER on IntegriCloud