diff options
author | Daniel Jasper <djasper@google.com> | 2013-02-12 16:51:23 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-02-12 16:51:23 +0000 |
commit | 2204562acdc8eb94c2a2b7088e2fc0dc7a0f70e3 (patch) | |
tree | 51d2be968005bdcfe1cd22010e85f969becbc162 /clang/lib/Format/Format.cpp | |
parent | 5e76aa971418b5aa6736ebcdf1644c74687f126b (diff) | |
download | bcm5719-llvm-2204562acdc8eb94c2a2b7088e2fc0dc7a0f70e3.tar.gz bcm5719-llvm-2204562acdc8eb94c2a2b7088e2fc0dc7a0f70e3.zip |
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() {}
llvm-svn: 174978
Diffstat (limited to 'clang/lib/Format/Format.cpp')
-rw-r--r-- | clang/lib/Format/Format.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 347e31470d5..f29308e509c 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -957,12 +957,15 @@ public: 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(); |