[clang-tools-extra] [clang-tidy] Don't run use-nullptr check on objective-c code. (PR #141229)
via cfe-commits
cfe-commits at lists.llvm.org
Fri May 23 05:24:09 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-tools-extra
Author: Haojian Wu (hokein)
<details>
<summary>Changes</summary>
`nullptr` doesn't exist in objective-c.
Right now, if an objective-c file compiled with `-std=c23` flag, it will trigger this check. This patch suppresses the check warning.
---
Full diff: https://github.com/llvm/llvm-project/pull/141229.diff
3 Files Affected:
- (modified) clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.h (+1-1)
- (modified) clang-tools-extra/docs/ReleaseNotes.rst (+4)
- (added) clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr-c23.m (+7)
``````````diff
diff --git a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.h b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.h
index f1591bae44657..ee380d03064f9 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.h
+++ b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.h
@@ -19,7 +19,7 @@ class UseNullptrCheck : public ClangTidyCheck {
bool isLanguageVersionSupported(const LangOptions &LangOpts) const override {
// FIXME this should be CPlusPlus11 but that causes test cases to
// erroneously fail.
- return LangOpts.CPlusPlus || LangOpts.C23;
+ return LangOpts.CPlusPlus || (LangOpts.C23 && !LangOpts.ObjC);
}
void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
void registerMatchers(ast_matchers::MatchFinder *Finder) override;
diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index 579fca54924d5..900f65ccc56a7 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -219,6 +219,10 @@ Changes in existing checks
tolerating fix-it breaking compilation when functions is used as pointers
to avoid matching usage of functions within the current compilation unit.
+- Improved :doc:`modernize-use-nullptr
+ <clang-tidy/checks/modernize/modernize-use-nullptr>` check to not run on
+ objective-c code.
+
Removed checks
^^^^^^^^^^^^^^
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr-c23.m b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr-c23.m
new file mode 100644
index 0000000000000..1d6446c486317
--- /dev/null
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr-c23.m
@@ -0,0 +1,7 @@
+// RUN: %check_clang_tidy %s modernize-use-nullptr %t -- -- -std=c23
+
+#define NULL 0
+
+void test_assignment() {
+ int *p1 = NULL;
+}
``````````
</details>
https://github.com/llvm/llvm-project/pull/141229
More information about the cfe-commits
mailing list