Mercurial > hg > CbC > old > device
diff test/scope.c @ 363:f3f2b7906d50
label extension
author | kono |
---|---|
date | Tue, 06 Jul 2004 17:04:31 +0900 |
parents | |
children | 0c256ea2a97e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/scope.c Tue Jul 06 17:04:31 2004 +0900 @@ -0,0 +1,50 @@ +/* + + gcc -g -std=gnu99 test/scope.c + + */ + +#include <stdio.h> + +void +f(int *i,void *label) +{ + static int k = 3; + { + static int k = 3; + *i = k++; + } + k--; + printf("f %d\n",k); +} + +int +main() +{ + int i,k; + void *exit = &&exit0; + i = 3;k=10; + for(int k=0;k<10;k++) { + int i; + i = 4; + if (({ + __label__ exit0; + int i; + f(&i,&&exit0); + if (i==5) + goto exit0; + printf("2nd inner %d %d %0x\n",i,k,&&exit1==exit); + exit0: + i; + })!=7) { + goto exit1; + } else + goto *exit; +exit1: + printf("inner %d %d %0x\n",i,k,&&exit1==exit); + } + k++; +exit0: + printf("outer %d %d %0x\n",i,k,&&exit0==exit); + return 0; +}