https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117465
Bug ID: 117465 Summary: Disable -Wnonnull-compare in macros Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: david.bolvansky at gmail dot com Target Milestone: --- #include <cstdio> #define DEBUG(ptr) if (ptr) printf("%p", (void *)ptr); class Clz { int data; public: Clz(void) { DEBUG(this); } }; int main(void) { int i; DEBUG(&i); Clz a; return 0; } g++ -Wall -Wextra code.cpp warning: 'nonnull' argument 'this' compared to NULL [-Wnonnull-compare] 3 | #define DEBUG(ptr) if (ptr) printf("%p", (void *)ptr); This is quite annoying in macros. Derived from real code, where null check is needed, as macro is universal.