https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101272
Bug ID: 101272 Summary: [12 Regression] error: ‘nonnull’ argument ‘message’ compared to NULL [-Werror=nonnull-compare] since Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: msebor at gcc dot gnu.org Target Milestone: --- Seen in gdb package, the error is likely fine, but I'm curious why is it visible since the mentioned revision? $ cat gdb.ii void internal_error(char); struct compiled_regex { compiled_regex(const char *) __attribute__((__nonnull__)); }; compiled_regex::compiled_regex(const char *message) { (message != __null) ? 0 : (internal_error(0), 0); } $ g++ gdb.ii -c -Werror=nonnull-compare gdb.ii: In constructor ‘compiled_regex::compiled_regex(const char*)’: gdb.ii:6:23: error: ‘nonnull’ argument ‘message’ compared to NULL [-Werror=nonnull-compare] 6 | (message != __null) ? 0 : (internal_error(0), 0); | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1plus: some warnings being treated as errors