Improve formatting of #defines.
Two improvements:
1) Always leave at least one space before "\". Otherwise is can look bad
and there is a risk of unwillingly joining to characters to a different
token.
2) Use the full column limit for single-line #defines.
Fixes llvm.org/PR15148
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176245 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index cc68bcb..98e035a 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -857,29 +857,24 @@
}
TEST_F(FormatTest, IndentsPPDirectiveInReducedSpace) {
- // 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(12));
- verifyFormat("#define AA(\\\n B)", getLLVMStyleWithColumns(12));
+ verifyFormat("#define A(BB)", getLLVMStyleWithColumns(13));
+ verifyFormat("#define A( \\\n BB)", getLLVMStyleWithColumns(12));
verifyFormat("#define A( \\\n A, B)", getLLVMStyleWithColumns(12));
+ // FIXME: We never break before the macro name.
+ verifyFormat("#define AA(\\\n B)", getLLVMStyleWithColumns(12));
verifyFormat("#define A A\n#define A A");
verifyFormat("#define A(X) A\n#define A A");
- verifyFormat("#define Something Other", getLLVMStyleWithColumns(24));
- verifyFormat("#define Something \\\n"
- " Other",
- getLLVMStyleWithColumns(23));
+ verifyFormat("#define Something Other", getLLVMStyleWithColumns(23));
+ verifyFormat("#define Something \\\n Other", getLLVMStyleWithColumns(22));
}
TEST_F(FormatTest, HandlePreprocessorDirectiveContext) {
EXPECT_EQ("// some comment\n"
"#include \"a.h\"\n"
- "#define A(A,\\\n"
- " B)\n"
+ "#define A( \\\n"
+ " A, B)\n"
"#include \"b.h\"\n"
"// some comment\n",
format(" // some comment\n"