580
|
1
|
|
2 extern int printf(const char *,...);
|
|
3
|
622
|
4 __code (*ret)();
|
580
|
5 void *env;
|
|
6
|
|
7 #define ENVSIZE (1<<14)
|
|
8
|
|
9 typedef
|
|
10 struct interface1 {
|
|
11 int a;
|
|
12 int b;
|
|
13 char c[100];
|
|
14 int last;
|
|
15 } interface1;
|
|
16
|
622
|
17 __code
|
580
|
18 throw2(interface1 arg,int i,int j)
|
|
19 {
|
|
20 goto ret(3),env;
|
|
21 }
|
|
22
|
622
|
23 __code
|
580
|
24 throw1(interface1 arg,int i,int j)
|
|
25 {
|
582
|
26 printf("%d %d %d %d %d\n",arg.last,arg.a,arg.c[99],i,j);
|
581
|
27 arg.last=96;
|
|
28 goto throw2(arg,i,74);
|
580
|
29 }
|
|
30
|
622
|
31 __code
|
580
|
32 throw(interface1 arg,int i,int j)
|
|
33 {
|
581
|
34 char *space = (char *)malloc(ENVSIZE)+ENVSIZE;
|
582
|
35 printf("%d %d %d %d %d\n",arg.last,arg.a,arg.c[99],i,j);
|
581
|
36 arg.last=97;
|
|
37 goto throw1(arg,i,75),space;
|
580
|
38 }
|
|
39
|
|
40 void
|
|
41 setup(interface1 *arg)
|
|
42 {
|
582
|
43 for(register int i=0;i<100;i++) arg->c[i]=i;
|
580
|
44 }
|
|
45
|
|
46 int
|
|
47 main0()
|
|
48 {
|
|
49 interface1 arg;
|
|
50
|
|
51 arg.a = 3;
|
|
52 arg.b = 55;
|
|
53 setup(&arg);
|
|
54 arg.c[99] = 66;
|
|
55 arg.last = 96;
|
|
56
|
|
57 printf("main0\n");
|
|
58 ret = return;
|
|
59 env = environment;
|
|
60
|
582
|
61 goto throw(arg,-7,76);
|
580
|
62 }
|
|
63
|
|
64 int
|
|
65 main1()
|
|
66 {
|
|
67 int dummy;
|
|
68 int dummy1;
|
|
69 interface1 arg;
|
581
|
70 char *space = (char *)malloc(ENVSIZE)+ENVSIZE;
|
580
|
71
|
|
72 arg.a = 3;
|
|
73 arg.b = 55;
|
|
74 setup(&arg);
|
|
75 arg.c[99] = 66;
|
581
|
76 arg.last=98;
|
580
|
77
|
|
78 printf("main1\n");
|
|
79 ret = return;
|
|
80 env = environment;
|
|
81
|
582
|
82 goto throw1(arg,-6,77),space;
|
580
|
83 }
|
|
84
|
|
85 int
|
|
86 main2()
|
|
87 {
|
|
88 int dummy;
|
|
89 interface1 arg;
|
581
|
90 char *space = (char *)malloc(ENVSIZE)+ENVSIZE;
|
580
|
91
|
|
92 arg.a = 3;
|
|
93 arg.b = 55;
|
|
94 setup(&arg);
|
|
95 arg.c[99] = 66;
|
|
96 arg.last=99;
|
|
97
|
|
98 printf("main2\n");
|
|
99 ret = return;
|
|
100 env = environment;
|
|
101
|
582
|
102 goto throw1(arg,-5,78);
|
580
|
103 }
|
|
104
|
|
105 int
|
|
106 main()
|
|
107 {
|
|
108 main0();
|
|
109 main1();
|
|
110 main2();
|
|
111 return 0;
|
|
112 }
|
|
113
|
|
114 /* end */
|