| /* Test -Waddress for testing an address against NULL. |
| Origin: Ian Lance Taylor <iant@google.com>. */ |
| |
| /* { dg-do compile } */ |
| /* { dg-options "-Waddress -fshow-column" } */ |
| |
| extern int foo (int); |
| |
| int i; |
| |
| void |
| bar (int a) |
| { |
| lab: |
| if (foo) /* { dg-warning "7:always evaluate as" "correct warning" } */ |
| foo (0); |
| if (foo (1)) |
| ; |
| if (&i) /* { dg-warning "7:always evaluate as" "correct warning" } */ |
| foo (2); |
| if (i) |
| foo (3); |
| if (&a) /* { dg-warning "7:always evaluate as" "correct warning" } */ |
| foo (4); |
| if (a) |
| foo (5); |
| if (&&lab) /* { dg-warning "7:always evaluate as" "correct warning" } */ |
| foo (6); |
| if (foo == 0) /* { dg-warning "11:the comparison will always evaluate as 'false'" "correct warning" } */ |
| foo (7); |
| if (foo (1) == 0) |
| foo (8); |
| if (&i == 0) /* { dg-warning "10:the comparison will always evaluate as 'false'" "correct warning" } */ |
| foo (9); |
| if (i == 0) |
| foo (10); |
| if (&a == 0) /* { dg-warning "10:the comparison will always evaluate as 'false'" "correct warning" } */ |
| foo (11); |
| if (a == 0) |
| foo (12); |
| if (&&lab == 0) /* { dg-warning "13:the comparison will always evaluate as 'false'" "correct warning" } */ |
| foo (13); |
| if (0 == foo) /* { dg-warning "9:the comparison will always evaluate as 'false'" "correct warning" } */ |
| foo (14); |
| if (0 == foo (1)) |
| foo (15); |
| if (0 == &i) /* { dg-warning "9:the comparison will always evaluate as 'false'" "correct warning" } */ |
| foo (16); |
| if (0 == i) |
| foo (17); |
| if (0 == &a) /* { dg-warning "9:the comparison will always evaluate as 'false'" "correct warning" } */ |
| foo (18); |
| if (0 == a) |
| foo (19); |
| if (0 == &&lab) /* { dg-warning "9:the comparison will always evaluate as 'false'" "correct warning" } */ |
| foo (20); |
| } |