Author: Jorge Gorbe Moya Date: 2022-03-21T14:39:14-07:00 New Revision: 5b811586758808ce3335272d5b41852cf87666c7
URL: https://github.com/llvm/llvm-project/commit/5b811586758808ce3335272d5b41852cf87666c7 DIFF: https://github.com/llvm/llvm-project/commit/5b811586758808ce3335272d5b41852cf87666c7.diff LOG: Revert "[clang-format] Handle attributes before case label." This reverts commit 596fa2d90044841c33b9a0e6b17406c2a45077a2. Added: Modified: clang/lib/Format/UnwrappedLineParser.cpp clang/lib/Format/UnwrappedLineParser.h clang/unittests/Format/FormatTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index bef8ed54fab8a..36205b8ee18cd 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -480,10 +480,6 @@ bool UnwrappedLineParser::parseLevel(bool HasOpeningBrace, unsigned StatementCount = 0; bool SwitchLabelEncountered = false; do { - if (FormatTok->getType() == TT_AttributeMacro) { - nextToken(); - continue; - } tok::TokenKind kind = FormatTok->Tok.getKind(); if (FormatTok->getType() == TT_MacroBlockBegin) kind = tok::l_brace; @@ -573,8 +569,6 @@ bool UnwrappedLineParser::parseLevel(bool HasOpeningBrace, parseCSharpAttribute(); break; } - if (handleCppAttributes()) - break; LLVM_FALLTHROUGH; default: ParseDefault(); @@ -1403,11 +1397,9 @@ void UnwrappedLineParser::parseStructuralElement(IfStmtKind *IfKind, // e.g. "default void f() {}" in a Java interface. break; case tok::kw_case: - if (Style.isJavaScript() && Line->MustBeDeclaration) { + if (Style.isJavaScript() && Line->MustBeDeclaration) // 'case: string' field declaration. - nextToken(); break; - } parseCaseLabel(); return; case tok::kw_try: @@ -1828,12 +1820,6 @@ void UnwrappedLineParser::parseStructuralElement(IfStmtKind *IfKind, case tok::kw_new: parseNew(); break; - case tok::kw_case: - if (Style.isJavaScript() && Line->MustBeDeclaration) - // 'case: string' field declaration. - break; - parseCaseLabel(); - break; default: nextToken(); break; @@ -2402,24 +2388,17 @@ static void markOptionalBraces(FormatToken *LeftBrace) { RightBrace->Optional = true; } -void UnwrappedLineParser::handleAttributes() { - // Handle AttributeMacro, e.g. `if (x) UNLIKELY`. - if (FormatTok->is(TT_AttributeMacro)) - nextToken(); - handleCppAttributes(); -} - -bool UnwrappedLineParser::handleCppAttributes() { - // Handle [[likely]] / [[unlikely]] attributes. - if (FormatTok->is(tok::l_square) && tryToParseSimpleAttribute()) { - parseSquare(); - return true; - } - return false; -} - FormatToken *UnwrappedLineParser::parseIfThenElse(IfStmtKind *IfKind, bool KeepBraces) { + auto HandleAttributes = [this]() { + // Handle AttributeMacro, e.g. `if (x) UNLIKELY`. + if (FormatTok->is(TT_AttributeMacro)) + nextToken(); + // Handle [[likely]] / [[unlikely]] attributes. + if (FormatTok->is(tok::l_square) && tryToParseSimpleAttribute()) + parseSquare(); + }; + assert(FormatTok->is(tok::kw_if) && "'if' expected"); nextToken(); if (FormatTok->is(tok::exclaim)) @@ -2432,7 +2411,7 @@ FormatToken *UnwrappedLineParser::parseIfThenElse(IfStmtKind *IfKind, if (FormatTok->is(tok::l_paren)) parseParens(); } - handleAttributes(); + HandleAttributes(); bool NeedsUnwrappedLine = false; keepAncestorBraces(); @@ -2469,7 +2448,7 @@ FormatToken *UnwrappedLineParser::parseIfThenElse(IfStmtKind *IfKind, Kind = IfStmtKind::IfElse; } nextToken(); - handleAttributes(); + HandleAttributes(); if (FormatTok->is(tok::l_brace)) { ElseLeftBrace = FormatTok; CompoundStatementIndenter Indenter(this, Style, Line->Level); diff --git a/clang/lib/Format/UnwrappedLineParser.h b/clang/lib/Format/UnwrappedLineParser.h index 798bae24ad075..5cc01398a5457 100644 --- a/clang/lib/Format/UnwrappedLineParser.h +++ b/clang/lib/Format/UnwrappedLineParser.h @@ -121,8 +121,6 @@ class UnwrappedLineParser { void parseSquare(bool LambdaIntroducer = false); void keepAncestorBraces(); void parseUnbracedBody(bool CheckEOF = false); - void handleAttributes(); - bool handleCppAttributes(); FormatToken *parseIfThenElse(IfStmtKind *IfKind, bool KeepBraces = false); void parseTryCatch(); void parseForOrWhileLoop(); diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index e36a267c01f4b..539e9c22767ea 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -2609,52 +2609,6 @@ TEST_F(FormatTest, FormatsSwitchStatement) { "}", getLLVMStyleWithColumns(34)); - verifyFormat("switch (a) {\n" - "[[likely]] case 1:\n" - " return;\n" - "}"); - verifyFormat("switch (a) {\n" - "[[likely]] [[other::likely]] case 1:\n" - " return;\n" - "}"); - verifyFormat("switch (x) {\n" - "case 1:\n" - " return;\n" - "[[likely]] case 2:\n" - " return;\n" - "}"); - verifyFormat("switch (a) {\n" - "case 1:\n" - "[[likely]] case 2:\n" - " return;\n" - "}"); - FormatStyle Attributes = getLLVMStyle(); - Attributes.AttributeMacros.push_back("LIKELY"); - Attributes.AttributeMacros.push_back("OTHER_LIKELY"); - verifyFormat("switch (a) {\n" - "LIKELY case b:\n" - " return;\n" - "}", - Attributes); - verifyFormat("switch (a) {\n" - "LIKELY OTHER_LIKELY() case b:\n" - " return;\n" - "}", - Attributes); - verifyFormat("switch (a) {\n" - "case 1:\n" - " return;\n" - "LIKELY case 2:\n" - " return;\n" - "}", - Attributes); - verifyFormat("switch (a) {\n" - "case 1:\n" - "LIKELY case 2:\n" - " return;\n" - "}", - Attributes); - FormatStyle Style = getLLVMStyle(); Style.IndentCaseLabels = true; Style.AllowShortBlocksOnASingleLine = FormatStyle::SBS_Never; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits