From bfb53fd201a54895141c2f9df1014598e9c27ba3 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Thu, 26 Mar 2015 14:47:35 +0000 Subject: [PATCH] clang-format: Fix merging of _T macros. NewlinesBefore and HasUnescapedNewline were not properly propagated leading to llvm.org/PR23032. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@233276 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/Format.cpp | 2 ++ unittests/Format/FormatTest.cpp | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index a243a1f315..b44ea5dc6d 100644 --- a/lib/Format/Format.cpp +++ b/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/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 3887ca0f22..c57eaa95a9 100644 --- a/unittests/Format/FormatTest.cpp +++ b/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) { -- 2.50.1