Mercurial > hg > CbC > old > device
annotate test/inline.c @ 935:7672a37e7545 default tip
Raspbery PI ARM support begin
author | kono |
---|---|
date | Sat, 24 Dec 2016 03:02:57 +0000 |
parents | 5313ed059cee |
children |
rev | line source |
---|---|
459 | 1 const int a = 5,b = -3; |
2 int kkkk = 333; | |
3 static const int as = 5,bs = -3; | |
4 const char hoo[] = "test"; | |
517 | 5 char hoo0[] = "test"; |
459 | 6 static const char haa[] = "test"; |
7 static inline const int f(int k); | |
8 | |
460 | 9 |
868
c55337499f96
remove warnings and error from test
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
674
diff
changeset
|
10 extern int printf(const char *,...); |
552 | 11 inline int |
868
c55337499f96
remove warnings and error from test
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
674
diff
changeset
|
12 main0(int ac, char **av) |
552 | 13 { |
558 | 14 volatile const int i = 3; |
552 | 15 volatile const int j = 3; |
16 switch(i) { | |
17 case 1: printf("#0016:1\n"); break; | |
18 case 2: printf("#0017:2\n"); break; | |
19 case 3: printf("#0018:3\n"); break; | |
20 case 4: printf("#0019:4\n"); break; | |
21 } | |
22 switch(j) { | |
23 case 1: printf("#0022:1\n"); break; | |
558 | 24 default: |
25 case 2: printf("#0024:2\n"); break; | |
26 case 3: printf("#0025:3\n"); break; | |
27 case 4: printf("#0026:4\n"); break; | |
28 } | |
29 return 0; | |
30 } | |
31 | |
32 inline int | |
868
c55337499f96
remove warnings and error from test
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
674
diff
changeset
|
33 main3(int ac, char **av) |
558 | 34 { |
35 const int i = 3; | |
36 const int j = 3; | |
37 switch(i) { | |
38 case 1: printf("#0037:1\n"); break; | |
39 case 2: printf("#0038:2\n"); break; | |
40 case 3: printf("#0039:3\n"); break; | |
41 case 4: printf("#0040:4\n"); break; | |
42 } | |
43 switch(j) { | |
44 case 1: printf("#0043:1\n"); break; | |
45 case 2: printf("#0044:2\n"); break; | |
46 case 3: printf("#0045:3\n"); break; | |
47 case 4: printf("#0046:4\n"); break; | |
552 | 48 } |
49 return 0; | |
50 } | |
51 | |
460 | 52 int |
868
c55337499f96
remove warnings and error from test
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
674
diff
changeset
|
53 main1(int ac, char **av) |
460 | 54 { |
558 | 55 volatile const int i = 3; |
460 | 56 volatile const int j = 3; |
57 switch(i) { | |
558 | 58 case 1: printf("#0057:1\n"); break; |
59 case 2: printf("#0058:2\n"); break; | |
60 case 3: printf("#0059:3\n"); break; | |
61 case 4: printf("#0060:4\n"); break; | |
460 | 62 } |
63 switch(j) { | |
558 | 64 case 1: printf("#0063:1\n"); break; |
65 case 2: printf("#0064:2\n"); break; | |
66 case 3: printf("#0065:3\n"); break; | |
67 case 4: printf("#0066:4\n"); break; | |
68 } | |
69 return 0; | |
70 } | |
71 | |
72 int | |
868
c55337499f96
remove warnings and error from test
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
674
diff
changeset
|
73 main2(int ac, char **av) |
558 | 74 { |
75 const int j = 3; | |
76 const int i = 3; | |
77 switch(a) { | |
78 case 1: printf("#0077:1\n"); break; | |
79 default: | |
80 case 2: printf("#0079:2\n"); break; | |
81 case 3: printf("#0080:3\n"); break; | |
82 case 5: printf("#0081:4\n"); break; | |
83 } | |
84 switch(j) { | |
85 case 1: printf("#0084:1\n"); break; | |
86 default: | |
573 | 87 case 2: printf("#0086:2\n"); break; |
88 case 3: printf("#0087:3\n"); break; | |
89 case 4: printf("#0088:4\n"); break; | |
460 | 90 } |
91 return 0; | |
92 } | |
93 | |
94 | |
868
c55337499f96
remove warnings and error from test
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
674
diff
changeset
|
95 extern int printf(const char *,...); |
459 | 96 |
556 | 97 static inline const int f(const int k) |
459 | 98 { |
99 return k+1; | |
100 } | |
101 | |
556 | 102 inline int in1(const int i,const int j) |
459 | 103 { |
104 if (i>j) return j; | |
105 else return i; | |
106 } | |
107 | |
108 static | |
556 | 109 inline int ins(const int i,const int j) |
459 | 110 { |
573 | 111 printf("#0110:%d %d\n",i,j); |
459 | 112 if (f(i)>j) return j; |
113 else return i; | |
114 } | |
115 | |
116 static | |
556 | 117 inline int ins1(const int i,const int j, const int k) |
459 | 118 { |
573 | 119 printf("#0118:%d %d %d\n",i,j,k); |
459 | 120 if (f(i)>j) return j; |
121 else return i; | |
122 } | |
123 | |
556 | 124 inline __attribute__((always_inline)) int in2(const int p,int i,const int j) |
459 | 125 { |
534 | 126 int k = -20,m; |
552 | 127 int order=1; |
459 | 128 do { |
880 | 129 order <<= 4; order|=0; |
130 k += 3; | |
131 order <<= 4; order|=7; | |
459 | 132 } while ( k < j); |
573 | 133 printf("#0132: %d do %d %x\n",p,k,order); |
459 | 134 |
534 | 135 while (k > j) { |
880 | 136 order <<= 4; order|=0; |
137 k -= 3; | |
138 order <<= 4; order|=7; | |
534 | 139 } |
573 | 140 printf("#0139: %d while %d %x\n",p,k,order); |
459 | 141 |
142 m = 0; | |
143 for(k=0;k<j;k++) { | |
880 | 144 order <<= 4; order|=0; |
145 m += k; | |
146 order <<= 4; order|=7; | |
147 if (k&1) { | |
148 order <<= 4; order|=0; | |
149 m += k; | |
150 order <<= 4; order|=7; | |
151 } else { | |
152 order <<= 4; order|=5; | |
153 m += k; | |
154 order <<= 4; order|=10; | |
155 } | |
156 printf("#0155: %x\n",order); | |
459 | 157 } |
573 | 158 printf("#0157: %d for %d\n",p,m); |
459 | 159 |
552 | 160 |
459 | 161 switch(i) { |
162 case 1: k = 1; | |
880 | 163 break; |
459 | 164 case 2: k = 2; |
880 | 165 break; |
459 | 166 case 3: k = 3; |
880 | 167 break; |
459 | 168 case 4: k = 4; |
880 | 169 break; |
459 | 170 default: k = 5; |
171 } | |
573 | 172 printf("#0171: %d switch %d\n",p,k); |
459 | 173 |
174 for(k=0;k<j;k++) { | |
880 | 175 i += k; |
176 if (k<3) continue; | |
459 | 177 } |
573 | 178 printf("#0177: %d for %d\n",p,i); |
459 | 179 goto hoge; |
180 hage: | |
181 goto hage; | |
182 hoge: | |
183 return 0; | |
184 | |
185 } | |
186 | |
516 | 187 int (*fnp)(int i,int j,int k); |
459 | 188 |
189 int (*fnp3)(int i,int j,int k); | |
190 | |
191 void | |
192 a0(int k,int j) | |
193 { | |
194 int k1,j1; | |
195 const int v=3,x=6; | |
196 // a = 10; | |
197 | |
198 k1 = in1(a,b); | |
573 | 199 printf("#0198:%d %d %d\n",a,b,k1); |
459 | 200 j1 = in1(k,j-6)+f(k1); |
573 | 201 printf("#0200:%d %d %s\n",k1,j1,hoo); |
459 | 202 k1 = &v-&x>0? &v-&x : &x-&v; |
573 | 203 printf("#0202:v-x: %d\n",k1); |
459 | 204 |
205 k1 = ins(a,b); | |
206 j1 = ins(k,j-6)+f(k1); | |
573 | 207 printf("#0206:%d %d %s\n",k1,j1,haa); |
459 | 208 |
209 k1 = ins(as,bs); | |
210 j1 = ins(k,j-6)+f(k1); | |
573 | 211 printf("#0210:%d %d %s\n",k1,j1,haa); |
459 | 212 |
213 k1 = ins(v,x); | |
214 j1 = ins(k,j-6)+f(v); | |
573 | 215 printf("#0214:%d %d %s\n",k1,j1,haa); |
459 | 216 |
516 | 217 k1 = fnp(v,x,5); |
218 j1 = ins1(k,j-6,6)+f(v); | |
573 | 219 printf("#0218:%d %d %s\n",k1,j1,haa); |
459 | 220 } |
221 | |
222 void | |
223 a1(int k,int j) | |
224 { | |
225 in2(1,k,j); | |
226 in2(2,3,10); | |
227 in2(3,k,10); | |
228 in2(4,2,j); | |
229 in2(5,2,1); | |
230 in2(6,0,2); | |
460 | 231 in2(8,j*3,in2(7,k+3,10-j)); |
232 fnp3(9,0,2); | |
459 | 233 } |
234 | |
515 | 235 static |
236 inline int order(int a0,int a1,int a2, int a3, int a4) | |
237 { | |
573 | 238 printf("#0237:order %d %d %d %d %d\n",a0,a1,a2,a3,a4); |
516 | 239 } |
240 | |
241 static | |
242 inline int order1(int a0,int a1,int a2, int a3, int a4) | |
243 { | |
573 | 244 printf("#0243:orderp %d %d %d %d %d\n",a0,a1,a2,a3,a4); |
515 | 245 } |
246 | |
516 | 247 int (*order1p)(int a0,int a1,int a2, int a3, int a4) = order1; |
248 | |
249 static inline int inmain(int ac,char *av[]) | |
250 { | |
251 fnp = ins1; | |
252 order(11,12,13,14,15); | |
253 order1p(11,12,13,14,15); | |
254 a0(15,16); | |
255 a0(-19,16); | |
256 fnp3 = in2; | |
257 a1(19,110); | |
258 main0(ac,av); | |
259 return 0; | |
260 } | |
261 | |
560 | 262 inline |
263 void | |
264 main5() | |
265 { | |
573 | 266 printf("#0265:test1 " " test2\n"); |
267 printf("#0266:test3 " | |
560 | 268 " test4\n"); |
269 #if 0 | |
270 // error | |
674 | 271 //printf("#0270:test5 |
272 // test6\n"); | |
560 | 273 #endif |
573 | 274 printf("#0273:test7 \ |
560 | 275 test8\n"); |
276 } | |
516 | 277 |
459 | 278 int |
460 | 279 main(int ac,char *av[]) |
459 | 280 { |
560 | 281 void (*f)() = main5; |
282 const int i = 3; | |
283 | |
459 | 284 fnp = ins1; |
573 | 285 printf("#0284:%d\n",(1,2,3,4,5)); |
515 | 286 order(1,2,3,4,5); |
516 | 287 order1p(1,2,3,4,5); |
459 | 288 a0(5,6); |
289 a0(-9,6); | |
290 fnp3 = in2; | |
291 a1(9,10); | |
460 | 292 main0(ac,av); |
552 | 293 main1(ac,av); |
516 | 294 inmain(ac,av); |
558 | 295 main2(ac,av); |
296 main3(ac,av); | |
560 | 297 |
573 | 298 printf("#0297:test1 " " test2\n"); |
560 | 299 |
300 | |
301 switch(i) { | |
573 | 302 case 1: printf("#0301:1\n"); break; |
560 | 303 default: |
573 | 304 case 2: printf("#0303:2\n"); break; |
305 case 3: printf("#0304:3\n"); break; | |
560 | 306 } |
307 | |
308 main5(); | |
309 f(); | |
459 | 310 return 0; |
311 } | |
312 |