aboutsummaryrefslogtreecommitdiff
path: root/unittests/Format
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 /unittests/Format
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 'unittests/Format')
-rw-r--r--unittests/Format/FormatTest.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index 51a0bd6488..860661b432 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -615,6 +615,30 @@ TEST_F(FormatTest, LayoutStatementsAroundPreprocessorDirectives) {
" trailing);", getLLVMStyleWithColumns(69));
}
+TEST_F(FormatTest, LayoutBlockInsideParens) {
+ EXPECT_EQ("functionCall({\n"
+ " int i;\n"
+ "});", format(" functionCall ( {int i;} );"));
+}
+
+TEST_F(FormatTest, LayoutBlockInsideStatement) {
+ EXPECT_EQ("SOME_MACRO {\n"
+ " int i;\n"
+ "}\n"
+ "int i;", format(" SOME_MACRO {int i;} int i;"));
+}
+
+TEST_F(FormatTest, LayoutNestedBlocks) {
+ verifyFormat("void AddOsStrings(unsigned bitmask) {\n"
+ " struct s {\n"
+ " int i;\n"
+ " };\n"
+ " s kBitsToOs[] = { { 10 } };\n"
+ " for (int i = 0; i < 10; ++i)\n"
+ " return;\n"
+ "}");
+}
+
//===----------------------------------------------------------------------===//
// Line break tests.
//===----------------------------------------------------------------------===//