[clang-tidy] Fix an assertion failure in `modernize-use-nullptr` check.

Reviewers: alexfh

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D17640

llvm-svn: 262024
This commit is contained in:
Haojian Wu 2016-02-26 15:34:35 +00:00
parent 0ed9c497ca
commit 0d5e9d3135
2 changed files with 13 additions and 1 deletions

View File

@ -327,7 +327,7 @@ private:
NullMacros.end();
}
MacroLoc = SM.getImmediateExpansionRange(ArgLoc).first;
MacroLoc = SM.getExpansionRange(ArgLoc).first;
ArgLoc = Expansion.getSpellingLoc().getLocWithOffset(LocInfo.second);
if (ArgLoc.isFileID())

View File

@ -183,6 +183,18 @@ void test_macro_args() {
// CHECK-MESSAGES: :[[@LINE-2]]:24: warning: use nullptr
// CHECK-FIXES: a[2] = {ENTRY(nullptr), {nullptr}};
#undef ENTRY
#define assert1(expr) (expr) ? 0 : 1
#define assert2 assert1
int *p;
assert2(p == 0);
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: use nullptr
// CHECK-FIXES: assert2(p == nullptr);
assert2(p == NULL);
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: use nullptr
// CHECK-FIXES: assert2(p == nullptr);
#undef assert2
#undef assert1
}
// One of the ancestor of the cast is a NestedNameSpecifierLoc.