================
@@ -25768,6 +25768,29 @@ TEST_F(FormatTest, OperatorPassedAsAFunctionPtr) {
   verifyFormat("foo(operator, , -42);", Style);
 }
 
+TEST_F(FormatTest, LineSpliceWithTrailingWhitespace) {
+  // Test that each sequence of a backslash (\) immediately followed by zero or
+  // more horizontal whitespace characters and then a new-line character is
+  // treated as a single logical line while formatting (as per P2223R2).
+  FormatStyle Style = getLLVMStyle();
+  Style.AlignEscapedNewlines = FormatStyle::ENAS_DontAlign;
+  Style.UseTab = FormatStyle::UT_Never;
+
+  verifyFormat("int i;",
+               "  \\  \n"
+               "  int i;",
+               Style);
+  verifyFormat("#define FOO(args) \\\n  struct a {};\n",
+               "#define FOO( args )   \\   \n"
+               "struct a{\\\t\t\t\n"
+               "  };\n",
+               Style);
+  verifyFormat("comment here",
+               "comment \\ \n"
+               "here",
+               Style);
----------------
naveen-seth wrote:

Sorry, I forgot the leading `//`.

Currently, `clang-format` already detects line-splicing in comments, even with 
trailing whitespace. However, unlike with directives and other cases, trailing 
whitespace in comment splices is not removed.

For example, with the current behavior, the following test passes:

```cpp
  verifyFormat("//comment \\     \n"
               "here",
               "//comment \\     \n"
               "here",
               Style);
```

instead of trimming the whitespace as it does elsewhere.
This is what I would have expected:

```cpp
  verifyFormat("//comment \\\n"
               "here",
               "//comment \\     \n"
               "here",
               Style);
```

I wasn't sure whether this should be addressed in this patch or if it's 
intended behavior, so I’ve deleted the test for now.
Please let me know if this needs fixing, and thank you for the review.

https://github.com/llvm/llvm-project/pull/145243
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to