Fix bug in the adjustment to existing lines.

Before (if only the second line was reformatted):
void f() {}
          void g() {}

After:
void f() {}
void g() {}

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174978 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index 347e314..f29308e 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -957,12 +957,15 @@
                 TheLine.Last->FormatTok.Tok.getLocation()) +
             Lex.MeasureTokenLength(TheLine.Last->FormatTok.Tok.getLocation(),
                                    SourceMgr, Lex.getLangOpts()) - 1;
-        unsigned Indent = SourceMgr.getSpellingColumnNumber(
-            TheLine.First.FormatTok.Tok.getLocation()) - 1;
-        unsigned LevelIndent = Indent;
-        if (static_cast<int>(LevelIndent) - Offset >= 0)
-          LevelIndent -= Offset;
-        IndentForLevel[TheLine.Level] = LevelIndent;
+        if (TheLine.First.FormatTok.NewlinesBefore > 0 ||
+            TheLine.First.FormatTok.IsFirst) {
+          unsigned Indent = SourceMgr.getSpellingColumnNumber(
+              TheLine.First.FormatTok.Tok.getLocation()) - 1;
+          unsigned LevelIndent = Indent;
+          if (static_cast<int>(LevelIndent) - Offset >= 0)
+            LevelIndent -= Offset;
+          IndentForLevel[TheLine.Level] = LevelIndent;
+        }
       }
     }
     return Whitespaces.generateReplacements();
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index e9520b6..f1cef2a 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -2660,6 +2660,9 @@
             "  }", format("  {\n"
                           "a;\n"
                           "  }", 4, 2, getLLVMStyle()));
+  EXPECT_EQ("void f() {}\n"
+            "void g() {}", format("void f() {}\n"
+                                  "void g() {}", 13, 0, getLLVMStyle()));
 }
 
 } // end namespace tooling