annotate test/call.c @ 688:10c8eaf0f73b scope-fix

scope fix done.
author kono
date Sat, 06 Oct 2007 15:49:04 +0900
parents a379da780856
children baa67e2e54d2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
467
32737bad7489 fix list/tag interference
kono
parents: 427
diff changeset
1 int printf(const char *format, ...);
32737bad7489 fix list/tag interference
kono
parents: 427
diff changeset
2
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
3
94
1ad7045741a7 float dbinop fix
kono
parents: 79
diff changeset
4 int
1ad7045741a7 float dbinop fix
kono
parents: 79
diff changeset
5 a0(int i);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
6
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
7 int (*conv)(int);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
8
482
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
9 int
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
10 a0(int i)
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
11 {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
12 return i+3;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
13 }
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
14
482
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
15 int
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
16 a1(int i)
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
17 {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
18 return i-3;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
19 }
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
20
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
21
482
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
22 int
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
23 a2(int i,int conv(int))
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
24 {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
25 return conv(i);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
26 }
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
27
482
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
28 int
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
29 a3(int i,int (*conv)(int))
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
30 {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
31 return conv(i);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
32 }
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
33
482
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
34 int
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
35 a4(int i,int conv(int))
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
36 {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
37 return (*conv)(i);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
38 }
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
39
482
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
40 static
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
41 int a5(int i,int (*conv)(int))
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
42 {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
43 return (*conv)(i);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
44 }
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
45
482
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
46 typedef int (*fptr)(int,int (*)(int));
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
47
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
48 unsigned long addrs[]={
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
49 (unsigned long)&a0,
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
50 (unsigned long)&a5,
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
51 (unsigned long)a0,
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
52 (unsigned long)a5,
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
53 0,
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
54 };
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
55
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
56 fptr faddrs[]={
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
57 &a2,
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
58 &a5,
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
59 a2,
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
60 a5,
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
61 0,
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
62 };
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
63
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
64
688
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
65
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
66 void print( int i, void (*print)(int i,void (*)()) );
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
67
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
68 void print0( int i, void (*print1)(int i,void (*)()) )
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
69 {
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
70 printf("print0 %d %d\n",print1 == print,i);
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
71 }
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
72
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
73 void print( int i, void (*print)(int i,void (*)()) )
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
74 {
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
75 print0(i,print);
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
76 (*print)(i,print);
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
77 }
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
78
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
79 void pppp( void (*pppp)(void (*)()) );
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
80
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
81 void pppp0( void (*pppp1)(void (*)()) )
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
82 {
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
83 printf("pppp0 %d\n",pppp1 == pppp);
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
84 }
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
85
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
86 void pppp( void (*pppp)(void (*)()) )
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
87 {
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
88 pppp0(pppp);
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
89 (*pppp)(pppp);
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
90 }
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
91
483
77cab9687d3f *** empty log message ***
kono
parents: 482
diff changeset
92 int
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
93 main(int ac,char *av[]) {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
94 int j,k;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
95 conv = a0;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
96 j = conv(3);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
97 k = a2(4,a1);
491
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
98 printf("#0070:6 1 = %d %d\n",j,k);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
99 k = a3(4,a1);
491
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
100 printf("#0072:6 1 = %d %d\n",j,k);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
101 k = a4(4,a1);
491
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
102 printf("#0074:6 1 = %d %d\n",j,k);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
103 k = a5(4,a1);
491
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
104 printf("#0076: 1 = %d %d\n",j,k);
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
105 printf("#0077: 1 = %d\n",(unsigned long)a0 == addrs[0]);
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
106 printf("#0078: 1 = %d\n",(unsigned long)a5 == addrs[1]);
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
107 printf("#0079: 1 = %d\n",(unsigned long)a0 == addrs[2]);
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
108 printf("#0080: 1 = %d\n",(unsigned long)a5 == addrs[3]);
482
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
109
491
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
110 printf("#0082: 1 = %d\n",a2 == faddrs[0]);
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
111 printf("#0083: 1 = %d\n",a5 == faddrs[1]);
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
112 printf("#0084: 1 = %d\n",&a2 == faddrs[2]);
a379da780856 cond signed/unsigned
kono
parents: 483
diff changeset
113 printf("#0085: 1 = %d\n",&a5 == faddrs[3]);
688
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
114
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
115 print(55,print0);
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
116 pppp(pppp0);
10c8eaf0f73b scope fix done.
kono
parents: 491
diff changeset
117
172
096559f07a70 some check
kono
parents: 94
diff changeset
118 return 0;
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
119 }