1 /* { dg-do run } */ 2 /* { dg-options "" } */ 3 4 /* Verify that GCC's initialized flexible array member extension 5 works properly. */ 6 7 extern void abort(void); 8 extern void exit(int); 9 10 struct f { int w; int x[]; }; 11 struct g { int w; int x[0]; }; 12 13 static struct f f = { 4, { 0, 1, 2, 3 } }; 14 static int junk1[] = { -1, -1, -1, -1 }; 15 static struct g g = { 4, { 0, 1, 2, 3 } }; /* { dg-warning "(excess elements)|(near initialization)" "" } */ 16 static int junk2[] = { -1, -1, -1, -1 }; 17 18 int main() 19 { 20 int i; 21 for (i = 0; i < f.w; ++i) 22 if (f.x[i] != i) 23 abort (); 24 exit(0); 25 } 26