Mercurial > hg > CbC > old > device
annotate test/tmp6.c @ 742:bdae6a221174
i64 continue...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 09 Nov 2010 22:19:02 +0900 |
parents | 3f1f6c0610c1 |
children | c2c709727221 |
rev | line source |
---|---|
725
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
1 #define __environment _CbC_environment |
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
2 #define __return _CbC_return |
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
3 |
0 | 4 #include "stdio.h" |
5 | |
449 | 6 char *a[] = {"test1","2"}; |
7 | |
0 | 8 int |
9 main(ac,av) | |
10 int ac; | |
11 char *av[]; | |
12 { | |
13 int i; | |
14 | |
6 | 15 if(ac!=2) { |
685 | 16 fprintf(stdout,"#0012:a used.\n"); |
449 | 17 // return(0); |
720 | 18 i=main0(2,a,__return,__environment); |
449 | 19 return 0; |
6 | 20 } |
720 | 21 i=main0(ac,av,__return,__environment); |
685 | 22 fprintf(stdout,"#0018:1: %s %d\n",av[0],i); |
172 | 23 return 0; |
0 | 24 } |
25 | |
26 int | |
27 main0(ac,av,ret,retenv) | |
28 int ac; | |
29 char *av[]; | |
622 | 30 __code (*ret)(); |
0 | 31 void *retenv; |
32 { | |
33 int i,j,k; | |
34 i=123; | |
35 j=456; | |
36 k = atoi(av[1]); | |
685 | 37 fprintf(stdout,"#0033:2: av=%x av[0]=%x %s\n",av==a,av[0]==a[0],av[0]); |
720 | 38 goto code0(i,j,k,av,ret,retenv,__return,__environment); |
0 | 39 } |
40 | |
622 | 41 __code code0(i,j,k,av,ret,retenv,ret1,ret1env) |
0 | 42 int i,j,k; |
43 char *av[]; | |
622 | 44 __code (*ret)(); |
0 | 45 void *retenv; |
622 | 46 __code (*ret1)(); |
0 | 47 void *ret1env; |
48 { | |
49 char *p; | |
50 p = av[0]; | |
685 | 51 fprintf(stdout,"#0047:code0\n",av[0]); |
0 | 52 goto code1(i,j,k,av,ret,retenv,ret1,ret1env); |
53 } | |
54 | |
622 | 55 __code code1(i,j,k,av,ret,retenv,ret1,ret1env) |
0 | 56 int i,j,k; |
57 char *av[]; | |
622 | 58 __code (*ret)(); |
0 | 59 void *retenv; |
622 | 60 __code (*ret1)(); |
0 | 61 void *ret1env; |
62 { | |
685 | 63 fprintf(stdout,"#0059:4: %s\n",av[0]); |
0 | 64 goto code2(i,j,k,av,ret,retenv,ret1,ret1env); |
65 } | |
66 | |
622 | 67 __code code2(i,j,k,av,ret,retenv,ret1,ret1env) |
0 | 68 int i,j,k; |
69 char *av[]; | |
622 | 70 __code (*ret)(); |
0 | 71 void *retenv; |
622 | 72 __code (*ret1)(); |
0 | 73 void *ret1env; |
74 { | |
685 | 75 fprintf(stdout,"#0071:5: %s\n",av[0]); |
76 fprintf(stdout,"#0072:5: i=%d j=%d k=%d av=%x\n",i,j,k,av==a); | |
0 | 77 if (k>3) |
725
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
78 goto (*ret1)(1234,ret1env); |
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
79 goto (*ret)(1234,retenv); |
0 | 80 } |