[clang-tidy] Fix modernize-use-nullptr only warns the first NULL argument.

Reviewers: alexfh

Reviewed By: alexfh

Subscribers: xazax.hun, cfe-commits

Differential Revision: https://reviews.llvm.org/D34526

llvm-svn: 306651
This commit is contained in:
Haojian Wu 2017-06-29 08:43:36 +00:00
parent 6a3f5552cc
commit f193bff5be
2 changed files with 29 additions and 1 deletions

View File

@ -235,7 +235,7 @@ public:
allArgUsesValid(C)) {
replaceWithNullptr(Check, SM, FileLocStart, FileLocEnd);
}
return skipSubTree();
return true;
}
if (SM.isMacroBodyExpansion(StartLoc) && SM.isMacroBodyExpansion(EndLoc)) {

View File

@ -275,3 +275,31 @@ void test_cast_nullptr() {
G(g(static_cast<char*>(nullptr)));
G(g(static_cast<const char*>(nullptr)));
}
// Test on recognizing multiple NULLs.
class H {
public:
H(bool);
};
#define T(expression) H(expression);
bool h(int *, int *, int * = nullptr);
void test_multiple_nulls() {
T(h(NULL, NULL));
// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use nullptr
// CHECK-MESSAGES: :[[@LINE-2]]:13: warning: use nullptr
// CHECK-FIXES: T(h(nullptr, nullptr));
T(h(NULL, nullptr));
// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use nullptr
// CHECK-FIXES: T(h(nullptr, nullptr));
T(h(nullptr, NULL));
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: use nullptr
// CHECK-FIXES: T(h(nullptr, nullptr));
T(h(nullptr, nullptr));
T(h(NULL, NULL, NULL));
// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use nullptr
// CHECK-MESSAGES: :[[@LINE-2]]:13: warning: use nullptr
// CHECK-MESSAGES: :[[@LINE-3]]:19: warning: use nullptr
// CHECK-FIXES: T(h(nullptr, nullptr, nullptr));
}
#undef T