1typedef __SIZE_TYPE__ size_t;
2extern size_t strlen (const char *s);
3
4typedef struct A {
5  int a, b;
6} A;
7
8typedef struct B {
9  struct A **a;
10  int b;
11} B;
12
13A *a;
14int b = 1, c;
15B d[1];
16
17void foo (A *x, const char *y, int z)
18{
19  c = y[4] + z * 25;
20}
21
22A *bar (const char *v, int w, int x, const char *y, int z)
23{
24  if (w)
25    abort ();
26  exit (0);
27}
28
29void test (const char *x, int *y)
30{
31  foo (d->a[d->b], "test", 200);
32  d->a[d->b] = bar (x, b ? 0 : 65536, strlen (x), "test", 201);
33  d->a[d->b]->a++;
34  if (y)
35    d->a[d->b]->b = *y;
36}
37
38int main ()
39{
40  d->b = 0;
41  d->a = &a;
42  test ("", 0);
43}
44