Author: Marek Kurdej Date: 2022-03-02T17:46:45+01:00 New Revision: 13351fdf8cb448ffd60727f031df0d7cb348e48a
URL: https://github.com/llvm/llvm-project/commit/13351fdf8cb448ffd60727f031df0d7cb348e48a DIFF: https://github.com/llvm/llvm-project/commit/13351fdf8cb448ffd60727f031df0d7cb348e48a.diff LOG: [clang-format] Recognize "if consteval". Fixes https://github.com/llvm/llvm-project/issues/54140. Reviewed By: MyDeveloperDay, JohelEGP Differential Revision: https://reviews.llvm.org/D120806 Added: Modified: clang/lib/Format/UnwrappedLineParser.cpp clang/unittests/Format/FormatTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index 8f034a8ce1599..46562f7ae8b84 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -2384,10 +2384,16 @@ FormatToken *UnwrappedLineParser::parseIfThenElse(IfStmtKind *IfKind, assert(FormatTok->is(tok::kw_if) && "'if' expected"); nextToken(); - if (FormatTok->isOneOf(tok::kw_constexpr, tok::identifier)) + if (FormatTok->is(tok::exclaim)) nextToken(); - if (FormatTok->is(tok::l_paren)) - parseParens(); + if (FormatTok->is(tok::kw_consteval)) { + nextToken(); + } else { + if (FormatTok->isOneOf(tok::kw_constexpr, tok::identifier)) + nextToken(); + if (FormatTok->is(tok::l_paren)) + parseParens(); + } HandleAttributes(); bool NeedsUnwrappedLine = false; diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 5fa56a9048b03..94f6dea1a2ed4 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -583,6 +583,29 @@ TEST_F(FormatTest, FormatIfWithoutCompoundStatement) { " }\n" "g();"); + verifyFormat("if consteval {\n}"); + verifyFormat("if !consteval {\n}"); + verifyFormat("if not consteval {\n}"); + verifyFormat("if consteval {\n} else {\n}"); + verifyFormat("if !consteval {\n} else {\n}"); + verifyFormat("if consteval {\n" + " f();\n" + "}"); + verifyFormat("if !consteval {\n" + " f();\n" + "}"); + verifyFormat("if consteval {\n" + " f();\n" + "} else {\n" + " g();\n" + "}"); + verifyFormat("if CONSTEVAL {\n" + " f();\n" + "}"); + verifyFormat("if !CONSTEVAL {\n" + " f();\n" + "}"); + verifyFormat("if (a)\n" " g();"); verifyFormat("if (a) {\n" @@ -1569,6 +1592,9 @@ TEST_F(FormatTest, FormatShortBracedStatements) { verifyFormat("if (true) {}", AllowSimpleBracedStatements); verifyFormat("if constexpr (true) {}", AllowSimpleBracedStatements); verifyFormat("if CONSTEXPR (true) {}", AllowSimpleBracedStatements); + verifyFormat("if consteval {}", AllowSimpleBracedStatements); + verifyFormat("if !consteval {}", AllowSimpleBracedStatements); + verifyFormat("if CONSTEVAL {}", AllowSimpleBracedStatements); verifyFormat("MYIF (true) {}", AllowSimpleBracedStatements); verifyFormat("MYIF constexpr (true) {}", AllowSimpleBracedStatements); verifyFormat("MYIF CONSTEXPR (true) {}", AllowSimpleBracedStatements); @@ -1577,9 +1603,13 @@ TEST_F(FormatTest, FormatShortBracedStatements) { verifyFormat("if (true) { f(); }", AllowSimpleBracedStatements); verifyFormat("if constexpr (true) { f(); }", AllowSimpleBracedStatements); verifyFormat("if CONSTEXPR (true) { f(); }", AllowSimpleBracedStatements); + verifyFormat("if consteval { f(); }", AllowSimpleBracedStatements); + verifyFormat("if CONSTEVAL { f(); }", AllowSimpleBracedStatements); verifyFormat("MYIF (true) { f(); }", AllowSimpleBracedStatements); verifyFormat("MYIF constexpr (true) { f(); }", AllowSimpleBracedStatements); verifyFormat("MYIF CONSTEXPR (true) { f(); }", AllowSimpleBracedStatements); + verifyFormat("MYIF consteval { f(); }", AllowSimpleBracedStatements); + verifyFormat("MYIF CONSTEVAL { f(); }", AllowSimpleBracedStatements); verifyFormat("while (true) { f(); }", AllowSimpleBracedStatements); verifyFormat("for (;;) { f(); }", AllowSimpleBracedStatements); verifyFormat("if (true) { fffffffffffffffffffffff(); }", _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits