djasper added inline comments.

================
Comment at: lib/Format/WhitespaceManager.cpp:650
+    for (unsigned i = 0; i < Newlines; ++i)
+      Text.append(UseCRLF ? " \\\r\n" : " \\\n");
+    return;
----------------
Note that when you have an empty line, this would turn into:

  #define A \
    int i; \
   \                <-- Note the 1-space indent here.
    int j; \
    int k;

With my alternative below, that "\" will just be put at column 0, which 
probably isn't better or worse.


================
Comment at: lib/Format/WhitespaceManager.cpp:656
+    assert(EscapedNewlineColumn >= 1);
     unsigned Offset =
+        std::min<int>(EscapedNewlineColumn - 1, PreviousEndOfTokenColumn);
----------------
You could change this to:

  unsigned Spaces =
      std::max<int>(1, EscapedNewlineColumn - PreviousEndOfTokenColumn - 1);
  for (unsigned i = 0; i < Newlines; ++i) {
    Text.append(Spaces, ' ');
    Text.append(UseCRLF ? "\\\r\n" : "\\\n");
    Spaces = std::max<int>(0, EscapedNewlineColumn - 1);
  }

And it should work without problems and without special code path.


https://reviews.llvm.org/D36019



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to