summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
diff options
context:
space:
mode:
authorHaojian Wu <hokein@google.com>2016-11-07 21:46:24 +0000
committerHaojian Wu <hokein@google.com>2016-11-07 21:46:24 +0000
commita29ae6f2d721f71635d6379d2d012ca2fc33ce5f (patch)
tree512274763aff22909140ad8f8020f0e1bca71be2 /clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
parent4a3f94c442e497e5fc5a128413de14eff4cbfb98 (diff)
downloadbcm5719-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.cpp8
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;
OpenPOWER on IntegriCloud