[PATCH] D80144: [clang-format] @lefticus just taught the world how to use [[unlikely]] but we forgot to teach clang-format
MyDeveloperDay via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue May 19 09:17:24 PDT 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG5d82cb3c3a6a: [clang-format] @lefticus just taught the world how to use [[unlikely]] but we… (authored by MyDeveloperDay).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D80144/new/
https://reviews.llvm.org/D80144
Files:
clang/lib/Format/UnwrappedLineParser.cpp
clang/unittests/Format/FormatTest.cpp
Index: clang/unittests/Format/FormatTest.cpp
===================================================================
--- clang/unittests/Format/FormatTest.cpp
+++ clang/unittests/Format/FormatTest.cpp
@@ -16363,6 +16363,36 @@
Style));
}
+TEST_F(FormatTest, LikelyUnlikely) {
+ FormatStyle Style = getLLVMStyle();
+
+ verifyFormat("if (argc > 5) [[unlikely]] {\n"
+ " return 29;\n"
+ "}",
+ Style);
+
+ verifyFormat("if (argc > 5) [[likely]] {\n"
+ " return 29;\n"
+ "}",
+ Style);
+
+ verifyFormat("if (argc > 5) [[unlikely]] {\n"
+ " return 29;\n"
+ "} else [[likely]] {\n"
+ " return 42;\n"
+ "}\n",
+ Style);
+
+ verifyFormat("if (argc > 5) [[unlikely]] {\n"
+ " return 29;\n"
+ "} else if (argc > 10) [[likely]] {\n"
+ " return 99;\n"
+ "} else {\n"
+ " return 42;\n"
+ "}\n",
+ Style);
+}
+
} // namespace
} // namespace format
} // namespace clang
Index: clang/lib/Format/UnwrappedLineParser.cpp
===================================================================
--- clang/lib/Format/UnwrappedLineParser.cpp
+++ clang/lib/Format/UnwrappedLineParser.cpp
@@ -1956,6 +1956,9 @@
nextToken();
if (FormatTok->Tok.is(tok::l_paren))
parseParens();
+ // handle [[likely]] / [[unlikely]]
+ if (FormatTok->is(tok::l_square))
+ parseSquare();
bool NeedsUnwrappedLine = false;
if (FormatTok->Tok.is(tok::l_brace)) {
CompoundStatementIndenter Indenter(this, Style, Line->Level);
@@ -1972,6 +1975,9 @@
}
if (FormatTok->Tok.is(tok::kw_else)) {
nextToken();
+ // handle [[likely]] / [[unlikely]]
+ if (FormatTok->is(tok::l_square))
+ parseSquare();
if (FormatTok->Tok.is(tok::l_brace)) {
CompoundStatementIndenter Indenter(this, Style, Line->Level);
parseBlock(/*MustBeDeclaration=*/false);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D80144.264943.patch
Type: text/x-patch
Size: 2031 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200519/78c81ec5/attachment.bin>
More information about the cfe-commits
mailing list