https://github.com/owenca created https://github.com/llvm/llvm-project/pull/123690
Fixes #123573. >From 966ff2aea1eb0c137bdde04076c59de756204bc2 Mon Sep 17 00:00:00 2001 From: Owen Pan <owenpi...@gmail.com> Date: Mon, 20 Jan 2025 22:02:04 -0800 Subject: [PATCH] [clang-format] Handle leading C++11 attribute in QualifierAlignment Fixes #123573. --- clang/lib/Format/QualifierAlignmentFixer.cpp | 3 ++- clang/unittests/Format/QualifierFixerTest.cpp | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/clang/lib/Format/QualifierAlignmentFixer.cpp b/clang/lib/Format/QualifierAlignmentFixer.cpp index 530b2dd538cee0..21fb5074b4928f 100644 --- a/clang/lib/Format/QualifierAlignmentFixer.cpp +++ b/clang/lib/Format/QualifierAlignmentFixer.cpp @@ -386,7 +386,8 @@ const FormatToken *LeftRightQualifierAlignmentFixer::analyzeLeft( // For left qualifiers preceeded by nothing, a template declaration, or *,&,&& // we only perform sorting. if (!TypeToken || TypeToken->isPointerOrReference() || - TypeToken->ClosesRequiresClause || TypeToken->ClosesTemplateDeclaration) { + TypeToken->ClosesRequiresClause || TypeToken->ClosesTemplateDeclaration || + TypeToken->is(tok::r_square)) { // Don't sort past a non-configured qualifier token. const FormatToken *FirstQual = Tok; diff --git a/clang/unittests/Format/QualifierFixerTest.cpp b/clang/unittests/Format/QualifierFixerTest.cpp index 9ed567445eb07e..129828b0d187a9 100644 --- a/clang/unittests/Format/QualifierFixerTest.cpp +++ b/clang/unittests/Format/QualifierFixerTest.cpp @@ -1279,6 +1279,18 @@ TEST_F(QualifierFixerTest, WithConstraints) { Style); } +TEST_F(QualifierFixerTest, WithCpp11Attribute) { + FormatStyle Style = getLLVMStyle(); + Style.QualifierAlignment = FormatStyle::QAS_Custom; + Style.QualifierOrder = {"static", "constexpr", "inline", "type"}; + + verifyFormat("[[nodiscard]] static constexpr inline int func() noexcept {}", + "[[nodiscard]] inline constexpr static int func() noexcept {}", + Style); + verifyFormat("[[maybe_unused]] static constexpr int A", + "[[maybe_unused]] constexpr static int A", Style); +} + TEST_F(QualifierFixerTest, DisableRegions) { FormatStyle Style = getLLVMStyle(); Style.QualifierAlignment = FormatStyle::QAS_Custom; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits