diff options
| author | Daniel Jasper <djasper@google.com> | 2013-04-05 09:38:50 +0000 |
|---|---|---|
| committer | Daniel Jasper <djasper@google.com> | 2013-04-05 09:38:50 +0000 |
| commit | 31c96b9c7efca0e694309ca4c82a32160bebcccd (patch) | |
| tree | 4bb8de7cb4c4530fdb337c672e48f1c81e2e6444 /clang/lib | |
| parent | d2069321e0b6bcba6290a35ed407f9b1190abd03 (diff) | |
| download | bcm5719-llvm-31c96b9c7efca0e694309ca4c82a32160bebcccd.tar.gz bcm5719-llvm-31c96b9c7efca0e694309ca4c82a32160bebcccd.zip | |
Improve formatting of multi-variable DeclStmts.
This fixed llvm.org/PR15670
Before:
aaaaaaaaa a = aaaaaaaaaaaaaaaaaaaa, b = bbbbbbbbbbbbbbbbbbbb,
c = cccccccccccccccccccc,
d = dddddddddddddddddddd;
aaaaaaaaa *a = aaaaaaaaaaaaaaaaaaa, *b = bbbbbbbbbbbbbbbbbbb,
*c = ccccccccccccccccccc,
*d = ddddddddddddddddddd;
After:
aaaaaaaaa a = aaaaaaaaaaaaaaaaaaaa, b = bbbbbbbbbbbbbbbbbbbb,
c = cccccccccccccccccccc, d = dddddddddddddddddddd;
aaaaaaaaa *a = aaaaaaaaaaaaaaaaaaa, *b = bbbbbbbbbbbbbbbbbbb,
*c = ccccccccccccccccccc, *d = ddddddddddddddddddd;
llvm-svn: 178860
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Format/Format.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index d6aa6a9b7ea..101b16f1a18 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -798,9 +798,18 @@ private: } } else { if (Current.is(tok::equal) && - (RootToken.is(tok::kw_for) || State.ParenLevel == 0)) { - State.Stack.back().VariablePos = - State.Column - Previous.FormatTok.TokenLength; + (RootToken.is(tok::kw_for) || State.ParenLevel == 0) && + State.Stack.back().VariablePos == 0) { + State.Stack.back().VariablePos = State.Column; + // Move over * and & if they are bound to the variable name. + const AnnotatedToken *Tok = &Previous; + while (Tok && + State.Stack.back().VariablePos >= Tok->FormatTok.TokenLength) { + State.Stack.back().VariablePos -= Tok->FormatTok.TokenLength; + if (Tok->SpacesRequiredBefore != 0) + break; + Tok = Tok->Parent; + } if (Previous.PartOfMultiVariableDeclStmt) State.Stack.back().LastSpace = State.Stack.back().VariablePos; } |

