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

Reply via email to