[clang-tools-extra] Limit modernize-use-nullptr to C++11/C23 and later (PR #132816)

via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 24 12:17:48 PDT 2025


https://github.com/higher-performance created https://github.com/llvm/llvm-project/pull/132816

`nullptr` is not supported on earlier versions of either standard, so the tidy should not diagnose earlier uses.

>From d9e38b44a4fbcea9800b14ec3fb0aba814d05722 Mon Sep 17 00:00:00 2001
From: higher-performance <higher.performance.github at gmail.com>
Date: Mon, 24 Mar 2025 15:16:58 -0400
Subject: [PATCH] Limit modernize-use-nullptr to C++11/C23 and later

`nullptr` is not supported on earlier versions of either standard, so the tidy should not diagnose earlier uses.
---
 clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
index 108717e151b57..771ea3875a71a 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
@@ -505,7 +505,10 @@ void UseNullptrCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
 }
 
 void UseNullptrCheck::registerMatchers(MatchFinder *Finder) {
-  Finder->addMatcher(makeCastSequenceMatcher(IgnoredTypes), this);
+  // nullptr is supported starting from C++11 and C23.
+  if (getLangOpts().CPlusPlus11 || getLangOpts().C23) {
+    Finder->addMatcher(makeCastSequenceMatcher(IgnoredTypes), this);
+  }
 }
 
 void UseNullptrCheck::check(const MatchFinder::MatchResult &Result) {



More information about the cfe-commits mailing list