Mercurial > hg > CbC > old > device
diff test/tmp6.c @ 0:d35df41eac69
Initial revision
author | kono |
---|---|
date | Thu, 13 Jan 2000 02:41:41 +0900 |
parents | |
children | bf602558130d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tmp6.c Thu Jan 13 02:41:41 2000 +0900 @@ -0,0 +1,71 @@ +#include "stdio.h" + +int +main(ac,av) +int ac; +char *av[]; +{ + int i; + + if(ac!=2) + return(0); + i=main0(ac,av,return,environment); + fprintf(stderr,"1: %s %d\n",av[0],i); + return i; +} + +int +main0(ac,av,ret,retenv) +int ac; +char *av[]; +code (*ret)(); +void *retenv; +{ + int i,j,k; + i=123; + j=456; + k = atoi(av[1]); + fprintf(stderr,"2: av=%x av[0]=%x %s\n",av,av[0],av[0]); + goto code0(i,j,k,av,ret,retenv,return,environment); +} + +code code0(i,j,k,av,ret,retenv,ret1,ret1env) +int i,j,k; +char *av[]; +code (*ret)(); +void *retenv; +code (*ret1)(); +void *ret1env; +{ + char *p; + p = av[0]; + fprintf(stderr,"3: i=%d j=%d k=%d av=%x p=%s\n",i,j,k,av,p); + goto code1(i,j,k,av,ret,retenv,ret1,ret1env); +} + +code code1(i,j,k,av,ret,retenv,ret1,ret1env) +int i,j,k; +char *av[]; +code (*ret)(); +void *retenv; +code (*ret1)(); +void *ret1env; +{ + fprintf(stderr,"4: %s\n",av[0]); + goto code2(i,j,k,av,ret,retenv,ret1,ret1env); +} + +code code2(i,j,k,av,ret,retenv,ret1,ret1env) +int i,j,k; +char *av[]; +code (*ret)(); +void *retenv; +code (*ret1)(); +void *ret1env; +{ + fprintf(stderr,"5: %s\n",av[0]); + fprintf(stderr,"5: i=%d j=%d k=%d av=%x\n",i,j,k,av); + if (k>3) + goto (*ret1)(1234),ret1env; + goto (*ret)(1234),retenv; +}