]> granicus.if.org Git - clang/commitdiff
Implement nullPointerConstant() using a better API.
authorAaron Ballman <aaron@aaronballman.com>
Thu, 22 Aug 2019 18:26:44 +0000 (18:26 +0000)
committerAaron Ballman <aaron@aaronballman.com>
Thu, 22 Aug 2019 18:26:44 +0000 (18:26 +0000)
Instead of manually attempting to identify whether something is a null pointer constant, use Expr::isNullPointerConstant().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@369683 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/ASTMatchers/ASTMatchers.h

index 909e4d29fb2495d1767c853558d9995ff3be34ec..e34b31cbda88001527c27754e70abc82b745e92e 100644 (file)
@@ -6445,10 +6445,9 @@ 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_FUNCTION(internal::Matcher<Expr>, nullPointerConstant) {
-  return anyOf(
-      gnuNullExpr(), cxxNullPtrLiteralExpr(),
-      integerLiteral(equals(0), hasParent(expr(hasType(pointerType())))));
+AST_MATCHER(Expr, nullPointerConstant) {
+  return Node.isNullPointerConstant(Finder->getASTContext(),
+                                    Expr::NPC_ValueDependentIsNull);
 }
 
 /// Matches declaration of the function the statement belongs to