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