https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105628

            Bug ID: 105628
           Summary: False positive with -Waddress
           Product: gcc
           Version: 12.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jochen447 at concept dot de
  Target Milestone: ---

Created attachment 52986
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52986&action=edit
minified example program to show the false positive

Option -Wall also enables -Waddress, which causes a lot of false positives like
shown in my attached example problem (minimized and anonymized real world
example):

waddress.c: In function ‘comp_has_ExtraPtr’:
waddress.c:44:29: warning: the comparison will always evaluate as ‘true’ for
the pointer operand in ‘(struct Extra **)&comp->pin + 4’ must not be NULL
[-Waddress]
   44 |     return ExtraPtrOf(comp) ? 1 : 0;
      |                             ^

It only seems to be emitted when using the ?-operator.


# gcc -v
...
gcc version 12.1.1 20220507 (Red Hat 12.1.1-1) (GCC)


# uname -a
Linux fedora 5.17.6-300.fc36.x86_64 #1 SMP PREEMPT Mon May 9 15:47:11 UTC 2022
x86_64 x86_64 x86_64 GNU/Linux

Reply via email to