| typedef __SIZE_TYPE__ size_t; |
| extern size_t strlen (const char *s); |
| |
| typedef struct A { |
| int a, b; |
| } A; |
| |
| typedef struct B { |
| struct A **a; |
| int b; |
| } B; |
| |
| A *a; |
| int b = 1, c; |
| B d[1]; |
| |
| void foo (A *x, const char *y, int z) |
| { |
| c = y[4] + z * 25; |
| } |
| |
| A *bar (const char *v, int w, int x, const char *y, int z) |
| { |
| if (w) |
| abort (); |
| exit (0); |
| } |
| |
| void test (const char *x, int *y) |
| { |
| foo (d->a[d->b], "test", 200); |
| d->a[d->b] = bar (x, b ? 0 : 65536, strlen (x), "test", 201); |
| d->a[d->b]->a++; |
| if (y) |
| d->a[d->b]->b = *y; |
| } |
| |
| int main () |
| { |
| d->b = 0; |
| d->a = &a; |
| test ("", 0); |
| } |