Index: lib/Format/UnwrappedLineParser.cpp =================================================================== --- lib/Format/UnwrappedLineParser.cpp +++ lib/Format/UnwrappedLineParser.cpp @@ -656,10 +656,13 @@ nextToken(); addUnwrappedLine(); return; + case tok::objc_autoreleasepool: case tok::objc_synchronized: nextToken(); - if (FormatTok->Tok.is(tok::l_paren)) + if (FormatTok->Tok.is(tok::l_paren)) { + // @synchronized parseParens(); + } if (FormatTok->Tok.is(tok::l_brace)) { if (Style.BreakBeforeBraces == FormatStyle::BS_Allman || Style.BreakBeforeBraces == FormatStyle::BS_GNU) Index: unittests/Format/FormatTest.cpp =================================================================== --- unittests/Format/FormatTest.cpp +++ unittests/Format/FormatTest.cpp @@ -2391,6 +2391,27 @@ "});\n"); } +TEST_F(FormatTest, FormatObjCAutoreleasepool) { + FormatStyle Style = getLLVMStyle(); + verifyFormat("@autoreleasepool {\n" + " f();\n" + "}\n" + "@autoreleasepool {\n" + " f();\n" + "}\n", + Style); + Style.BreakBeforeBraces = FormatStyle::BS_Allman; + verifyFormat("@autoreleasepool\n" + "{\n" + " f();\n" + "}\n" + "@autoreleasepool\n" + "{\n" + " f();\n" + "}\n", + Style); +} + TEST_F(FormatTest, FormatObjCSynchronized) { FormatStyle Style = getLLVMStyleWithColumns(32); EXPECT_FALSE(Style.ObjCSpaceAfterSynchronized);