https://github.com/carlosgalvezp updated https://github.com/llvm/llvm-project/pull/157049
>From dc9f561223c1f1031196b34adaf30080130c6bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20G=C3=A1lvez?= <carlos.gal...@zenseact.com> Date: Fri, 5 Sep 2025 08:09:21 +0000 Subject: [PATCH] [clang-tidy] Remove global options IgnoreMacros and StrictMode They had been marked as deprecated since clang-tidy-20. After 2 releases, it's now time to fully remove support for them. Fixes #156885 --- clang-tools-extra/clang-tidy/ClangTidyCheck.cpp | 12 ------------ .../clang-tidy/bugprone/ArgumentCommentCheck.cpp | 2 +- .../clang-tidy/bugprone/LambdaFunctionNameCheck.cpp | 3 +-- .../clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp | 2 +- .../cppcoreguidelines/AvoidDoWhileCheck.cpp | 2 +- .../cppcoreguidelines/ProTypeConstCastCheck.cpp | 2 +- .../ProTypeStaticCastDowncastCheck.cpp | 2 +- .../clang-tidy/misc/UnusedParametersCheck.cpp | 2 +- .../clang-tidy/modernize/MakeSmartPtrCheck.cpp | 2 +- .../clang-tidy/modernize/TypeTraitsCheck.cpp | 2 +- .../clang-tidy/modernize/UseBoolLiteralsCheck.cpp | 2 +- .../modernize/UseDefaultMemberInitCheck.cpp | 2 +- .../modernize/UseDesignatedInitializersCheck.cpp | 3 +-- .../clang-tidy/modernize/UseEqualsDefaultCheck.cpp | 2 +- .../clang-tidy/modernize/UseEqualsDeleteCheck.cpp | 2 +- .../clang-tidy/modernize/UseStdFormatCheck.cpp | 2 +- .../clang-tidy/modernize/UseStdPrintCheck.cpp | 2 +- .../clang-tidy/modernize/UseUsingCheck.cpp | 2 +- .../InefficientStringConcatenationCheck.cpp | 2 +- .../clang-tidy/readability/AvoidConstParamsInDecls.h | 2 +- .../readability/AvoidReturnWithVoidValueCheck.cpp | 5 ++--- .../clang-tidy/readability/ConstReturnTypeCheck.h | 2 +- .../InconsistentDeclarationParameterNameCheck.h | 2 +- .../clang-tidy/readability/RedundantCastingCheck.cpp | 2 +- .../readability/RedundantDeclarationCheck.cpp | 2 +- .../readability/RedundantInlineSpecifierCheck.h | 2 +- .../readability/RedundantSmartptrGetCheck.h | 2 +- .../readability/UppercaseLiteralSuffixCheck.cpp | 2 +- .../clangd/unittests/ConfigCompileTests.cpp | 6 +----- .../clangd/unittests/ConfigYAMLTests.cpp | 4 +--- clang-tools-extra/docs/ReleaseNotes.rst | 5 +++++ .../function-cognitive-complexity-flags.cpp | 9 --------- .../Inputs/config-files/4/44/.clang-tidy | 2 +- .../Inputs/config-files/4/key-dict/.clang-tidy | 3 +-- .../infrastructure/deprecation-global-option.cpp | 3 --- .../test/clang-tidy/infrastructure/verify-config.cpp | 6 ++---- 36 files changed, 39 insertions(+), 70 deletions(-) delete mode 100644 clang-tools-extra/test/clang-tidy/infrastructure/deprecation-global-option.cpp diff --git a/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp b/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp index 341343e90822b..88abcb6946779 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp +++ b/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp @@ -62,11 +62,6 @@ ClangTidyCheck::OptionsView::get(StringRef LocalName) const { return std::nullopt; } -static const llvm::StringSet<> DeprecatedGlobalOptions{ - "StrictMode", - "IgnoreMacros", -}; - static ClangTidyOptions::OptionMap::const_iterator findPriorityOption(const ClangTidyOptions::OptionMap &Options, StringRef NamePrefix, StringRef LocalName, @@ -78,13 +73,6 @@ findPriorityOption(const ClangTidyOptions::OptionMap &Options, } auto IterLocal = Options.find((NamePrefix + LocalName).str()); auto IterGlobal = Options.find(LocalName); - // FIXME: temporary solution for deprecation warnings, should be removed - // after 22.x. Warn configuration deps on deprecation global options. - if (IterLocal == Options.end() && IterGlobal != Options.end() && - DeprecatedGlobalOptions.contains(LocalName)) - Context->configurationDiag( - "global option '%0' is deprecated, please use '%1%0' instead.") - << LocalName << NamePrefix; if (IterLocal == Options.end()) return IterGlobal; if (IterGlobal == Options.end()) diff --git a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp index b843e317c471d..15e7b53ed5be0 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp @@ -32,7 +32,7 @@ AST_MATCHER(Decl, isFromStdNamespaceOrSystemHeader) { ArgumentCommentCheck::ArgumentCommentCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - StrictMode(Options.getLocalOrGlobal("StrictMode", false)), + StrictMode(Options.get("StrictMode", false)), IgnoreSingleArgument(Options.get("IgnoreSingleArgument", false)), CommentBoolLiterals(Options.get("CommentBoolLiterals", false)), CommentIntegerLiterals(Options.get("CommentIntegerLiterals", false)), diff --git a/clang-tools-extra/clang-tidy/bugprone/LambdaFunctionNameCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/LambdaFunctionNameCheck.cpp index 6d5c470616d1d..8517d2bac0d59 100644 --- a/clang-tools-extra/clang-tidy/bugprone/LambdaFunctionNameCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/LambdaFunctionNameCheck.cpp @@ -64,8 +64,7 @@ AST_MATCHER(CXXMethodDecl, isInLambda) { return Node.getParent()->isLambda(); } LambdaFunctionNameCheck::LambdaFunctionNameCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros( - Options.getLocalOrGlobal("IgnoreMacros", DefaultIgnoreMacros)) {} + IgnoreMacros(Options.get("IgnoreMacros", DefaultIgnoreMacros)) {} void LambdaFunctionNameCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { Options.store(Opts, "IgnoreMacros", IgnoreMacros); diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp index 2fca7ae2e7eee..f2067bec001cc 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp @@ -106,7 +106,7 @@ static bool isPossiblyBitMask(const EnumDecl *EnumDec) { SuspiciousEnumUsageCheck::SuspiciousEnumUsageCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - StrictMode(Options.getLocalOrGlobal("StrictMode", false)) {} + StrictMode(Options.get("StrictMode", false)) {} void SuspiciousEnumUsageCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { Options.store(Opts, "StrictMode", StrictMode); diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidDoWhileCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidDoWhileCheck.cpp index 8f2846b74c24e..d623e05e15cc0 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidDoWhileCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidDoWhileCheck.cpp @@ -15,7 +15,7 @@ namespace clang::tidy::cppcoreguidelines { AvoidDoWhileCheck::AvoidDoWhileCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", false)) {} + IgnoreMacros(Options.get("IgnoreMacros", false)) {} void AvoidDoWhileCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { Options.store(Opts, "IgnoreMacros", IgnoreMacros); diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeConstCastCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeConstCastCheck.cpp index 8c44c1bfb62b6..b234c2a041d8c 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeConstCastCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeConstCastCheck.cpp @@ -32,7 +32,7 @@ static bool hasVolatileQualifier(QualType Type) { ProTypeConstCastCheck::ProTypeConstCastCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - StrictMode(Options.getLocalOrGlobal("StrictMode", false)) {} + StrictMode(Options.get("StrictMode", false)) {} void ProTypeConstCastCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { Options.store(Opts, "StrictMode", StrictMode); diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeStaticCastDowncastCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeStaticCastDowncastCheck.cpp index 2a89de27760fe..14616ee8514f7 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeStaticCastDowncastCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeStaticCastDowncastCheck.cpp @@ -17,7 +17,7 @@ namespace clang::tidy::cppcoreguidelines { ProTypeStaticCastDowncastCheck::ProTypeStaticCastDowncastCheck( StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - StrictMode(Options.getLocalOrGlobal("StrictMode", true)) {} + StrictMode(Options.get("StrictMode", true)) {} void ProTypeStaticCastDowncastCheck::storeOptions( ClangTidyOptions::OptionMap &Opts) { diff --git a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp index 737551637ea9e..503f62f946e81 100644 --- a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp @@ -136,7 +136,7 @@ UnusedParametersCheck::~UnusedParametersCheck() = default; UnusedParametersCheck::UnusedParametersCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - StrictMode(Options.getLocalOrGlobal("StrictMode", false)), + StrictMode(Options.get("StrictMode", false)), IgnoreVirtual(Options.get("IgnoreVirtual", false)) {} void UnusedParametersCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { diff --git a/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp b/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp index ac8476bb2f8a4..b3e29b3273a82 100644 --- a/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp @@ -46,7 +46,7 @@ MakeSmartPtrCheck::MakeSmartPtrCheck(StringRef Name, ClangTidyContext *Context, Options.get("MakeSmartPtrFunctionHeader", "<memory>")), MakeSmartPtrFunctionName( Options.get("MakeSmartPtrFunction", MakeSmartPtrFunctionName)), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)), + IgnoreMacros(Options.get("IgnoreMacros", true)), IgnoreDefaultInitialization( Options.get("IgnoreDefaultInitialization", true)) {} diff --git a/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp b/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp index 472128201acc2..15bd0a6760ec1 100644 --- a/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp @@ -220,7 +220,7 @@ static bool checkTemplatedDecl(NestedNameSpecifier NNS, TypeTraitsCheck::TypeTraitsCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", false)) {} + IgnoreMacros(Options.get("IgnoreMacros", false)) {} void TypeTraitsCheck::check(const MatchFinder::MatchResult &Result) { auto EmitValueWarning = [this, &Result](const NestedNameSpecifierLoc &QualLoc, diff --git a/clang-tools-extra/clang-tidy/modernize/UseBoolLiteralsCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseBoolLiteralsCheck.cpp index 339462093a6d6..dfcfc925b5231 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseBoolLiteralsCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseBoolLiteralsCheck.cpp @@ -18,7 +18,7 @@ namespace clang::tidy::modernize { UseBoolLiteralsCheck::UseBoolLiteralsCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)) {} + IgnoreMacros(Options.get("IgnoreMacros", true)) {} void UseBoolLiteralsCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { Options.store(Opts, "IgnoreMacros", IgnoreMacros); diff --git a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp index 9ad6dcefbc1bb..e950fd1c77da5 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp @@ -197,7 +197,7 @@ UseDefaultMemberInitCheck::UseDefaultMemberInitCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), UseAssignment(Options.get("UseAssignment", false)), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)) {} + IgnoreMacros(Options.get("IgnoreMacros", true)) {} void UseDefaultMemberInitCheck::storeOptions( ClangTidyOptions::OptionMap &Opts) { diff --git a/clang-tools-extra/clang-tidy/modernize/UseDesignatedInitializersCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseDesignatedInitializersCheck.cpp index bb8fb2404a9a5..e9e750ad4e933 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseDesignatedInitializersCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseDesignatedInitializersCheck.cpp @@ -108,8 +108,7 @@ UseDesignatedInitializersCheck::UseDesignatedInitializersCheck( IgnoreSingleElementAggregatesDefault)), RestrictToPODTypes( Options.get(RestrictToPODTypesName, RestrictToPODTypesDefault)), - IgnoreMacros( - Options.getLocalOrGlobal(IgnoreMacrosName, IgnoreMacrosDefault)), + IgnoreMacros(Options.get(IgnoreMacrosName, IgnoreMacrosDefault)), StrictCStandardCompliance(Options.get(StrictCStandardComplianceName, StrictCStandardComplianceDefault)), StrictCppStandardCompliance( diff --git a/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp index b361ae4456538..f0c541eaca0a0 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp @@ -210,7 +210,7 @@ static bool bodyEmpty(const ASTContext *Context, const CompoundStmt *Body) { UseEqualsDefaultCheck::UseEqualsDefaultCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)) {} + IgnoreMacros(Options.get("IgnoreMacros", true)) {} void UseEqualsDefaultCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { Options.store(Opts, "IgnoreMacros", IgnoreMacros); diff --git a/clang-tools-extra/clang-tidy/modernize/UseEqualsDeleteCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseEqualsDeleteCheck.cpp index 9561cc71183d9..cf4e4f09c6a90 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseEqualsDeleteCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseEqualsDeleteCheck.cpp @@ -47,7 +47,7 @@ static const char DeletedNotPublic[] = "DeletedNotPublic"; UseEqualsDeleteCheck::UseEqualsDeleteCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)) {} + IgnoreMacros(Options.get("IgnoreMacros", true)) {} void UseEqualsDeleteCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { Options.store(Opts, "IgnoreMacros", IgnoreMacros); diff --git a/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp index 5cabc6df21da9..081ec305f3b2a 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp @@ -23,7 +23,7 @@ AST_MATCHER(StringLiteral, isOrdinary) { return Node.isOrdinary(); } UseStdFormatCheck::UseStdFormatCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - StrictMode(Options.getLocalOrGlobal("StrictMode", false)), + StrictMode(Options.get("StrictMode", false)), StrFormatLikeFunctions(utils::options::parseStringList( Options.get("StrFormatLikeFunctions", ""))), ReplacementFormatFunction( diff --git a/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp index aad5a4778b3af..b1e3ee6e2ba85 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp @@ -23,7 +23,7 @@ AST_MATCHER(StringLiteral, isOrdinary) { return Node.isOrdinary(); } UseStdPrintCheck::UseStdPrintCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), PP(nullptr), - StrictMode(Options.getLocalOrGlobal("StrictMode", false)), + StrictMode(Options.get("StrictMode", false)), PrintfLikeFunctions(utils::options::parseStringList( Options.get("PrintfLikeFunctions", ""))), FprintfLikeFunctions(utils::options::parseStringList( diff --git a/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp index e307339bd83aa..4037e8c1ea2fd 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp @@ -34,7 +34,7 @@ static constexpr llvm::StringLiteral DeclStmtName = "decl-stmt"; UseUsingCheck::UseUsingCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)), + IgnoreMacros(Options.get("IgnoreMacros", true)), IgnoreExternC(Options.get("IgnoreExternC", false)) {} void UseUsingCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { diff --git a/clang-tools-extra/clang-tidy/performance/InefficientStringConcatenationCheck.cpp b/clang-tools-extra/clang-tidy/performance/InefficientStringConcatenationCheck.cpp index 2b1e67d1d4a2f..a3f412d9e3415 100644 --- a/clang-tools-extra/clang-tidy/performance/InefficientStringConcatenationCheck.cpp +++ b/clang-tools-extra/clang-tidy/performance/InefficientStringConcatenationCheck.cpp @@ -21,7 +21,7 @@ void InefficientStringConcatenationCheck::storeOptions( InefficientStringConcatenationCheck::InefficientStringConcatenationCheck( StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - StrictMode(Options.getLocalOrGlobal("StrictMode", false)) {} + StrictMode(Options.get("StrictMode", false)) {} void InefficientStringConcatenationCheck::registerMatchers( MatchFinder *Finder) { diff --git a/clang-tools-extra/clang-tidy/readability/AvoidConstParamsInDecls.h b/clang-tools-extra/clang-tidy/readability/AvoidConstParamsInDecls.h index 57bac2b39bb32..1fc57779111df 100644 --- a/clang-tools-extra/clang-tidy/readability/AvoidConstParamsInDecls.h +++ b/clang-tools-extra/clang-tidy/readability/AvoidConstParamsInDecls.h @@ -19,7 +19,7 @@ class AvoidConstParamsInDecls : public ClangTidyCheck { public: AvoidConstParamsInDecls(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)) {} + IgnoreMacros(Options.get("IgnoreMacros", true)) {} void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; diff --git a/clang-tools-extra/clang-tidy/readability/AvoidReturnWithVoidValueCheck.cpp b/clang-tools-extra/clang-tidy/readability/AvoidReturnWithVoidValueCheck.cpp index f077040a35295..d283111a4de1a 100644 --- a/clang-tools-extra/clang-tidy/readability/AvoidReturnWithVoidValueCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/AvoidReturnWithVoidValueCheck.cpp @@ -23,9 +23,8 @@ static const bool StrictModeDefault = true; AvoidReturnWithVoidValueCheck::AvoidReturnWithVoidValueCheck( StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros( - Options.getLocalOrGlobal(IgnoreMacrosName, IgnoreMacrosDefault)), - StrictMode(Options.getLocalOrGlobal(StrictModeName, StrictModeDefault)) {} + IgnoreMacros(Options.get(IgnoreMacrosName, IgnoreMacrosDefault)), + StrictMode(Options.get(StrictModeName, StrictModeDefault)) {} void AvoidReturnWithVoidValueCheck::registerMatchers(MatchFinder *Finder) { Finder->addMatcher( diff --git a/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.h b/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.h index e329b3d8496a1..a36c6f4b67e5a 100644 --- a/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.h +++ b/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.h @@ -22,7 +22,7 @@ class ConstReturnTypeCheck : public ClangTidyCheck { public: ConstReturnTypeCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)) {} + IgnoreMacros(Options.get("IgnoreMacros", true)) {} void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; diff --git a/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h b/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h index 0c5ead860c161..a7810bd25f69c 100644 --- a/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h +++ b/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h @@ -25,7 +25,7 @@ class InconsistentDeclarationParameterNameCheck : public ClangTidyCheck { InconsistentDeclarationParameterNameCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)), + IgnoreMacros(Options.get("IgnoreMacros", true)), Strict(Options.get("Strict", false)) {} void storeOptions(ClangTidyOptions::OptionMap &Opts) override; diff --git a/clang-tools-extra/clang-tidy/readability/RedundantCastingCheck.cpp b/clang-tools-extra/clang-tidy/readability/RedundantCastingCheck.cpp index 768540e05c759..acc834ae25c60 100644 --- a/clang-tools-extra/clang-tidy/readability/RedundantCastingCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/RedundantCastingCheck.cpp @@ -93,7 +93,7 @@ static const Decl *getSourceExprDecl(const Expr *SourceExpr) { RedundantCastingCheck::RedundantCastingCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)), + IgnoreMacros(Options.get("IgnoreMacros", true)), IgnoreTypeAliases(Options.get("IgnoreTypeAliases", false)) {} void RedundantCastingCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { diff --git a/clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp b/clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp index 053892dffc7b6..e86e866209e9a 100644 --- a/clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp @@ -26,7 +26,7 @@ AST_MATCHER(FunctionDecl, doesDeclarationForceExternallyVisibleDefinition) { RedundantDeclarationCheck::RedundantDeclarationCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)) {} + IgnoreMacros(Options.get("IgnoreMacros", true)) {} void RedundantDeclarationCheck::storeOptions( ClangTidyOptions::OptionMap &Opts) { diff --git a/clang-tools-extra/clang-tidy/readability/RedundantInlineSpecifierCheck.h b/clang-tools-extra/clang-tidy/readability/RedundantInlineSpecifierCheck.h index cc0bfa9685d0c..63b1b46bb7e09 100644 --- a/clang-tools-extra/clang-tidy/readability/RedundantInlineSpecifierCheck.h +++ b/clang-tools-extra/clang-tidy/readability/RedundantInlineSpecifierCheck.h @@ -22,7 +22,7 @@ class RedundantInlineSpecifierCheck : public ClangTidyCheck { public: RedundantInlineSpecifierCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - StrictMode(Options.getLocalOrGlobal("StrictMode", false)) {} + StrictMode(Options.get("StrictMode", false)) {} void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; std::optional<TraversalKind> getCheckTraversalKind() const override { diff --git a/clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.h b/clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.h index ffe8df8857dfe..1f90e4fb4a8be 100644 --- a/clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.h +++ b/clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.h @@ -26,7 +26,7 @@ class RedundantSmartptrGetCheck : public ClangTidyCheck { public: RedundantSmartptrGetCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)) {} + IgnoreMacros(Options.get("IgnoreMacros", true)) {} bool isLanguageVersionSupported(const LangOptions &LangOpts) const override { return LangOpts.CPlusPlus; } diff --git a/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.cpp b/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.cpp index e66e1c52b5979..dac4cb556aa75 100644 --- a/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.cpp @@ -181,7 +181,7 @@ UppercaseLiteralSuffixCheck::UppercaseLiteralSuffixCheck( : ClangTidyCheck(Name, Context), NewSuffixes( utils::options::parseStringList(Options.get("NewSuffixes", ""))), - IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)) {} + IgnoreMacros(Options.get("IgnoreMacros", true)) {} void UppercaseLiteralSuffixCheck::storeOptions( ClangTidyOptions::OptionMap &Opts) { diff --git a/clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp b/clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp index 0e411b2034178..a9b462980dd4e 100644 --- a/clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp +++ b/clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp @@ -347,14 +347,10 @@ TEST_F(ConfigCompileTests, Tidy) { Tidy.Add.emplace_back("llvm-*"); Tidy.Remove.emplace_back("llvm-include-order"); Tidy.Remove.emplace_back("readability-*"); - Tidy.CheckOptions.emplace_back( - std::make_pair(std::string("StrictMode"), std::string("true"))); Tidy.CheckOptions.emplace_back(std::make_pair( std::string("example-check.ExampleOption"), std::string("0"))); EXPECT_TRUE(compileAndApply()); - EXPECT_EQ(Conf.Diagnostics.ClangTidy.CheckOptions.size(), 2U); - EXPECT_EQ(Conf.Diagnostics.ClangTidy.CheckOptions.lookup("StrictMode"), - "true"); + EXPECT_EQ(Conf.Diagnostics.ClangTidy.CheckOptions.size(), 1U); EXPECT_EQ(Conf.Diagnostics.ClangTidy.CheckOptions.lookup( "example-check.ExampleOption"), "0"); diff --git a/clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp b/clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp index d94e706ca05de..c332dcc417fe1 100644 --- a/clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp +++ b/clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp @@ -66,7 +66,6 @@ CompileFlags: { Add: [foo, bar] } Diagnostics: ClangTidy: CheckOptions: - IgnoreMacros: true example-check.ExampleOption: 0 UnusedIncludes: Strict )yaml"; @@ -83,8 +82,7 @@ CompileFlags: { Add: [foo, bar] } ASSERT_TRUE(Results[2].Index.Background); EXPECT_EQ("Skip", **Results[2].Index.Background); EXPECT_THAT(Results[3].Diagnostics.ClangTidy.CheckOptions, - ElementsAre(PairVal("IgnoreMacros", "true"), - PairVal("example-check.ExampleOption", "0"))); + ElementsAre(PairVal("example-check.ExampleOption", "0"))); EXPECT_TRUE(Results[3].Diagnostics.UnusedIncludes); EXPECT_EQ("Strict", **Results[3].Diagnostics.UnusedIncludes); } diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index 0f230b8fbdebd..1df8b98232147 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -130,6 +130,11 @@ Improvements to clang-tidy field is used in a compilation database; the current working directory will be used instead, and an error message will be printed. +- Removed :program:`clang-tidy`'s global options `IgnoreMacros` and + `StrictMode`, which were documented as deprecated since + :program:`clang-tidy-20`. Users should use the check-specific options of the + same name instead. + New checks ^^^^^^^^^^ diff --git a/clang-tools-extra/test/clang-tidy/checkers/readability/function-cognitive-complexity-flags.cpp b/clang-tools-extra/test/clang-tidy/checkers/readability/function-cognitive-complexity-flags.cpp index 35040f3241560..196f3181141f9 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/readability/function-cognitive-complexity-flags.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/readability/function-cognitive-complexity-flags.cpp @@ -11,16 +11,10 @@ // RUN: {readability-function-cognitive-complexity.Threshold: 0, \ // RUN: readability-function-cognitive-complexity.IgnoreMacros: "true", \ // RUN: readability-function-cognitive-complexity.DescribeBasicIncrements: "false"}}' -// RUN: %check_clang_tidy -check-suffix=GLOBAL-IGNORE-MACROS %s readability-function-cognitive-complexity %t -- \ -// RUN: -config='{CheckOptions: \ -// RUN: {readability-function-cognitive-complexity.Threshold: 0, \ -// RUN: IgnoreMacros: "true", \ -// RUN: readability-function-cognitive-complexity.DescribeBasicIncrements: "false"}}' void func_of_complexity_4() { // CHECK-NOTES: :[[@LINE-1]]:6: warning: function 'func_of_complexity_4' has cognitive complexity of 4 (threshold 0) [readability-function-cognitive-complexity] // CHECK-NOTES-IGNORE-MACROS: :[[@LINE-2]]:6: warning: function 'func_of_complexity_4' has cognitive complexity of 4 (threshold 0) [readability-function-cognitive-complexity] - // CHECK-NOTES-GLOBAL-IGNORE-MACROS: :[[@LINE-3]]:6: warning: function 'func_of_complexity_4' has cognitive complexity of 4 (threshold 0) [readability-function-cognitive-complexity] if (1) { if (1) { } @@ -43,7 +37,6 @@ void function_with_macro() { // CHECK-NOTES: :[[@LINE-1]]:6: warning: function 'function_with_macro' has cognitive complexity of 11 (threshold 0) [readability-function-cognitive-complexity] // CHECK-NOTES-THRESHOLD5: :[[@LINE-2]]:6: warning: function 'function_with_macro' has cognitive complexity of 11 (threshold 5) [readability-function-cognitive-complexity] // CHECK-NOTES-IGNORE-MACROS: :[[@LINE-3]]:6: warning: function 'function_with_macro' has cognitive complexity of 1 (threshold 0) [readability-function-cognitive-complexity] - // CHECK-NOTES-GLOBAL-IGNORE-MACROS: :[[@LINE-4]]:6: warning: function 'function_with_macro' has cognitive complexity of 11 (threshold 0) [readability-function-cognitive-complexity] MacroOfComplexity10; @@ -62,7 +55,6 @@ void function_with_macro() { void func_macro_1() { // CHECK-NOTES: :[[@LINE-1]]:6: warning: function 'func_macro_1' has cognitive complexity of 2 (threshold 0) [readability-function-cognitive-complexity] // CHECK-NOTES-IGNORE-MACROS: :[[@LINE-2]]:6: warning: function 'func_macro_1' has cognitive complexity of 1 (threshold 0) [readability-function-cognitive-complexity] - // CHECK-NOTES-GLOBAL-IGNORE-MACROS: :[[@LINE-3]]:6: warning: function 'func_macro_1' has cognitive complexity of 2 (threshold 0) [readability-function-cognitive-complexity] if (1) { } @@ -72,7 +64,6 @@ void func_macro_1() { void func_macro_2() { // CHECK-NOTES: :[[@LINE-1]]:6: warning: function 'func_macro_2' has cognitive complexity of 4 (threshold 0) [readability-function-cognitive-complexity] // CHECK-NOTES-IGNORE-MACROS: :[[@LINE-2]]:6: warning: function 'func_macro_2' has cognitive complexity of 1 (threshold 0) [readability-function-cognitive-complexity] - // CHECK-NOTES-GLOBAL-IGNORE-MACROS: :[[@LINE-3]]:6: warning: function 'func_macro_2' has cognitive complexity of 4 (threshold 0) [readability-function-cognitive-complexity] if (1) { } diff --git a/clang-tools-extra/test/clang-tidy/infrastructure/Inputs/config-files/4/44/.clang-tidy b/clang-tools-extra/test/clang-tidy/infrastructure/Inputs/config-files/4/44/.clang-tidy index eb92c1146d6a8..fb5ba6fcad599 100644 --- a/clang-tools-extra/test/clang-tidy/infrastructure/Inputs/config-files/4/44/.clang-tidy +++ b/clang-tools-extra/test/clang-tidy/infrastructure/Inputs/config-files/4/44/.clang-tidy @@ -2,5 +2,5 @@ InheritParentConfig: true Checks: 'llvm-qualified-auto' CheckOptions: modernize-loop-convert.MaxCopySize: '20' + modernize-use-using.IgnoreMacros: 'false' llvm-qualified-auto.AddConstToQualified: 'true' - IgnoreMacros: 'false' diff --git a/clang-tools-extra/test/clang-tidy/infrastructure/Inputs/config-files/4/key-dict/.clang-tidy b/clang-tools-extra/test/clang-tidy/infrastructure/Inputs/config-files/4/key-dict/.clang-tidy index 3abef4360d8d6..fb5ba6fcad599 100644 --- a/clang-tools-extra/test/clang-tidy/infrastructure/Inputs/config-files/4/key-dict/.clang-tidy +++ b/clang-tools-extra/test/clang-tidy/infrastructure/Inputs/config-files/4/key-dict/.clang-tidy @@ -2,6 +2,5 @@ InheritParentConfig: true Checks: 'llvm-qualified-auto' CheckOptions: modernize-loop-convert.MaxCopySize: '20' + modernize-use-using.IgnoreMacros: 'false' llvm-qualified-auto.AddConstToQualified: 'true' - IgnoreMacros: 'false' - diff --git a/clang-tools-extra/test/clang-tidy/infrastructure/deprecation-global-option.cpp b/clang-tools-extra/test/clang-tidy/infrastructure/deprecation-global-option.cpp deleted file mode 100644 index 4c9854d221832..0000000000000 --- a/clang-tools-extra/test/clang-tidy/infrastructure/deprecation-global-option.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// RUN: clang-tidy %s --config="{CheckOptions:{StrictMode: true}}" -checks="-*,modernize-use-std-format" | FileCheck %s - -// CHECK: warning: global option 'StrictMode' is deprecated, please use 'modernize-use-std-format.StrictMode' instead. [clang-tidy-config] diff --git a/clang-tools-extra/test/clang-tidy/infrastructure/verify-config.cpp b/clang-tools-extra/test/clang-tidy/infrastructure/verify-config.cpp index 30d49336bb4df..ed3febee5940e 100644 --- a/clang-tools-extra/test/clang-tidy/infrastructure/verify-config.cpp +++ b/clang-tools-extra/test/clang-tidy/infrastructure/verify-config.cpp @@ -5,15 +5,14 @@ // RUN: --checks='-*,bad*glob,llvm*,llvm-includeorder,my-made-up-check' --config='{Checks: "readability-else-after-ret", \ // RUN: HeaderFileExtensions: ["h", "hh", "hpp"], \ // RUN: ImplementationFileExtensions: ["c", "cc", "hpp"], \ -// RUN: CheckOptions: {IgnoreMacros: true, \ -// RUN: StriceMode: true, \ +// RUN: CheckOptions: {InvalidOption: true, \ // RUN: modernize-lop-convert.UseCxx20ReverseRanges: true \ // RUN: }}' 2>&1 | FileCheck %s \ // RUN: -check-prefix=CHECK-VERIFY -implicit-check-not='{{warning|error}}:' // CHECK-VERIFY-DAG: command-line option '-config': warning: unknown check 'readability-else-after-ret'; did you mean 'readability-else-after-return' [-verify-config] // CHECK-VERIFY-DAG: command-line option '-config': warning: unknown check option 'modernize-lop-convert.UseCxx20ReverseRanges'; did you mean 'modernize-loop-convert.UseCxx20ReverseRanges' [-verify-config] -// CHECK-VERIFY-DAG: command-line option '-config': warning: unknown check option 'StriceMode'; did you mean 'StrictMode' [-verify-config] +// CHECK-VERIFY-DAG: command-line option '-config': warning: unknown check option 'InvalidOption' [-verify-config] // CHECK-VERIFY-DAG: command-line option '-config': warning: HeaderFileExtension 'hpp' is the same as ImplementationFileExtension 'hpp' [-verify-config] // CHECK-VERIFY: command-line option '-checks': warning: check glob 'bad*glob' doesn't match any known check [-verify-config] // CHECK-VERIFY: command-line option '-checks': warning: unknown check 'llvm-includeorder'; did you mean 'llvm-include-order' [-verify-config] @@ -37,4 +36,3 @@ // RUN: echo -e 'Checks: "-*,clang-analyzer-optin.cplusplus.UninitializedObject"\nCheckOptions:\n clang-analyzer-optin.cplusplus.UninitializedObject.Pedantic: true' > %t.MyClangTidyConfigCSABad // RUN: not clang-tidy --verify-config --config-file=%t.MyClangTidyConfigCSABad 2>&1 | FileCheck %s -check-prefix=CHECK-VERIFY-CSA-BAD -implicit-check-not='{{warnings|error}}' // CHECK-VERIFY-CSA-BAD: command-line option '-config': warning: unknown check option 'clang-analyzer-optin.cplusplus.UninitializedObject.Pedantic'; did you mean 'clang-analyzer-optin.cplusplus.UninitializedObject:Pedantic' [-verify-config] - _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits