| /* GCC was not warning about taking the address of paramaters or |
| fields of struct paramaters when returning them. */ |
| /* PR c/14156 */ |
| |
| /* { dg-do compile } */ |
| |
| |
| int * f( int a) |
| { |
| return &a;/* { dg-warning "address" "" } */ |
| } |
| |
| int * g() |
| { |
| int b = 0; |
| return &b;/* { dg-warning "address" "" } */ |
| } |
| |
| struct ll |
| { |
| int i; |
| }; |
| |
| int *h(struct ll c) |
| { |
| return &c.i;/* { dg-warning "address" "" } */ |
| } |
| |
| |
| struct ll d; |
| |
| int *i() |
| { |
| return &d.i;/* { dg-bogus "address" "" } */ |
| } |
| |
| |
| int *j(struct ll *c) |
| { |
| return &c->i; /* { dg-bogus "address" "" } */ |
| } |