Index: clang-tidy/misc/StaticAssertCheck.cpp =================================================================== --- clang-tidy/misc/StaticAssertCheck.cpp +++ clang-tidy/misc/StaticAssertCheck.cpp @@ -29,7 +29,7 @@ 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( Index: test/clang-tidy/misc-static-assert.cpp =================================================================== --- test/clang-tidy/misc-static-assert.cpp +++ test/clang-tidy/misc-static-assert.cpp @@ -95,6 +95,12 @@ 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!");