Correctly format macro with unfinished template declaration.

We can now format:
  #define A template <typename T>

Before this created a segfault :-/.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175533 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index fb388ab..3a1e9dc 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -378,12 +378,6 @@
   verifyFormat("switch (test)\n"
                "  ;");
 
-  // FIXME: Improve formatting of case labels in macros.
-  verifyFormat("#define SOMECASES  \\\n"
-               "case 1:            \\\n"
-               "  case 2\n",
-               getLLVMStyleWithColumns(20));
-
   verifyGoogleFormat("switch (x) {\n"
                      "  case 1:\n"
                      "    f();\n"
@@ -935,6 +929,16 @@
                    getLLVMStyleWithColumns(11)));
 }
 
+TEST_F(FormatTest, MacroDefinitionsWithIncompleteCode) {
+  // FIXME: Improve formatting of case labels in macros.
+  verifyFormat("#define SOMECASES  \\\n"
+               "case 1:            \\\n"
+               "  case 2\n",
+               getLLVMStyleWithColumns(20));
+
+  verifyFormat("#define A template <typename T>");
+}
+
 TEST_F(FormatTest, IndentPreprocessorDirectivesAtZero) {
   EXPECT_EQ("{\n  {\n#define A\n  }\n}", format("{{\n#define A\n}}"));
 }