111
|
1 /* { dg-require-effective-target untyped_assembly } */
|
|
2
|
|
3 struct r
|
|
4 {
|
|
5 int d1, d2;
|
|
6 };
|
|
7
|
|
8 struct km
|
|
9 {
|
|
10 int d;
|
|
11 };
|
|
12
|
|
13 struct f1
|
|
14 {
|
|
15 char *fn;
|
|
16 char *fd;
|
|
17 char *fs;
|
|
18 char *ic;
|
|
19 void (*ff) ();
|
|
20 };
|
|
21
|
|
22 int g ();
|
|
23
|
|
24 int y;
|
|
25 struct r *bs;
|
|
26 int bv;
|
|
27
|
|
28 void b ();
|
|
29 char *w ();
|
|
30
|
|
31 struct km **q;
|
|
32 char **mns;
|
|
33 int nm;
|
|
34 struct f1 **z;
|
|
35
|
|
36 f (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 }
|