diff options
| author | Haojian Wu <hokein@google.com> | 2016-11-07 21:46:24 +0000 |
|---|---|---|
| committer | Haojian Wu <hokein@google.com> | 2016-11-07 21:46:24 +0000 |
| commit | a29ae6f2d721f71635d6379d2d012ca2fc33ce5f (patch) | |
| tree | 512274763aff22909140ad8f8020f0e1bca71be2 /clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp | |
| parent | 4a3f94c442e497e5fc5a128413de14eff4cbfb98 (diff) | |
| download | bcm5719-llvm-a29ae6f2d721f71635d6379d2d012ca2fc33ce5f.tar.gz bcm5719-llvm-a29ae6f2d721f71635d6379d2d012ca2fc33ce5f.zip | |
[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
Diffstat (limited to 'clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp')
| -rw-r--r-- | clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
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<CastExpr>(S); + // Catch the castExpr inside cxxDefaultArgExpr. + if (auto *E = dyn_cast<CXXDefaultArgExpr>(S)) + C = dyn_cast<CastExpr>(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<CXXNullPtrLiteralExpr>(FirstSubExpr)) + return true; + if (C->getCastKind() != CK_NullToPointer && C->getCastKind() != CK_NullToMemberPointer) { return true; |

