diff options
author | Owen Pan <owenpiano@gmail.com> | 2025-02-04 01:33:44 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-04 01:33:44 -0800 |
commit | eb6ca1242c1035fac6a8f1edfe7925b4994d4ecf (patch) | |
tree | 98de0ee4a47149212625f34313c213dad897ffdd /clang/lib/Format/QualifierAlignmentFixer.cpp | |
parent | cdca04913ad2403f41fa5649c587e6bf96d54e33 (diff) | |
download | llvm-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.cpp | 12 |
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(), |