Mercurial > hg > CbC > old > device
view test/tmp4.c @ 725:3f1f6c0610c1
goto with enviornment syntax changed.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 20 Aug 2009 16:39:02 +0900 |
parents | 6b7372e17970 |
children | c2c709727221 |
line wrap: on
line source
#define __environment _CbC_environment #define __return _CbC_return #include "stdio.h" int main(ac,av) int ac; char *av[]; { int i; i=main0(ac,av); fprintf(stdout,"1: %s %d\n",av[0]+2,i); return 0; } int main0(ac,av) int ac; char *av[]; { int i,j,k; i=123; j=456; k=789; fprintf(stdout,"2: %s\n",av[0]+2); goto code0(i,j,k,av,__return,__environment); } __code code0(i,j,k,av,ret,retenv) int i,j,k; char *av[]; __code (*ret)(); void *retenv; { char *p; p = av[0]+2; fprintf(stdout,"3: i=%d j=%d k=%d av[0]=%s p=%s\n",i,j,k,av[0]+2,p); goto code1(i,j,k,av,ret,retenv); } __code code1(i,j,k,av,ret,retenv) int i,j,k; char *av[]; __code (*ret)(); void *retenv; { fprintf(stdout,"4: %s\n",av[0]+2); goto code2(i,j,k,av,ret,retenv); } __code code2(i,j,k,av,ret,retenv) int i,j,k; char *av[]; __code (*ret)(); void *retenv; { fprintf(stdout,"5: %s\n",av[0]+2); fprintf(stdout,"5: i=%d j=%d k=%d\n",i,j,k); goto (*ret)(1234,retenv); }