clang-format: Fix merging of _T macros.

NewlinesBefore and HasUnescapedNewline were not properly propagated
leading to llvm.org/PR23032.

llvm-svn: 233276
This commit is contained in:
Daniel Jasper 2015-03-26 14:47:35 +00:00
parent f4ac884f2b
commit e99c72fc2e
2 changed files with 18 additions and 0 deletions

View File

@ -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();

View File

@ -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) {