aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Pan <owenpiano@gmail.com>2024-12-21 17:16:29 -0800
committerGitHub <noreply@github.com>2024-12-21 17:16:29 -0800
commit40acaa394fa235796c2d98de87380887c59d5448 (patch)
treeec3338d697990347b482fbb1ec0789af6a43d4b9
parent3fa5b52714b3dadbc5fddfc4ae1e7c423a652962 (diff)
downloadllvm-40acaa394fa235796c2d98de87380887c59d5448.zip
llvm-40acaa394fa235796c2d98de87380887c59d5448.tar.gz
llvm-40acaa394fa235796c2d98de87380887c59d5448.tar.bz2
[clang-format] Fix a crash in `QualifierAlignment: Right` (#120821)
Fixes #120793.
-rw-r--r--clang/lib/Format/QualifierAlignmentFixer.cpp2
-rw-r--r--clang/unittests/Format/QualifierFixerTest.cpp5
2 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Format/QualifierAlignmentFixer.cpp b/clang/lib/Format/QualifierAlignmentFixer.cpp
index 593f8ef..530b2dd 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 f9255c6..9ed5674 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) {