libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / gnu23-tag-4.c
blob8db81c7b87d95cd20b5e876107f9c822133d161e
1 /* { dg-do compile }
2 * { dg-options "-std=gnu23" } */
4 // structs with variably modified types
6 void bar(int n, int m)
8 struct f { int b; int a[n]; } *x;
9 { struct f { int b; int a[n]; } *x2 = x; }
10 { struct f { int b; int a[m]; } *x2 = x; }
11 { struct f { int b; int a[5]; } *x2 = x; }
12 { struct f { int b; int a[0]; } *x2 = x; }
13 { struct f { int b; int a[]; } *x2 = x; }
15 struct g { int a[n]; int b; } *y;
16 { struct g { int a[n]; int b; } *y2 = y; }
17 { struct g { int a[m]; int b; } *y2 = y; }
18 { struct g { int a[4]; int b; } *y2 = y; }
20 struct h { int b; int a[5]; } *w;
21 { struct h { int b; int a[5]; } *w2 = w; }
22 { struct h { int b; int a[n]; } *w2 = w; }
23 { struct h { int b; int a[m]; } *w2 = w; }
25 struct i { int b; int (*a)(int c[n]); } *u;
26 { struct i { int b; int (*a)(int c[4]); } *u2 = u; }
27 { struct i { int b; int (*a)(int c[]); } *u2 = u; }
28 { struct i { int b; int (*a)(int c[*]); } *u2 = u; }