2 /* { dg-do compile } */
3 /* { dg-options "" } */
5 /* Verify that GCC forbids non-static initialization of
6 flexible array members. */
8 struct str
{ int len
; char s
[]; };
10 struct str a
= { 2, "a" };
14 static struct str b
= { 2, "b" };
15 struct str c
= { 2, "c" }; /* { dg-error "(non-static)|(near initialization)" } */
16 struct str d
= (struct str
) { 2, "d" }; /* { dg-error "(non-static)|(near initialization)" } */
17 struct str e
= (struct str
) { d
.len
, "e" }; /* { dg-error "(non-static)|(initialization)" } */
20 struct str f
= { 0, {} };
24 static struct str g
= { 0, {} };
25 struct str h
= { 0, {} }; /* { dg-error "(non-static)|(near initialization)" } */
26 struct str i
= (struct str
) { 0, {} }; /* { dg-error "(non-static)|(near initialization)" } */
27 struct str j
= (struct str
) { i
.len
, {} }; /* { dg-error "(non-static)|(initialization)" } */
34 static struct str l
= { 0 };
36 struct str n
= (struct str
) { 0 };
37 struct str o
= (struct str
) { n
.len
};
44 static struct str q
= {};
46 struct str s
= (struct str
) {};