[clang] 2cdabc0 - [clang-format] Handle "if consteval { ... }" for RemoveBracesLLVM
via cfe-commits
cfe-commits at lists.llvm.org
Sun May 15 01:34:00 PDT 2022
Author: owenca
Date: 2022-05-15T01:33:44-07:00
New Revision: 2cdabc0322929a3954b63c1f29f23959e2e50278
URL: https://github.com/llvm/llvm-project/commit/2cdabc0322929a3954b63c1f29f23959e2e50278
DIFF: https://github.com/llvm/llvm-project/commit/2cdabc0322929a3954b63c1f29f23959e2e50278.diff
LOG: [clang-format] Handle "if consteval { ... }" for RemoveBracesLLVM
Differential Revision: https://reviews.llvm.org/D125593
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 6ba8edccbb117..c5135222af698 100644
--- a/clang/lib/Format/UnwrappedLineParser.cpp
+++ b/clang/lib/Format/UnwrappedLineParser.cpp
@@ -2473,7 +2473,12 @@ FormatToken *UnwrappedLineParser::parseIfThenElse(IfStmtKind *IfKind,
nextToken();
if (FormatTok->is(tok::exclaim))
nextToken();
+
+ bool KeepIfBraces = false;
+ bool KeepElseBraces = false;
if (FormatTok->is(tok::kw_consteval)) {
+ KeepIfBraces = true;
+ KeepElseBraces = true;
nextToken();
} else {
if (FormatTok->isOneOf(tok::kw_constexpr, tok::identifier))
@@ -2501,10 +2506,10 @@ FormatToken *UnwrappedLineParser::parseIfThenElse(IfStmtKind *IfKind,
parseUnbracedBody();
}
- bool KeepIfBraces = false;
if (Style.RemoveBracesLLVM) {
assert(!NestedTooDeep.empty());
- KeepIfBraces = (IfLeftBrace && !IfLeftBrace->MatchingParen) ||
+ KeepIfBraces = KeepIfBraces ||
+ (IfLeftBrace && !IfLeftBrace->MatchingParen) ||
NestedTooDeep.back() || IfBlockKind == IfStmtKind::IfOnly ||
IfBlockKind == IfStmtKind::IfElseIf;
}
@@ -2558,8 +2563,9 @@ FormatToken *UnwrappedLineParser::parseIfThenElse(IfStmtKind *IfKind,
return nullptr;
assert(!NestedTooDeep.empty());
- const bool KeepElseBraces =
- (ElseLeftBrace && !ElseLeftBrace->MatchingParen) || NestedTooDeep.back();
+ KeepElseBraces = KeepElseBraces ||
+ (ElseLeftBrace && !ElseLeftBrace->MatchingParen) ||
+ NestedTooDeep.back();
NestedTooDeep.pop_back();
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 8ac59dc4a5131..e4fea9085b574 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -25379,6 +25379,25 @@ TEST_F(FormatTest, RemoveBraces) {
"}",
Style);
+ verifyFormat("if consteval {\n"
+ " f();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ Style);
+
+ verifyFormat("if not consteval {\n"
+ " f();\n"
+ "} else if (a) {\n"
+ " g();\n"
+ "}",
+ Style);
+
+ verifyFormat("if !consteval {\n"
+ " g();\n"
+ "}",
+ Style);
+
Style.ColumnLimit = 65;
verifyFormat("if (condition) {\n"
More information about the cfe-commits
mailing list