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

            Bug ID: 78988
           Summary: Wrong location of a binary expression for -Waddress
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

This is C++ equivalent of PR78987

Starting from 4.8, where location description was added.

$ cat /tmp/wrong-conditions.c 
void foo() {}
void bar() {}
void baz() {}

int main2(int argc, int argc2)
{
  if (foo && bar && baz)
    return 1;

  return 0;
}

$ ./xg++ -B. /tmp/wrong-conditions.c -c -Wall
/tmp/wrong-conditions.c: In function ‘int main2(int, int)’:
/tmp/wrong-conditions.c:7:14: warning: the address of ‘void foo()’ will never
be NULL [-Waddress]
   if (foo && bar && baz)
              ^~~
/tmp/wrong-conditions.c:7:14: warning: the address of ‘void bar()’ will never
be NULL [-Waddress]
/tmp/wrong-conditions.c:7:21: warning: the address of ‘void baz()’ will never
be NULL [-Waddress]
   if (foo && bar && baz)
                     ^~~

Where location of 'foo' is wrong and location for 'bar' is missing.

Reply via email to