/* GCC was not warning about taking the address of parameters or | |
fields of struct parameters 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" } */ | |
} |