diff options
author | Daniel Jasper <djasper@google.com> | 2013-02-04 07:30:30 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-02-04 07:30:30 +0000 |
commit | 8159d2f271c9142b46a672ac2c45821911171a7d (patch) | |
tree | 2898260479664ea4c08e4e1a1d0918a701dfef7f /lib/Format/Format.cpp | |
parent | 0178673f541685cf5067814dfeee2644078e39a9 (diff) |
Fix an error in formatting of for-loops.
Two minor changes:
* Slight penalty for breaking at "," as opposed to ";".
* Don't apply bin-packing rules to for-loops.
Before:
for (int aaaaaa = aaaaaaaaaa; aaaaaa < bbbbbbbb; ++aaaaaa,
++ccccccccccccccc) {}
After:
for (int aaaaaa = aaaaaaaaaa; aaaaaa < bbbbbbbb;
++aaaaaa, ++ccccccccccccccc) {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174308 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Format/Format.cpp')
-rw-r--r-- | lib/Format/Format.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index 6d227cca62..2f14fc0ce1 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -493,7 +493,8 @@ private: if (Newline && Previous.is(tok::l_brace)) State.Stack.back().BreakBeforeClosingBrace = true; - if (State.Stack.back().AvoidBinPacking && Newline) { + if (State.Stack.back().AvoidBinPacking && Newline && + (Line.First.isNot(tok::kw_for) || ParenLevel != 1)) { // If we are breaking after '(', '{', '<', this is not bin packing unless // AllowAllParametersOfDeclarationOnNextLine is false. if ((Previous.isNot(tok::l_paren) && Previous.isNot(tok::l_brace) && @@ -505,7 +506,8 @@ private: // Any break on this level means that the parent level has been broken // and we need to avoid bin packing there. for (unsigned i = 0, e = State.Stack.size() - 1; i != e; ++i) { - State.Stack[i].BreakAfterComma = true; + if (Line.First.isNot(tok::kw_for) || i != 1) + State.Stack[i].BreakAfterComma = true; } } |