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

Reply via email to