aboutsummaryrefslogtreecommitdiff
path: root/lib/Format/Format.cpp
diff options
context:
space:
mode:
authorManuel Klimek <klimek@google.com>2013-01-10 11:52:21 +0000
committerManuel Klimek <klimek@google.com>2013-01-10 11:52:21 +0000
commitbb42bf1a8bfd18fa2beec7fcbcb73f738fb455ba (patch)
tree0764c85a4a442a13ef3caa2d3d3c818db37d0758 /lib/Format/Format.cpp
parent5cf7cf317f684dc61b8a0e4476440b5635b80db4 (diff)
Fix layout of blocks inside statements.
Previously, we would not indent: SOME_MACRO({ int i; }); correctly. This is fixed by adding the trailing }); to the unwrapped line starting with SOME_MACRO({, so the formatter can correctly match the braces and indent accordingly. Also fixes incorrect parsing of initializer lists, like: int a[] = { 1 }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172058 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Format/Format.cpp')
-rw-r--r--lib/Format/Format.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index dfb43afafa..00a4b77980 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -279,7 +279,9 @@ private:
if (Newline) {
unsigned WhitespaceStartColumn = State.Column;
- if (Previous.is(tok::l_brace)) {
+ if (Current.is(tok::r_brace)) {
+ State.Column = Line.Level * 2;
+ } else if (Previous.is(tok::l_brace)) {
// FIXME: This does not work with nested static initializers.
// Implement a better handling for static initializers and similar
// constructs.