annotate test/scope.c @ 544:dbfd6e88e2c3 s-dandy-ok

s-dandy compile OK
author kono
date Mon, 02 Jan 2006 12:55:17 +0900
parents a379da780856
children df60b120675d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
363
f3f2b7906d50 label extension
kono
parents:
diff changeset
1 /*
f3f2b7906d50 label extension
kono
parents:
diff changeset
2
f3f2b7906d50 label extension
kono
parents:
diff changeset
3 gcc -g -std=gnu99 test/scope.c
f3f2b7906d50 label extension
kono
parents:
diff changeset
4
f3f2b7906d50 label extension
kono
parents:
diff changeset
5 */
f3f2b7906d50 label extension
kono
parents:
diff changeset
6
f3f2b7906d50 label extension
kono
parents:
diff changeset
7 #include <stdio.h>
f3f2b7906d50 label extension
kono
parents:
diff changeset
8
f3f2b7906d50 label extension
kono
parents:
diff changeset
9 void
f3f2b7906d50 label extension
kono
parents:
diff changeset
10 f(int *i,void *label)
f3f2b7906d50 label extension
kono
parents:
diff changeset
11 {
f3f2b7906d50 label extension
kono
parents:
diff changeset
12 static int k = 3;
f3f2b7906d50 label extension
kono
parents:
diff changeset
13 {
f3f2b7906d50 label extension
kono
parents:
diff changeset
14 static int k = 3;
f3f2b7906d50 label extension
kono
parents:
diff changeset
15 *i = k++;
f3f2b7906d50 label extension
kono
parents:
diff changeset
16 }
f3f2b7906d50 label extension
kono
parents:
diff changeset
17 k--;
427
0c256ea2a97e Bitfield left value for ia32
kono
parents: 363
diff changeset
18 printf("#0017:f %d\n",k);
363
f3f2b7906d50 label extension
kono
parents:
diff changeset
19 }
f3f2b7906d50 label extension
kono
parents:
diff changeset
20
f3f2b7906d50 label extension
kono
parents:
diff changeset
21 int
f3f2b7906d50 label extension
kono
parents:
diff changeset
22 main()
f3f2b7906d50 label extension
kono
parents:
diff changeset
23 {
f3f2b7906d50 label extension
kono
parents:
diff changeset
24 int i,k;
f3f2b7906d50 label extension
kono
parents:
diff changeset
25 void *exit = &&exit0;
f3f2b7906d50 label extension
kono
parents:
diff changeset
26 i = 3;k=10;
544
dbfd6e88e2c3 s-dandy compile OK
kono
parents: 491
diff changeset
27
dbfd6e88e2c3 s-dandy compile OK
kono
parents: 491
diff changeset
28 printf("%s,%s,%d\n",
dbfd6e88e2c3 s-dandy compile OK
kono
parents: 491
diff changeset
29 __FILE__,
dbfd6e88e2c3 s-dandy compile OK
kono
parents: 491
diff changeset
30 __FUNCTION__,
dbfd6e88e2c3 s-dandy compile OK
kono
parents: 491
diff changeset
31 __LINE__
dbfd6e88e2c3 s-dandy compile OK
kono
parents: 491
diff changeset
32 );
dbfd6e88e2c3 s-dandy compile OK
kono
parents: 491
diff changeset
33
dbfd6e88e2c3 s-dandy compile OK
kono
parents: 491
diff changeset
34
363
f3f2b7906d50 label extension
kono
parents:
diff changeset
35 for(int k=0;k<10;k++) {
f3f2b7906d50 label extension
kono
parents:
diff changeset
36 int i;
f3f2b7906d50 label extension
kono
parents:
diff changeset
37 i = 4;
f3f2b7906d50 label extension
kono
parents:
diff changeset
38 if (({
f3f2b7906d50 label extension
kono
parents:
diff changeset
39 __label__ exit0;
f3f2b7906d50 label extension
kono
parents:
diff changeset
40 int i;
f3f2b7906d50 label extension
kono
parents:
diff changeset
41 f(&i,&&exit0);
f3f2b7906d50 label extension
kono
parents:
diff changeset
42 if (i==5)
f3f2b7906d50 label extension
kono
parents:
diff changeset
43 goto exit0;
427
0c256ea2a97e Bitfield left value for ia32
kono
parents: 363
diff changeset
44 printf("#0035:2nd inner %d %d %0x\n",i,k,&&exit1==exit);
363
f3f2b7906d50 label extension
kono
parents:
diff changeset
45 exit0:
f3f2b7906d50 label extension
kono
parents:
diff changeset
46 i;
f3f2b7906d50 label extension
kono
parents:
diff changeset
47 })!=7) {
f3f2b7906d50 label extension
kono
parents:
diff changeset
48 goto exit1;
f3f2b7906d50 label extension
kono
parents:
diff changeset
49 } else
f3f2b7906d50 label extension
kono
parents:
diff changeset
50 goto *exit;
450
eaf9e2746c83 parallel assign for simple expr. (too complex solution)
kono
parents: 427
diff changeset
51 /* not reached */
eaf9e2746c83 parallel assign for simple expr. (too complex solution)
kono
parents: 427
diff changeset
52 i = ({ int k=3; k; });
363
f3f2b7906d50 label extension
kono
parents:
diff changeset
53 exit1:
491
a379da780856 cond signed/unsigned
kono
parents: 450
diff changeset
54 printf("#0045:inner %d %d %0x\n",i,k,&&exit1==exit);
363
f3f2b7906d50 label extension
kono
parents:
diff changeset
55 }
f3f2b7906d50 label extension
kono
parents:
diff changeset
56 k++;
f3f2b7906d50 label extension
kono
parents:
diff changeset
57 exit0:
491
a379da780856 cond signed/unsigned
kono
parents: 450
diff changeset
58 printf("#0049:outer %d %d %0x\n",i,k,&&exit0==exit);
363
f3f2b7906d50 label extension
kono
parents:
diff changeset
59 return 0;
f3f2b7906d50 label extension
kono
parents:
diff changeset
60 }