diff --git a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp index 99e44068d67d..2923bd91a1a7 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp @@ -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()) diff --git a/clang-tools-extra/test/clang-tidy/modernize-use-nullptr.cpp b/clang-tools-extra/test/clang-tidy/modernize-use-nullptr.cpp index 6b41cfbe4abe..a21a43ad85c7 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-use-nullptr.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-use-nullptr.cpp @@ -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.