1111#include " clang/AST/ASTContext.h"
1212#include " clang/AST/ExprCXX.h"
1313#include " clang/AST/Type.h"
14+ #include " clang/Sema/DeclSpec.h"
1415#include " clang/Tooling/FixIt.h"
1516#include < optional>
1617
@@ -71,15 +72,17 @@ static std::optional<FixItHint> fixIfNotDangerous(SourceLocation Loc,
7172
7273// Build a string that can be emitted as FixIt with either a space in before
7374// or after the qualifier, either ' const' or 'const '.
74- static std::string buildQualifier (DeclSpec ::TQ Qualifier,
75+ static std::string buildQualifier (Qualifiers ::TQ Qualifier,
7576 bool WhitespaceBefore = false ) {
7677 if (WhitespaceBefore)
77- return (llvm::Twine (' ' ) + DeclSpec::getSpecifierName (Qualifier)).str ();
78- return (llvm::Twine (DeclSpec::getSpecifierName (Qualifier)) + " " ).str ();
78+ return (llvm::Twine (' ' ) + Qualifiers::fromCVRMask (Qualifier).getAsString ())
79+ .str ();
80+ return (llvm::Twine (Qualifiers::fromCVRMask (Qualifier).getAsString ()) + " " )
81+ .str ();
7982}
8083
8184static std::optional<FixItHint> changeValue (const VarDecl &Var,
82- DeclSpec ::TQ Qualifier,
85+ Qualifiers ::TQ Qualifier,
8386 QualifierTarget QualTarget,
8487 QualifierPolicy QualPolicy,
8588 const ASTContext &Context) {
@@ -99,7 +102,7 @@ static std::optional<FixItHint> changeValue(const VarDecl &Var,
99102}
100103
101104static std::optional<FixItHint> changePointerItself (const VarDecl &Var,
102- DeclSpec ::TQ Qualifier,
105+ Qualifiers ::TQ Qualifier,
103106 const ASTContext &Context) {
104107 if (locDangerous (Var.getLocation ()))
105108 return std::nullopt ;
@@ -112,7 +115,7 @@ static std::optional<FixItHint> changePointerItself(const VarDecl &Var,
112115}
113116
114117static std::optional<FixItHint>
115- changePointer (const VarDecl &Var, DeclSpec ::TQ Qualifier, const Type *Pointee,
118+ changePointer (const VarDecl &Var, Qualifiers ::TQ Qualifier, const Type *Pointee,
116119 QualifierTarget QualTarget, QualifierPolicy QualPolicy,
117120 const ASTContext &Context) {
118121 // The pointer itself shall be marked as `const`. This is always to the right
@@ -163,7 +166,7 @@ changePointer(const VarDecl &Var, DeclSpec::TQ Qualifier, const Type *Pointee,
163166}
164167
165168static std::optional<FixItHint>
166- changeReferencee (const VarDecl &Var, DeclSpec ::TQ Qualifier, QualType Pointee,
169+ changeReferencee (const VarDecl &Var, Qualifiers ::TQ Qualifier, QualType Pointee,
167170 QualifierTarget QualTarget, QualifierPolicy QualPolicy,
168171 const ASTContext &Context) {
169172 if (QualPolicy == QualifierPolicy::Left && isValueType (Pointee))
@@ -183,7 +186,7 @@ changeReferencee(const VarDecl &Var, DeclSpec::TQ Qualifier, QualType Pointee,
183186
184187std::optional<FixItHint> addQualifierToVarDecl (const VarDecl &Var,
185188 const ASTContext &Context,
186- DeclSpec ::TQ Qualifier,
189+ Qualifiers ::TQ Qualifier,
187190 QualifierTarget QualTarget,
188191 QualifierPolicy QualPolicy) {
189192 assert ((QualPolicy == QualifierPolicy::Left ||
0 commit comments