[clang] [clang-format] Fix a crash in `QualifierAlignment: Right` (PR #120821)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Dec 20 20:07:59 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-format
Author: Owen Pan (owenca)
<details>
<summary>Changes</summary>
Fixes #<!-- -->120793.
---
Full diff: https://github.com/llvm/llvm-project/pull/120821.diff
2 Files Affected:
- (modified) clang/lib/Format/QualifierAlignmentFixer.cpp (+1-1)
- (modified) clang/unittests/Format/QualifierFixerTest.cpp (+5)
``````````diff
diff --git a/clang/lib/Format/QualifierAlignmentFixer.cpp b/clang/lib/Format/QualifierAlignmentFixer.cpp
index 593f8efff25aa9..530b2dd538cee0 100644
--- a/clang/lib/Format/QualifierAlignmentFixer.cpp
+++ b/clang/lib/Format/QualifierAlignmentFixer.cpp
@@ -348,7 +348,7 @@ const FormatToken *LeftRightQualifierAlignmentFixer::analyzeRight(
}
}
- if (Next->is(tok::kw_auto))
+ if (Next && Next->is(tok::kw_auto))
TypeToken = Next;
// Place the Qualifier at the end of the list of qualifiers.
diff --git a/clang/unittests/Format/QualifierFixerTest.cpp b/clang/unittests/Format/QualifierFixerTest.cpp
index f9255c6e4c7088..9ed567445eb07e 100644
--- a/clang/unittests/Format/QualifierFixerTest.cpp
+++ b/clang/unittests/Format/QualifierFixerTest.cpp
@@ -531,6 +531,11 @@ TEST_F(QualifierFixerTest, RightQualifier) {
verifyFormat("float (C::*const p)(int);", Style);
verifyFormat("float (C::*p)(int) const;", Style);
verifyFormat("float const (C::*p)(int);", "const float (C::*p)(int);", Style);
+
+ Style.BreakBeforeBraces = FormatStyle::BS_Custom;
+ Style.BraceWrapping.AfterFunction = true;
+ verifyFormat("auto foo() -> T const { return bar; }",
+ "auto foo() -> const T { return bar; }", Style);
}
TEST_F(QualifierFixerTest, LeftQualifier) {
``````````
</details>
https://github.com/llvm/llvm-project/pull/120821
More information about the cfe-commits
mailing list