Author: djasper Date: Wed Apr 6 10:02:46 2016 New Revision: 265545 URL: http://llvm.org/viewvc/llvm-project?rev=265545&view=rev Log: clang-format: Support labels in brace-less ifs.
While I am not personally convinced about the usefulness of this construct, we should break it. Before: if (a) label: f(); After: if (a) label: f(); Modified: cfe/trunk/lib/Format/UnwrappedLineParser.cpp cfe/trunk/unittests/Format/FormatTest.cpp Modified: cfe/trunk/lib/Format/UnwrappedLineParser.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/UnwrappedLineParser.cpp?rev=265545&r1=265544&r2=265545&view=diff ============================================================================== --- cfe/trunk/lib/Format/UnwrappedLineParser.cpp (original) +++ cfe/trunk/lib/Format/UnwrappedLineParser.cpp Wed Apr 6 10:02:46 2016 @@ -1010,6 +1010,7 @@ void UnwrappedLineParser::parseStructura // not labels. Style.Language != FormatStyle::LK_JavaScript) { if (FormatTok->Tok.is(tok::colon) && !Line->MustBeDeclaration) { + Line->Tokens.begin()->Tok->MustBreakBefore = true; parseLabel(); return; } @@ -1572,6 +1573,8 @@ void UnwrappedLineParser::parseLabel() { addUnwrappedLine(); } Line->Level = OldLineLevel; + if (FormatTok->isNot(tok::l_brace)) + parseStructuralElement(); } void UnwrappedLineParser::parseCaseLabel() { Modified: cfe/trunk/unittests/Format/FormatTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=265545&r1=265544&r2=265545&view=diff ============================================================================== --- cfe/trunk/unittests/Format/FormatTest.cpp (original) +++ cfe/trunk/unittests/Format/FormatTest.cpp Wed Apr 6 10:02:46 2016 @@ -301,6 +301,12 @@ TEST_F(FormatTest, FormatIfWithoutCompou " // comment\n" " f();", AllowsMergedIf); + verifyFormat("{\n" + " if (a)\n" + " label:\n" + " f();\n" + "}", + AllowsMergedIf); verifyFormat("if (a)\n" " ;", AllowsMergedIf); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits