[PATCH] D141563: [clang-format] Fix a bug in DerivePointerAlignment fallback
Owen Pan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 13 12:58:55 PST 2023
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG2e2aa8bb6dea: [clang-format] Fix a bug in DerivePointerAlignment fallback (authored by owenpan).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141563/new/
https://reviews.llvm.org/D141563
Files:
clang/lib/Format/Format.cpp
clang/unittests/Format/FormatTest.cpp
Index: clang/unittests/Format/FormatTest.cpp
===================================================================
--- clang/unittests/Format/FormatTest.cpp
+++ clang/unittests/Format/FormatTest.cpp
@@ -10781,6 +10781,33 @@
format(Prefix + "int* x;", DerivePointerAlignment));
}
+TEST_F(FormatTest, PointerAlignmentFallback) {
+ FormatStyle Style = getLLVMStyle();
+ Style.DerivePointerAlignment = true;
+
+ const StringRef Code("int* p;\n"
+ "int *q;\n"
+ "int * r;");
+
+ EXPECT_EQ(Style.PointerAlignment, FormatStyle::PAS_Right);
+ verifyFormat("int *p;\n"
+ "int *q;\n"
+ "int *r;",
+ Code, Style);
+
+ Style.PointerAlignment = FormatStyle::PAS_Left;
+ verifyFormat("int* p;\n"
+ "int* q;\n"
+ "int* r;",
+ Code, Style);
+
+ Style.PointerAlignment = FormatStyle::PAS_Middle;
+ verifyFormat("int * p;\n"
+ "int * q;\n"
+ "int * r;",
+ Code, Style);
+}
+
TEST_F(FormatTest, UnderstandsNewAndDelete) {
verifyFormat("void f() {\n"
" A *a = new A;\n"
Index: clang/lib/Format/Format.cpp
===================================================================
--- clang/lib/Format/Format.cpp
+++ clang/lib/Format/Format.cpp
@@ -2282,9 +2282,11 @@
}
}
if (Style.DerivePointerAlignment) {
- Style.PointerAlignment = countVariableAlignments(AnnotatedLines) <= 0
- ? FormatStyle::PAS_Left
- : FormatStyle::PAS_Right;
+ const auto NetRightCount = countVariableAlignments(AnnotatedLines);
+ if (NetRightCount > 0)
+ Style.PointerAlignment = FormatStyle::PAS_Right;
+ else if (NetRightCount < 0)
+ Style.PointerAlignment = FormatStyle::PAS_Left;
Style.ReferenceAlignment = FormatStyle::RAS_Pointer;
}
if (Style.Standard == FormatStyle::LS_Auto) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D141563.489108.patch
Type: text/x-patch
Size: 1983 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230113/15aa1a02/attachment.bin>
More information about the cfe-commits
mailing list