diff options
-rw-r--r-- | lib/Format/UnwrappedLineParser.cpp | 6 | ||||
-rw-r--r-- | unittests/Format/FormatTest.cpp | 26 |
2 files changed, 29 insertions, 3 deletions
diff --git a/lib/Format/UnwrappedLineParser.cpp b/lib/Format/UnwrappedLineParser.cpp index 5af60a47c5..76e912cca5 100644 --- a/lib/Format/UnwrappedLineParser.cpp +++ b/lib/Format/UnwrappedLineParser.cpp @@ -784,7 +784,7 @@ void UnwrappedLineParser::flushComments(bool NewlineBeforeNext) { I = CommentsBeforeNextToken.begin(), E = CommentsBeforeNextToken.end(); I != E; ++I) { - if (I->HasUnescapedNewline && JustComments) { + if (I->NewlinesBefore && JustComments) { addUnwrappedLine(); } pushToken(*I); @@ -798,7 +798,7 @@ void UnwrappedLineParser::flushComments(bool NewlineBeforeNext) { void UnwrappedLineParser::nextToken() { if (eof()) return; - flushComments(FormatTok.HasUnescapedNewline); + flushComments(FormatTok.NewlinesBefore > 0); pushToken(FormatTok); readToken(); } @@ -819,7 +819,7 @@ void UnwrappedLineParser::readToken() { } if (!FormatTok.Tok.is(tok::comment)) return; - if (FormatTok.HasUnescapedNewline || FormatTok.IsFirst) { + if (FormatTok.NewlinesBefore > 0 || FormatTok.IsFirst) { CommentsInCurrentLine = false; } if (CommentsInCurrentLine) { diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 4dc6ea7592..d2a1bef35b 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -1987,6 +1987,32 @@ TEST_F(FormatTest, BlockComments) { " aaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaa;")); } +TEST_F(FormatTest, BlockCommentsInMacros) { + EXPECT_EQ("#define A \\\n" + " { \\\n" + " /* one line */ \\\n" + " someCall();", + format("#define A { \\\n" + " /* one line */ \\\n" + " someCall();", getLLVMStyleWithColumns(20))); + EXPECT_EQ("#define A \\\n" + " { \\\n" + " /* previous */ \\\n" + " /* one line */ \\\n" + " someCall();", + format("#define A { \\\n" + " /* previous */ \\\n" + " /* one line */ \\\n" + " someCall();", getLLVMStyleWithColumns(20))); +} + +TEST_F(FormatTest, IndentLineCommentsInStartOfBlockAtEndOfFile) { + // FIXME: This is not what we want... + verifyFormat("{\n" + "// a" + "// b"); +} + TEST_F(FormatTest, FormatStarDependingOnContext) { verifyFormat("void f(int *a);"); verifyFormat("void f() { f(fint * b); }"); |