https://github.com/KHicketts updated https://github.com/llvm/llvm-project/pull/201893
>From f238457992ea5315c63430927c39c1d1c8d494dd Mon Sep 17 00:00:00 2001 From: khickett <[email protected]> Date: Fri, 5 Jun 2026 18:03:02 +0100 Subject: [PATCH 1/2] Fix false match on nullPointerConstant for array indices --- clang/include/clang/ASTMatchers/ASTMatchers.h | 2 +- clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/include/clang/ASTMatchers/ASTMatchers.h b/clang/include/clang/ASTMatchers/ASTMatchers.h index bc0f35898a2c9..24d9eea98df9b 100644 --- a/clang/include/clang/ASTMatchers/ASTMatchers.h +++ b/clang/include/clang/ASTMatchers/ASTMatchers.h @@ -8369,7 +8369,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CUDAKernelCallExpr> AST_MATCHER_FUNCTION(internal::Matcher<Expr>, nullPointerConstant) { return anyOf( gnuNullExpr(), cxxNullPtrLiteralExpr(), - integerLiteral(equals(0), hasParent(expr(hasType(pointerType()))))); + integerLiteral(equals(0), hasParent(castExpr(hasCastKind(CK_NullToPointer))))); } /// Matches the DecompositionDecl the binding belongs to. diff --git a/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp index d9647c201fc30..d51f70b867ac9 100644 --- a/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp +++ b/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp @@ -4049,6 +4049,7 @@ TEST_P(ASTMatchersTest, NullPointerConstant) { EXPECT_TRUE(matches("char *cp = (char *)0;", expr(nullPointerConstant()))); EXPECT_TRUE(matches("int *ip = 0;", expr(nullPointerConstant()))); EXPECT_FALSE(matches("int i = 0;", expr(nullPointerConstant()))); + EXPECT_FALSE(matches("int *p[1]; (void)p[0];", expr(nullPointerConstant()))); } TEST_P(ASTMatchersTest, NullPointerConstant_GNUNull) { >From 22f22c2dd231d97f1fa95712c809e93287896a07 Mon Sep 17 00:00:00 2001 From: khickett <[email protected]> Date: Thu, 18 Jun 2026 15:32:40 +0100 Subject: [PATCH 2/2] add release note --- clang/docs/ReleaseNotes.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 8a6eb2003e5f0..be1a889019b0d 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -980,6 +980,8 @@ AST Matchers ------------ - Add ``functionTypeLoc`` matcher for matching ``FunctionTypeLoc``. - Add missing support for ``TraversalKind`` in some ``addMatcher()`` overloads. +- Fixed ``nullPointerConstant`` matcher falsely matching integer literal ``0`` + when used as an array subscript index. clang-format ------------ _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
