| /* { dg-do run } */ |
| /* { dg-options "" } */ |
| |
| /* Verify that GCC's initialized flexible array member extension |
| works properly. */ |
| |
| extern void abort(void); |
| extern void exit(int); |
| |
| struct f { int w; int x[]; }; |
| struct g { int w; int x[0]; }; |
| |
| static struct f f = { 4, { 0, 1, 2, 3 } }; |
| static int junk1[] = { -1, -1, -1, -1 }; |
| static struct g g = { 4, { 0, 1, 2, 3 } }; /* { dg-warning "(excess elements)|(near initialization)" } */ |
| static int junk2[] = { -1, -1, -1, -1 }; |
| |
| int main() |
| { |
| int i; |
| for (i = 0; i < f.w; ++i) |
| if (f.x[i] != i) |
| abort (); |
| exit(0); |
| } |