diff --git a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp index c63cd7473ecd..c56262b90cf8 100644 --- a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp @@ -29,7 +29,7 @@ StaticAssertCheck::StaticAssertCheck(StringRef Name, ClangTidyContext *Context) void StaticAssertCheck::registerMatchers(MatchFinder *Finder) { auto IsAlwaysFalse = expr(ignoringParenImpCasts( expr(anyOf(boolLiteral(equals(false)), integerLiteral(equals(0)), - nullPtrLiteralExpr())).bind("isAlwaysFalse"))); + nullPtrLiteralExpr(), gnuNullExpr())).bind("isAlwaysFalse"))); auto IsAlwaysFalseWithCast = ignoringParenImpCasts(anyOf(IsAlwaysFalse, cStyleCastExpr(has(IsAlwaysFalse)).bind("castExpr"))); auto AssertExprRoot = anyOf( diff --git a/clang-tools-extra/test/clang-tidy/misc-static-assert.cpp b/clang-tools-extra/test/clang-tidy/misc-static-assert.cpp index ff304b96927a..5a40c304173b 100644 --- a/clang-tools-extra/test/clang-tidy/misc-static-assert.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-static-assert.cpp @@ -95,6 +95,12 @@ int main() { assert(NULL && "Report me!"); // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: found assert() that could be // CHECK-FIXES: {{^ }}static_assert(NULL , "Report me!"); + +#define NULL __null + assert(__null == "Don't report me!"); + // CHECK-FIXES: {{^ }}assert(__null == "Don't report me!"); + assert(NULL == "Don't report me!"); + // CHECK-FIXES: {{^ }}assert(NULL == "Don't report me!"); #undef NULL assert(ZERO_MACRO && "Report me!");