Author: nico Date: Thu Jan 17 23:50:57 2013 New Revision: 172789 URL: http://llvm.org/viewvc/llvm-project?rev=172789&view=rev Log: Formatter: After case blocks, "break" goes on the same line as the "}", PR14907.
Before: switch (foo) { case a: { int a = g(); h(a); } break; } Now: switch (foo) { case a: { int a = g(); h(a); } break; } Modified: cfe/trunk/lib/Format/Format.cpp cfe/trunk/lib/Format/UnwrappedLineParser.cpp cfe/trunk/unittests/Format/FormatTest.cpp Modified: cfe/trunk/lib/Format/Format.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/Format.cpp?rev=172789&r1=172788&r2=172789&view=diff ============================================================================== --- cfe/trunk/lib/Format/Format.cpp (original) +++ cfe/trunk/lib/Format/Format.cpp Thu Jan 17 23:50:57 2013 @@ -952,10 +952,10 @@ return false; } break; - case tok::l_paren: { + case tok::l_paren: if (!parseParens()) return false; - } break; + break; case tok::l_square: if (!parseSquare()) return false; Modified: cfe/trunk/lib/Format/UnwrappedLineParser.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/UnwrappedLineParser.cpp?rev=172789&r1=172788&r2=172789&view=diff ============================================================================== --- cfe/trunk/lib/Format/UnwrappedLineParser.cpp (original) +++ cfe/trunk/lib/Format/UnwrappedLineParser.cpp Thu Jan 17 23:50:57 2013 @@ -487,6 +487,8 @@ --Line->Level; if (FormatTok.Tok.is(tok::l_brace)) { parseBlock(); + if (FormatTok.Tok.is(tok::kw_break)) + parseStructuralElement(); // "break;" after "}" goes on the same line. } addUnwrappedLine(); Line->Level = OldLineLevel; Modified: cfe/trunk/unittests/Format/FormatTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=172789&r1=172788&r2=172789&view=diff ============================================================================== --- cfe/trunk/unittests/Format/FormatTest.cpp (original) +++ cfe/trunk/unittests/Format/FormatTest.cpp Thu Jan 17 23:50:57 2013 @@ -274,6 +274,32 @@ " break;\n" "}\n" "}"); + verifyFormat("switch (x) {\n" + "case 1: {\n" + " f();\n" + " {\n" + " g();\n" + " h();\n" + " }\n" + " break;\n" + "}\n" + "}"); + verifyFormat("switch (x) {\n" + "case 1: {\n" + " f();\n" + " if (foo) {\n" + " g();\n" + " h();\n" + " }\n" + " break;\n" + "}\n" + "}"); + verifyFormat("switch (x) {\n" + "case 1: {\n" + " f();\n" + " g();\n" + "} break;\n" + "}"); verifyFormat("switch (test)\n" " ;"); verifyGoogleFormat("switch (x) {\n" _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits