annotate test/call.c @ 483:77cab9687d3f

*** empty log message ***
author kono
date Sun, 11 Dec 2005 23:53:27 +0900
parents 8370ba6e8557
children a379da780856
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
483
77cab9687d3f *** empty log message ***
kono
parents: 482
diff changeset
65 int
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
66 main(int ac,char *av[]) {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
67 int j,k;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
68 conv = a0;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
69 j = conv(3);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
70 k = a2(4,a1);
427
0c256ea2a97e Bitfield left value for ia32
kono
parents: 172
diff changeset
71 printf("#0042:6 1 = %d %d\n",j,k);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
72 k = a3(4,a1);
427
0c256ea2a97e Bitfield left value for ia32
kono
parents: 172
diff changeset
73 printf("#0044:6 1 = %d %d\n",j,k);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
74 k = a4(4,a1);
427
0c256ea2a97e Bitfield left value for ia32
kono
parents: 172
diff changeset
75 printf("#0046:6 1 = %d %d\n",j,k);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
76 k = a5(4,a1);
482
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
77 printf("#0048: 1 = %d %d\n",j,k);
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
78 printf("#0049: 1 = %d\n",(unsigned long)a0 == addrs[0]);
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
79 printf("#0050: 1 = %d\n",(unsigned long)a5 == addrs[1]);
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
80 printf("#0051: 1 = %d\n",(unsigned long)a0 == addrs[2]);
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
81 printf("#0052: 1 = %d\n",(unsigned long)a5 == addrs[3]);
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
82
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
83 printf("#0053: 1 = %d\n",a2 == faddrs[0]);
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
84 printf("#0054: 1 = %d\n",a5 == faddrs[1]);
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
85 printf("#0055: 1 = %d\n",&a2 == faddrs[2]);
8370ba6e8557 *** empty log message ***
kono
parents: 467
diff changeset
86 printf("#0056: 1 = %d\n",&a5 == faddrs[3]);
172
096559f07a70 some check
kono
parents: 94
diff changeset
87 return 0;
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
88 }