diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Format/UnwrappedLineParser.cpp | 2 | ||||
| -rw-r--r-- | clang/unittests/Format/FormatTest.cpp | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index cdd77759fd2..a438a53c370 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -576,7 +576,7 @@ void UnwrappedLineParser::parseLabel() { unsigned OldLineLevel = Line->Level; if (Line->Level > 0) --Line->Level; - if (FormatTok.Tok.is(tok::l_brace)) { + if (CommentsBeforeNextToken.empty() && FormatTok.Tok.is(tok::l_brace)) { parseBlock(/*MustBeDeclaration=*/ false); if (FormatTok.Tok.is(tok::kw_break)) parseStructuralElement(); // "break;" after "}" goes on the same line. diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index a3afbee916e..a940f7092fc 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -432,6 +432,15 @@ TEST_F(FormatTest, FormatsSwitchStatement) { "case 1:\n" " f();\n" "}"); + verifyFormat("switch (x) {\n" + "case 1:\n" + " // Do amazing stuff\n" + " {\n" + " f();\n" + " g();\n" + " }\n" + " break;\n" + "}"); verifyGoogleFormat("switch (x) {\n" " case 1:\n" |

