diff options
author | Daniel Jasper <djasper@google.com> | 2013-03-01 18:11:39 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-03-01 18:11:39 +0000 |
commit | 516fb31d0536040334032e2af6b62cd6a5479d1c (patch) | |
tree | 63522ac85d3162dbef52c43d530912adb1113695 | |
parent | 8a5d7cd100ebfb8c6b353ee4ad5b14ab4105d32d (diff) |
Remove whitespace at end of file.
This fixes the rest of llvm.org/PR15062.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176361 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Format/Format.cpp | 10 | ||||
-rw-r--r-- | lib/Format/UnwrappedLineParser.cpp | 11 | ||||
-rw-r--r-- | unittests/Format/FormatTest.cpp | 4 |
3 files changed, 21 insertions, 4 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index bb7e0fa7e5..a3c5e503b9 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -1132,7 +1132,15 @@ public: IndentForLevel.resize(TheLine.Level + 1); bool WasMoved = PreviousLineWasTouched && TheLine.First.FormatTok.NewlinesBefore == 0; - if (TheLine.Type != LT_Invalid && (WasMoved || touchesRanges(TheLine))) { + if (TheLine.First.is(tok::eof)) { + if (PreviousLineWasTouched) { + unsigned NewLines = + std::min(TheLine.First.FormatTok.NewlinesBefore, 1u); + Whitespaces.replaceWhitespace(TheLine.First, NewLines, /*Indent*/ 0, + /*WhitespaceStartColumn*/ 0, Style); + } + } else if (TheLine.Type != LT_Invalid && + (WasMoved || touchesRanges(TheLine))) { unsigned LevelIndent = getIndent(IndentForLevel, TheLine.Level); unsigned Indent = LevelIndent; if (static_cast<int>(Indent) + Offset >= 0) diff --git a/lib/Format/UnwrappedLineParser.cpp b/lib/Format/UnwrappedLineParser.cpp index 28522a3e32..cdd77759fd 100644 --- a/lib/Format/UnwrappedLineParser.cpp +++ b/lib/Format/UnwrappedLineParser.cpp @@ -138,6 +138,11 @@ bool UnwrappedLineParser::parse() { I != E; ++I) { Callback.consumeUnwrappedLine(*I); } + + // Create line with eof token. + pushToken(FormatTok); + Callback.consumeUnwrappedLine(*Line); + return Error; } @@ -776,14 +781,14 @@ void UnwrappedLineParser::addUnwrappedLine() { CurrentLines->push_back(*Line); Line->Tokens.clear(); if (CurrentLines == &Lines && !PreprocessorDirectives.empty()) { - for (std::vector<UnwrappedLine>::iterator I = PreprocessorDirectives - .begin(), E = PreprocessorDirectives.end(); + for (std::vector<UnwrappedLine>::iterator + I = PreprocessorDirectives.begin(), + E = PreprocessorDirectives.end(); I != E; ++I) { CurrentLines->push_back(*I); } PreprocessorDirectives.clear(); } - } bool UnwrappedLineParser::eof() const { diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 64de86a926..8cedfcedfd 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -166,6 +166,10 @@ TEST_F(FormatTest, OnlyGeneratesNecessaryReplacements) { TEST_F(FormatTest, RemovesTrailingWhitespaceOfFormattedLine) { EXPECT_EQ("int a;\nint b;", format("int a; \nint b;", 0, 0, getLLVMStyle())); + EXPECT_EQ("int a;", format("int a; ")); + EXPECT_EQ("int a;\n", format("int a; \n \n \n ")); + EXPECT_EQ("int a;\nint b; ", + format("int a; \nint b; ", 0, 0, getLLVMStyle())); } TEST_F(FormatTest, ReformatsMovedLines) { |