// 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" } }