[clang] 13351fd - [clang-format] Recognize "if consteval".
Marek Kurdej via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 2 08:46:52 PST 2022
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(); }",
More information about the cfe-commits
mailing list