From a29ae6f2d721f71635d6379d2d012ca2fc33ce5f Mon Sep 17 00:00:00 2001 From: Haojian Wu Date: Mon, 7 Nov 2016 21:46:24 +0000 Subject: [clang-tidy] Fix a regression issue introduced by r285239. Summary: r285239 changes the behavior of AST CXXDefaultArgExpr node. Update `modernize-use-nullptr` to handle CXXDefaultArgExpr correctly. Reviewers: alexfh Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26301 llvm-svn: 286156 --- clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp') diff --git a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp index 059c0c5073f..401b10b7f8c 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp @@ -190,13 +190,21 @@ public: // within a cast expression. bool VisitStmt(Stmt *S) { CastExpr *C = dyn_cast(S); + // Catch the castExpr inside cxxDefaultArgExpr. + if (auto *E = dyn_cast(S)) + C = dyn_cast(E->getExpr()); if (!C) { FirstSubExpr = nullptr; return true; } + if (!FirstSubExpr) FirstSubExpr = C->getSubExpr()->IgnoreParens(); + // Ignore the expr if it is already a nullptr literal expr. + if (isa(FirstSubExpr)) + return true; + if (C->getCastKind() != CK_NullToPointer && C->getCastKind() != CK_NullToMemberPointer) { return true; -- cgit v1.2.3