| /* PR c/43395 */ |
| /* { dg-do compile } */ |
| /* { dg-require-effective-target label_values } */ |
| |
| void * |
| foo (void) |
| { |
| lab: /* { dg-line foo_lab } */ |
| return &&lab; |
| /* { dg-warning "function returns address of label" "" { target c } .-1 } */ |
| /* { dg-warning "address of label" "" { target c++ } foo_lab } */ |
| } |
| |
| void * |
| bar (void) |
| { |
| __label__ lab; |
| lab: /* { dg-line bar_lab } */ |
| return &&lab; |
| /* { dg-warning "function returns address of label" "" { target c } .-1 } */ |
| /* { dg-warning "address of label" "" { target c++ } bar_lab } */ |
| } |
| |
| void * |
| baz (void) |
| { |
| int i; /* { dg-line baz_i } */ |
| return &i; |
| /* { dg-warning "function returns address of local variable" "" { target c } .-1 } */ |
| /* { dg-warning "address of local variable" "" { target c++ } baz_i } */ |
| } |