]> granicus.if.org Git - clang/commitdiff
Allow comments in the middle of statements to be on their own line.
authorDaniel Jasper <djasper@google.com>
Wed, 9 Jan 2013 09:33:39 +0000 (09:33 +0000)
committerDaniel Jasper <djasper@google.com>
Wed, 9 Jan 2013 09:33:39 +0000 (09:33 +0000)
This fixes llvm.org/PR14860.

Before, we messed up the format of:
if (DeclaratorInfo.isFunctionDeclarator() &&
    //getDeclSpecContextFromDeclaratorContext(Context) == DSC_top_level &&
    Tok.is(tok::semi) && NextToken().is(tok::l_brace)) {
}

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171961 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/Format.cpp
unittests/Format/FormatTest.cpp

index 16e8c2d6c5cb30d7a55c9081de27e97dbdfb3593..e5e59f4550a87746526c5b6049e729a74cfe1b0c 100644 (file)
@@ -1062,8 +1062,10 @@ private:
     if (Left.is(tok::equal) && CurrentLineType == LT_VirtualFunctionDecl)
       return false;
 
+    if (Right.is(tok::comment))
+      return !Right.Children.empty();
     if (Right.is(tok::r_paren) || Right.is(tok::l_brace) ||
-        Right.is(tok::comment) || Right.is(tok::greater))
+        Right.is(tok::greater))
       return false;
     return (isBinaryOperator(Left) && Left.isNot(tok::lessless)) ||
            Left.is(tok::comma) || Right.is(tok::lessless) ||
index 2e6424dd00d68d48504f0d37dc32b7ce89be7e6a..fb21ea7c6fb06bd6cb435f35cf8e5de0a8d7281d 100644 (file)
@@ -290,6 +290,9 @@ TEST_F(FormatTest, UnderstandsSingleLineComments) {
   verifyFormat(
       "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =\n"
       "    bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb; // Trailing comment");
+  verifyFormat("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =\n"
+               "    // Comment inside a statement.\n"
+               "    bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;");
 
   EXPECT_EQ("int i; // single line trailing comment",
             format("int i;\\\n// single line trailing comment"));