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:
Jaroslav Kysela
2011-02-22 10:06:20 +01:00
parent a3ebdd0aeb
commit dbefae52b0
2 changed files with 34 additions and 4 deletions

View File

@ -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",