OSDN Git Service

Backported from mainline
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / compile / 930529-1.c
1 struct r
2 {
3   int d1, d2;
4 };
5
6 struct km
7 {
8   int d;
9 };
10
11 struct f1
12 {
13   char *fn;
14   char *fd;
15   char *fs;
16   char *ic;
17   void (*ff) ();
18 };
19
20 int g ();
21
22 int y;
23 struct r *bs;
24 int bv;
25
26 void b ();
27 char *w ();
28
29 struct km **q;
30 char **mns;
31 int nm;
32 struct f1 **z;
33
34 f (char *km, char *h)
35 {
36   struct f1 *t;
37   int map = midn(km, strlen(km));
38   int V;
39   int c;
40   struct r r;
41   struct f1 *cm;
42
43   if (!g(&V, &cm, h, strlen(h)))
44     {
45       c = (cm - z[V]);
46       goto L;
47     }
48
49   for (c = 0; c < nm; c++)
50     if (!strcmp (h, mns[c]))
51       {
52         V = -1;
53         goto L;
54       }
55
56   for (c = 0; c < y; c++)
57     {
58       if (!memcmp (&bs[c], &r, 8))
59         goto L;
60     }
61
62   h = w (&r);
63   if (!bv)
64     {
65       bs = g (8);
66       t = (struct f1 *)g (20);
67     }
68   else
69     {
70       bs = g (bs, y * 8);
71       z[bv] = cr (z[bv], (1 + y) * 20);
72       t = &z[bv][y - 1];
73     }
74   bs[y - 1] = r;
75   t->fs[0] = sp (y - 1);
76   t->fs[1] = 0;
77   t->ic = 0;
78   t->fd = 0;
79   t->fn = cs (h);
80   t->ff = b;
81  L:
82   g (q[map], V, c);
83 }