This revision was automatically updated to reflect the committed changes. Closed by commit rL262024: [clang-tidy] Fix an assertion failure in `modernize-use-nullptr` check. (authored by hokein).
Changed prior to commit: http://reviews.llvm.org/D17640?vs=49186&id=49187#toc Repository: rL LLVM http://reviews.llvm.org/D17640 Files: clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.cpp Index: clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp =================================================================== --- clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp +++ clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp @@ -327,7 +327,7 @@ NullMacros.end(); } - MacroLoc = SM.getImmediateExpansionRange(ArgLoc).first; + MacroLoc = SM.getExpansionRange(ArgLoc).first; ArgLoc = Expansion.getSpellingLoc().getLocWithOffset(LocInfo.second); if (ArgLoc.isFileID()) Index: clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.cpp =================================================================== --- clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.cpp +++ clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.cpp @@ -183,6 +183,18 @@ // 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.
Index: clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp =================================================================== --- clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp +++ clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp @@ -327,7 +327,7 @@ NullMacros.end(); } - MacroLoc = SM.getImmediateExpansionRange(ArgLoc).first; + MacroLoc = SM.getExpansionRange(ArgLoc).first; ArgLoc = Expansion.getSpellingLoc().getLocWithOffset(LocInfo.second); if (ArgLoc.isFileID()) Index: clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.cpp =================================================================== --- clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.cpp +++ clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.cpp @@ -183,6 +183,18 @@ // 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.
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits