[clang-tools-extra] [clang-tidy] modernize-use-nullptr matches "NULL" in templates (PR #109169)
Thomas Köppe via cfe-commits
cfe-commits at lists.llvm.org
Fri Sep 20 06:59:46 PDT 2024
================
@@ -38,7 +38,9 @@ AST_MATCHER(Type, sugaredNullptrType) {
StatementMatcher makeCastSequenceMatcher(llvm::ArrayRef<StringRef> NameList) {
auto ImplicitCastToNull = implicitCastExpr(
anyOf(hasCastKind(CK_NullToPointer), hasCastKind(CK_NullToMemberPointer)),
- unless(hasImplicitDestinationType(qualType(substTemplateTypeParmType()))),
+ anyOf(hasSourceExpression(gnuNullExpr()),
----------------
tkoeppe wrote:
This is explained somewhat in the unit test: When `NULL` is defined to `__null`, then this change will catch both cases. But we don't have a direct check for "the origin was the macro `NULL`", I'm afraid. @zygoloid suggested this change as a reasonable, small change that will be effective in many real-world cases.
I'd be happy to have a more general solution, but couldn't find one, and the present one will already do a lot of good. What do you think?
https://github.com/llvm/llvm-project/pull/109169
More information about the cfe-commits
mailing list