Fix complex static initializers (handle additional '}' and '{' brackets)
- added an example to test suite - the "warning: assignment discards qualifiers from pointer target type" is present but harmless
This commit is contained in:
@ -827,6 +827,27 @@ struct aligntest4 {
|
||||
double a[0];
|
||||
};
|
||||
|
||||
struct complexinit0 {
|
||||
int a;
|
||||
int b;
|
||||
};
|
||||
|
||||
struct complexinit {
|
||||
int a;
|
||||
struct complexinit0 *b;
|
||||
};
|
||||
|
||||
const static struct complexinit cix[] = {
|
||||
[0] = {
|
||||
.a = 0xfefa,
|
||||
.b = (const struct complexinit0[]) {
|
||||
{ 0x80, 0x81 },
|
||||
{ 0x82, 0x83 },
|
||||
{}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
void struct_test()
|
||||
{
|
||||
struct1 *s;
|
||||
@ -856,6 +877,11 @@ void struct_test()
|
||||
printf("st2: %d %d %d\n",
|
||||
s->f1, s->f2, s->f3);
|
||||
printf("str_addr=%x\n", (int)st1.str - (int)&st1.f1);
|
||||
printf("cix: %d %d %d %d %d %d %d\n",
|
||||
cix[0].a,
|
||||
cix[0].b[0].a, cix[0].b[0].b,
|
||||
cix[0].b[1].a, cix[0].b[1].b,
|
||||
cix[0].b[2].a, cix[0].b[2].b);
|
||||
|
||||
/* align / size tests */
|
||||
printf("aligntest1 sizeof=%d alignof=%d\n",
|
||||
|
||||
Reference in New Issue
Block a user