Bug 78988 - Wrong location of a binary expression for -Waddress
Summary: Wrong location of a binary expression for -Waddress
Status: NEW
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: unknown
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: diagnostic
Depends on:
Blocks: Waddress
  Show dependency treegraph
 
Reported: 2017-01-04 16:24 UTC by Martin Liška
Modified: 2021-11-22 16:08 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2017-01-05 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Liška 2017-01-04 16:24:50 UTC
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.
Comment 1 Martin Sebor 2017-01-05 02:52:55 UTC
Confirmed.  The location doesn't look right in C either where GCC prints the following:

b.c: In function ‘main2’:
b.c:7:7: warning: the address of ‘foo’ will always evaluate as ‘true’ [-Waddres]
   if (foo && bar && baz)
       ^~~
b.c:7:11: warning: the address of ‘bar’ will always evaluate as ‘true’ [-Waddress]
   if (foo && bar && baz)
           ^~
b.c:7:18: warning: the address of ‘baz’ will always evaluate as ‘true’ [-Waddress]
   if (foo && bar && baz)
                  ^~
Comment 2 Martin Liška 2018-11-02 07:52:03 UTC
David will you be interested in the PR?