llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-format Author: Vlad Serebrennikov (Endilll) <details> <summary>Changes</summary> This patch addresses some example of bad formatting in Clang. The following commit contains only changes suggested by clang-format: https://github.com/llvm/llvm-project/pull/70349/commits/21689b56d1fc1db0b2263e8049ff656d3757ad36. I believe it's a net negative on readability, with a couple of particularly bad cases. Highlights: ```diff - [[clang::preferred_type(bool)]] - mutable unsigned CachedLocalOrUnnamed : 1; + [[clang::preferred_type(bool)]] mutable unsigned CachedLocalOrUnnamed : 1; ``` ```diff - [[clang::preferred_type(TypeDependence)]] - unsigned Dependence : llvm::BitWidth<TypeDependence>; + [[clang::preferred_type(TypeDependence)]] unsigned Dependence + : llvm::BitWidth<TypeDependence>; ``` ```diff - [[clang::preferred_type(ExceptionSpecificationType)]] - unsigned ExceptionSpecType : 4; + [[clang::preferred_type( + ExceptionSpecificationType)]] unsigned ExceptionSpecType : 4; ``` --- Full diff: https://github.com/llvm/llvm-project/pull/70360.diff 3 Files Affected: - (modified) clang/docs/ReleaseNotes.rst (+1) - (modified) clang/lib/Format/Format.cpp (+1-1) - (modified) clang/unittests/Format/FormatTest.cpp (+3-4) ``````````diff diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 7238386231e1a28..6cd5e3e077e6f3c 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -794,6 +794,7 @@ clang-format ------------ - Add ``AllowBreakBeforeNoexceptSpecifier`` option. - Add ``AllowShortCompoundRequirementOnASingleLine`` option. +- Change ``BreakAfterAttributes`` from ``Never`` to ``Leave`` in LLVM style libclang -------- diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index edb33f4af4defef..e1abcac5604a410 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -1476,7 +1476,7 @@ FormatStyle getLLVMStyle(FormatStyle::LanguageKind Language) { /*SplitEmptyFunction=*/true, /*SplitEmptyRecord=*/true, /*SplitEmptyNamespace=*/true}; - LLVMStyle.BreakAfterAttributes = FormatStyle::ABS_Never; + LLVMStyle.BreakAfterAttributes = FormatStyle::ABS_Leave; LLVMStyle.BreakAfterJavaFieldAnnotations = false; LLVMStyle.BreakArrays = true; LLVMStyle.BreakBeforeBinaryOperators = FormatStyle::BOS_None; diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index b2d84f2ee389551..5cec49a9173e824 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -26179,7 +26179,7 @@ TEST_F(FormatTest, RemoveSemicolon) { TEST_F(FormatTest, BreakAfterAttributes) { FormatStyle Style = getLLVMStyle(); - EXPECT_EQ(Style.BreakAfterAttributes, FormatStyle::ABS_Never); + EXPECT_EQ(Style.BreakAfterAttributes, FormatStyle::ABS_Leave); constexpr StringRef Code("[[nodiscard]] inline int f(int &i);\n" "[[foo([[]])]] [[nodiscard]]\n" @@ -26193,7 +26193,9 @@ TEST_F(FormatTest, BreakAfterAttributes) { " i = 0;\n" " return 1;\n" "}"); + verifyNoChange(Code, Style); + Style.BreakAfterAttributes = FormatStyle::ABS_Never; verifyFormat("[[nodiscard]] inline int f(int &i);\n" "[[foo([[]])]] [[nodiscard]] int g(int &i);\n" "[[nodiscard]] inline int f(int &i) {\n" @@ -26206,9 +26208,6 @@ TEST_F(FormatTest, BreakAfterAttributes) { "}", Code, Style); - Style.BreakAfterAttributes = FormatStyle::ABS_Leave; - verifyNoChange(Code, Style); - Style.BreakAfterAttributes = FormatStyle::ABS_Always; verifyFormat("[[nodiscard]]\n" "inline int f(int &i);\n" `````````` </details> https://github.com/llvm/llvm-project/pull/70360 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits