[clang] 3b148d6 - Revert "Revert "Revert "Implement nullPointerConstant() using a better API."""
Mikhail Goncharov via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 22 05:37:22 PST 2021
Author: Mikhail Goncharov
Date: 2021-02-22T14:37:03+01:00
New Revision: 3b148d6f991181a1b8f089c4bc2126e1a6c1212d
URL: https://github.com/llvm/llvm-project/commit/3b148d6f991181a1b8f089c4bc2126e1a6c1212d
DIFF: https://github.com/llvm/llvm-project/commit/3b148d6f991181a1b8f089c4bc2126e1a6c1212d.diff
LOG: Revert "Revert "Revert "Implement nullPointerConstant() using a better API."""
This reverts commit ba1d9546ee389ce1d2e8f353ae777a65f647d508.
Added:
Modified:
clang/include/clang/ASTMatchers/ASTMatchers.h
clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
Removed:
################################################################################
diff --git a/clang/include/clang/ASTMatchers/ASTMatchers.h b/clang/include/clang/ASTMatchers/ASTMatchers.h
index 6cd4d26768b5..b82929019f6c 100644
--- a/clang/include/clang/ASTMatchers/ASTMatchers.h
+++ b/clang/include/clang/ASTMatchers/ASTMatchers.h
@@ -7384,9 +7384,10 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CUDAKernelCallExpr>
/// expr(nullPointerConstant())
/// matches the initializer for v1, v2, v3, cp, and ip. Does not match the
/// initializer for i.
-AST_MATCHER(Expr, nullPointerConstant) {
- return Node.isNullPointerConstant(Finder->getASTContext(),
- Expr::NPC_ValueDependentIsNull);
+AST_MATCHER_FUNCTION(internal::Matcher<Expr>, nullPointerConstant) {
+ return anyOf(
+ gnuNullExpr(), cxxNullPtrLiteralExpr(),
+ integerLiteral(equals(0), hasParent(expr(hasType(pointerType())))));
}
/// Matches the DecompositionDecl the binding belongs to.
diff --git a/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
index 1c6947acf0ab..c26e8f8d4d22 100644
--- a/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
+++ b/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
@@ -3663,7 +3663,7 @@ TEST_P(ASTMatchersTest, NullPointerConstant) {
expr(nullPointerConstant())));
EXPECT_TRUE(matches("char *cp = (char *)0;", expr(nullPointerConstant())));
EXPECT_TRUE(matches("int *ip = 0;", expr(nullPointerConstant())));
- EXPECT_TRUE(matches("int i = 0;", expr(nullPointerConstant())));
+ EXPECT_FALSE(matches("int i = 0;", expr(nullPointerConstant())));
}
TEST_P(ASTMatchersTest, NullPointerConstant_GNUNull) {
More information about the cfe-commits
mailing list