[PATCH] D116592: [clang-format] Missing space after cast in a macro
MyDeveloperDay via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 4 03:54:55 PST 2022
MyDeveloperDay created this revision.
MyDeveloperDay added reviewers: curdeius, HazardyKnusperkeks, owenpan.
MyDeveloperDay added projects: clang, clang-format.
MyDeveloperDay requested review of this revision.
https://github.com/llvm/llvm-project/issues/52979
Though SpaceAfterCStyleCast is set to true, clang-format 13 does not add a space after (void *) here:
#define CONF_BOOL(conf, offset) (bool *) (void *)((char *) (conf) + (offset))
This patch addresses that
Fixes: #52979
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D116592
Files:
clang/lib/Format/TokenAnnotator.cpp
clang/unittests/Format/FormatTest.cpp
Index: clang/unittests/Format/FormatTest.cpp
===================================================================
--- clang/unittests/Format/FormatTest.cpp
+++ clang/unittests/Format/FormatTest.cpp
@@ -10150,6 +10150,8 @@
" (aaaaaaaaaaaaaaaaaaaaaaaaaa *)(aaaaaaaaaaaaaaaaaaaaaa +\n"
" bbbbbbbbbbbbbbbbbbbbbb);");
+ verifyFormat("#define CONF_BOOL(x) (bool *)(void *)(x)");
+
// These are not casts.
verifyFormat("void f(int *) {}");
verifyFormat("f(foo)->b;");
@@ -14643,6 +14645,7 @@
" break;\n"
"}",
Spaces);
+ verifyFormat("#define CONF_BOOL(x) ( bool * ) ( void * ) (x)", Spaces);
// Run subset of tests again with:
Spaces.SpacesInCStyleCastParentheses = false;
@@ -14662,6 +14665,7 @@
verifyFormat("size_t idx = (a->foo)(a - 1);", Spaces);
verifyFormat("size_t idx = (*foo)(a - 1);", Spaces);
verifyFormat("size_t idx = (*(foo))(a - 1);", Spaces);
+ verifyFormat("#define CONF_BOOL(x) (bool *) (void *) (x)", Spaces);
Spaces.ColumnLimit = 80;
Spaces.IndentWidth = 4;
Spaces.AlignAfterOpenBracket = FormatStyle::BAS_AlwaysBreak;
Index: clang/lib/Format/TokenAnnotator.cpp
===================================================================
--- clang/lib/Format/TokenAnnotator.cpp
+++ clang/lib/Format/TokenAnnotator.cpp
@@ -1882,9 +1882,9 @@
FormatToken *LeftOfParens = Tok.MatchingParen->getPreviousNonComment();
if (LeftOfParens) {
- // If there is a closing parenthesis left of the current parentheses,
- // look past it as these might be chained casts.
- if (LeftOfParens->is(tok::r_paren)) {
+ // If there is a closing parenthesis left of the current
+ // parentheses, look past it as these might be chained casts.
+ if (LeftOfParens->is(tok::r_paren) && !LeftOfParens->is(TT_CastRParen)) {
if (!LeftOfParens->MatchingParen ||
!LeftOfParens->MatchingParen->Previous)
return false;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D116592.397256.patch
Type: text/x-patch
Size: 2022 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220104/5dc4f1ac/attachment.bin>
More information about the cfe-commits
mailing list