| // PR c++/65168 |
| // { dg-options "-Waddress" } |
| |
| void foo (void); |
| |
| int d; |
| int &c = d; |
| |
| void |
| bar (int &a) |
| { |
| int &b = a; |
| |
| if ((int *)&a) // { dg-warning "7:the compiler can assume that the address of" } |
| foo (); |
| |
| if (&b) // { dg-warning "7:the compiler can assume that the address of" } |
| foo (); |
| |
| if (!&c) // { dg-warning "8:the address of" } |
| foo (); |
| |
| if (!&(int &)(int &)a) // { dg-warning "8:the compiler can assume that the address of" } |
| foo (); |
| |
| if (&a == 0) // { dg-warning "10:the compiler can assume that the address of" } |
| foo (); |
| |
| if (&b != 0) // { dg-warning "10:the compiler can assume that the address of" } |
| foo (); |
| |
| if (0 == &(int &)(int &)c) // { dg-warning "9:the address of" } |
| foo (); |
| |
| if (&a != (int *)0) // { dg-warning "10:the compiler can assume that the address of" } |
| foo (); |
| } |
| |
| bool |
| bar_1 (int &a) |
| { |
| if (d == 5) |
| return &a; // { dg-warning "12:the compiler can assume that the address of" } |
| else |
| return !&(int &)(int &)a; // { dg-warning "13:the compiler can assume that the address of" } |
| } |