| /* Test diagnostics for variably modified function return types. PR |
| 39564. */ |
| /* { dg-do compile } */ |
| /* { dg-options "-std=c99" } */ |
| |
| int a; |
| |
| void |
| f1 (void) |
| { |
| typedef int T[a]; |
| extern T *g1 (void); /* { dg-error "non-nested function with variably modified type" } */ |
| } |
| |
| void |
| f2 (void) |
| { |
| extern int (*g2 (void))[a]; /* { dg-error "non-nested function with variably modified type" } */ |
| } |
| |
| void |
| f3 (void) |
| { |
| typedef int T[a]; |
| T *g3 (void); /* { dg-error "non-nested function with variably modified type" } */ |
| } |
| |
| void |
| f4 (void) |
| { |
| int (*g4 (void))[a]; /* { dg-error "non-nested function with variably modified type" } */ |
| } |