aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Format/QualifierAlignmentFixer.cpp
diff options
context:
space:
mode:
authorOwen Pan <owenpiano@gmail.com>2025-02-04 01:33:44 -0800
committerGitHub <noreply@github.com>2025-02-04 01:33:44 -0800
commiteb6ca1242c1035fac6a8f1edfe7925b4994d4ecf (patch)
tree98de0ee4a47149212625f34313c213dad897ffdd /clang/lib/Format/QualifierAlignmentFixer.cpp
parentcdca04913ad2403f41fa5649c587e6bf96d54e33 (diff)
downloadllvm-eb6ca1242c1035fac6a8f1edfe7925b4994d4ecf.zip
llvm-eb6ca1242c1035fac6a8f1edfe7925b4994d4ecf.tar.gz
llvm-eb6ca1242c1035fac6a8f1edfe7925b4994d4ecf.tar.bz2
[clang-format] Hanlde qualified type name for `QualifierAlignment` (#125327)
Fixes #125178.
Diffstat (limited to 'clang/lib/Format/QualifierAlignmentFixer.cpp')
-rw-r--r--clang/lib/Format/QualifierAlignmentFixer.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/clang/lib/Format/QualifierAlignmentFixer.cpp b/clang/lib/Format/QualifierAlignmentFixer.cpp
index 21fb507..23e8b44 100644
--- a/clang/lib/Format/QualifierAlignmentFixer.cpp
+++ b/clang/lib/Format/QualifierAlignmentFixer.cpp
@@ -132,8 +132,10 @@ static void rotateTokens(const SourceManager &SourceMgr,
// Then move through the other tokens.
auto *Tok = Begin;
while (Tok != End) {
- if (!NewText.empty() && !endsWithSpace(NewText))
+ if (!NewText.empty() && !endsWithSpace(NewText) &&
+ Tok->isNot(tok::coloncolon)) {
NewText += " ";
+ }
NewText += Tok->TokenText;
Tok = Tok->Next;
@@ -412,6 +414,14 @@ const FormatToken *LeftRightQualifierAlignmentFixer::analyzeLeft(
// The case `const long long volatile int` -> `const volatile long long int`
// The case `long volatile long int const` -> `const volatile long long int`
if (TypeToken->isTypeName(LangOpts)) {
+ for (const auto *Prev = TypeToken->Previous;
+ Prev && Prev->is(tok::coloncolon); Prev = Prev->Previous) {
+ TypeToken = Prev;
+ Prev = Prev->Previous;
+ if (!(Prev && Prev->is(tok::identifier)))
+ break;
+ TypeToken = Prev;
+ }
const FormatToken *LastSimpleTypeSpecifier = TypeToken;
while (isConfiguredQualifierOrType(
LastSimpleTypeSpecifier->getPreviousNonComment(),