Do not ever allow using the full line in preprocessor directives.

We would format:
  #define A \
    int f(a); int i;
as
  #define A \
    int f(a);\
    int i

The fix will break up macro definitions that could fit a line, but hit
the last column; fixing that is more involved, though, as it requires
looking at the following line.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171715 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index 27ca53c..54999e1 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -413,11 +413,13 @@
 }
 
 TEST_F(FormatTest, IndentsPPDirectiveInReducedSpace) {
-  // If the macro fits in one line, we have the full width.
-  verifyFormat("#define A(B)", getLLVMStyleWithColumns(12));
+  // If the macro fits in one line, we still do not get the full
+  // line, as only the next line decides whether we need an escaped newline and
+  // thus use the last column.
+  verifyFormat("#define A(B)", getLLVMStyleWithColumns(13));
 
-  verifyFormat("#define A(\\\n    B)", getLLVMStyleWithColumns(11));
-  verifyFormat("#define AA(\\\n    B)", getLLVMStyleWithColumns(11));
+  verifyFormat("#define A( \\\n    B)", getLLVMStyleWithColumns(12));
+  verifyFormat("#define AA(\\\n    B)", getLLVMStyleWithColumns(12));
   verifyFormat("#define A( \\\n    A, B)", getLLVMStyleWithColumns(12));
 }
 
@@ -490,6 +492,13 @@
                    getLLVMStyleWithColumns(11)));
 }
 
+TEST_F(FormatTest, CalculateSpaceOnConsecutiveLinesInMacro) {
+  verifyFormat("#define A \\\n"
+               "  int v(  \\\n"
+               "      a); \\\n"
+               "  int i;", getLLVMStyleWithColumns(11));
+}
+
 TEST_F(FormatTest, MixingPreprocessorDirectivesAndNormalCode) {
   EXPECT_EQ(
       "#define ALooooooooooooooooooooooooooooooooooooooongMacro("