|
|
1.1 root 1: /* The Plum Hall Validation Suite for C
2: * Unpublished copyright (c) 1986-1991, Chiron Systems Inc and Plum Hall Inc.
3: * VERSION: 4
4: * DATE: 1993-01-01
5: * The "ANSI" mode of this suite corresponds to official ANSI C, X3.159-1989.
6: * As per your license agreement, your distribution is not to be moved or copied outside the Designated Site
7: * without specific permission from Plum Hall Inc.
8: */
9:
10: /*
11: * PREC2B - the fourth quarter of precedence checking
12: */
13: #include "defs.h"
14:
15: static void p2_17();
16: static void p2_18();
17: static void p2_19();
18: static void p2_20();
19: static void p2_21();
20: static void p2_22();
21: static void p2_23();
22: static void p2_24();
23: static void p2_25();
24: static void p2_26();
25: static void p2_27();
26: static void p2_28();
27: static void p2_29();
28: static void p2_30();
29: static void p2_31();
30: static void p2_32();
31: static void p2_33();
32: static void p2_34();
33: static void p2_35();
34:
35: void prec2b()
36: {
37: Filename = "prec2b.c";
38: p2_17(); /* * */
39: p2_18(); /* / */
40: p2_19(); /* % */
41: p2_20(); /* + */
42: p2_21(); /* - */
43: p2_22(); /* >> */
44: p2_23(); /* << */
45: p2_24(); /* > */
46: p2_25(); /* < */
47: p2_26(); /* >= */
48: p2_27(); /* <= */
49: p2_28(); /* == */
50: p2_29(); /* != */
51: p2_30(); /* & */
52: p2_31(); /* ^ */
53: p2_32(); /* | */
54: p2_33(); /* && */
55: p2_34(); /* || */
56: p2_35(); /* ?: */
57: }
58:
59: /* Z op X*Y */
60: static void p2_17()
61: {
62: int i = 7;
63: int j = 3;
64: int k = 2;
65: iequals(__LINE__, i/j*k, 4);
66: iequals(__LINE__, i%j*k, 2);
67: iequals(__LINE__, i+j*k, 13);
68: iequals(__LINE__, i-j*k, 1);
69: iequals(__LINE__, i>>j*k, 0);
70: iequals(__LINE__, i<<j*k, 448);
71: iequals(__LINE__, i>j*k, 1);
72: iequals(__LINE__, i<j*k, 0);
73: iequals(__LINE__, i<=j*k, 0);
74: iequals(__LINE__, i>=j*k, 1);
75: iequals(__LINE__, i==j*k, 0);
76: iequals(__LINE__, i!=j*k, 1);
77: iequals(__LINE__, i&j*k, 6);
78: iequals(__LINE__, i^j*k, 1);
79: iequals(__LINE__, i|j*k, 7);
80: iequals(__LINE__, i&&j*k, 1);
81: iequals(__LINE__, i||j*k, 1);
82: iequals(__LINE__, i?j*k:0, 6);
83: iequals(__LINE__, i=j*k, 6);
84: iequals(__LINE__, i*=j*k, 36);
85: iequals(__LINE__, i/=j*k, 6);
86: iequals(__LINE__, i%=j*k, 0);
87: iequals(__LINE__, i+=j*k, 6);
88: i = 8;
89: iequals(__LINE__, i-=j*k, 2);
90: iequals(__LINE__, i<<=j*k, 128);
91: iequals(__LINE__, i>>=j*k, 2);
92: iequals(__LINE__, i&=j*k, 2);
93: iequals(__LINE__, i^=j*k, 4);
94: iequals(__LINE__, i|=j*k, 6);
95: iequals(__LINE__, (i,j*k), 6);
96: }
97:
98: /* Z op X/Y */
99: static void p2_18()
100: {
101: int i = 7;
102: int j = 4;
103: int k = 2;
104: iequals(__LINE__, i/j/k, 0);
105: iequals(__LINE__, i%j/k, 1);
106: iequals(__LINE__, i+j/k, 9);
107: iequals(__LINE__, i-j/k, 5);
108: iequals(__LINE__, i>>j/k, 1);
109: iequals(__LINE__, i<<j/k, 28);
110: iequals(__LINE__, i>j/k, 1);
111: iequals(__LINE__, i<j/k, 0);
112: iequals(__LINE__, i<=j/k, 0);
113: iequals(__LINE__, i>=j/k, 1);
114: iequals(__LINE__, i==j/k, 0);
115: iequals(__LINE__, i!=j/k, 1);
116: iequals(__LINE__, i&j/k, 2);
117: iequals(__LINE__, i^j/k, 5);
118: iequals(__LINE__, i|j/k, 7);
119: iequals(__LINE__, i&&j/k, 1);
120: iequals(__LINE__, i||j/k, 1);
121: iequals(__LINE__, i?j/k:0, 2);
122: iequals(__LINE__, i=j/k, 2);
123: iequals(__LINE__, i*=j/k, 4);
124: iequals(__LINE__, i/=j/k, 2);
125: iequals(__LINE__, i%=j/k, 0);
126: iequals(__LINE__, i+=j/k, 2);
127: i = 3;
128: iequals(__LINE__, i-=j/k, 1);
129: iequals(__LINE__, i<<=j/k, 4);
130: iequals(__LINE__, i>>=j/k, 1);
131: iequals(__LINE__, i&=j/k, 0);
132: iequals(__LINE__, i^=j/k, 2);
133: iequals(__LINE__, i|=j/k, 2);
134: iequals(__LINE__, (i,j/k), 2);
135: }
136:
137: /* Z op X%Y */
138: static void p2_19()
139: {
140: int i = 7;
141: int j = 6;
142: int k = 4;
143: iequals(__LINE__, i%j%k, 1);
144: iequals(__LINE__, i+j%k, 9);
145: iequals(__LINE__, i-j%k, 5);
146: iequals(__LINE__, i>>j%k, 1);
147: iequals(__LINE__, i<<j%k, 28);
148: iequals(__LINE__, i>j%k, 1);
149: iequals(__LINE__, i<j%k, 0);
150: iequals(__LINE__, i<=j%k, 0);
151: iequals(__LINE__, i>=j%k, 1);
152: iequals(__LINE__, i==j%k, 0);
153: iequals(__LINE__, i!=j%k, 1);
154: iequals(__LINE__, i&j%k, 2);
155: iequals(__LINE__, i^j%k, 5);
156: iequals(__LINE__, i|j%k, 7);
157: iequals(__LINE__, i&&j%k, 1);
158: iequals(__LINE__, i||j%k, 1);
159: iequals(__LINE__, i?j%k:0, 2);
160: iequals(__LINE__, i=j%k, 2);
161: iequals(__LINE__, i*=j%k, 4);
162: iequals(__LINE__, i/=j%k, 2);
163: iequals(__LINE__, i%=j%k, 0);
164: iequals(__LINE__, i+=j%k, 2);
165: i = 3;
166: iequals(__LINE__, i-=j%k, 1);
167: iequals(__LINE__, i<<=j%k, 4);
168: iequals(__LINE__, i>>=j%k, 1);
169: iequals(__LINE__, i&=j%k, 0);
170: iequals(__LINE__, i^=j%k, 2);
171: iequals(__LINE__, i|=j%k, 2);
172: iequals(__LINE__, (i,j%k), 2);
173: }
174:
175: /* Z op X+Y */
176: static void p2_20()
177: {
178: int i = 7;
179: int j = 4;
180: int k = 2;
181: iequals(__LINE__, i+j+k, 13);
182: iequals(__LINE__, i-j+k, 5);
183: iequals(__LINE__, i>>j+k, 0);
184: iequals(__LINE__, i<<j+k, 448);
185: iequals(__LINE__, i>j+k, 1);
186: iequals(__LINE__, i<j+k, 0);
187: iequals(__LINE__, i<=j+k, 0);
188: iequals(__LINE__, i>=j+k, 1);
189: iequals(__LINE__, i==j+k, 0);
190: iequals(__LINE__, i!=j+k, 1);
191: iequals(__LINE__, i&j+k, 6);
192: iequals(__LINE__, i^j+k, 1);
193: iequals(__LINE__, i|j+k, 7);
194: iequals(__LINE__, i&&j+k, 1);
195: iequals(__LINE__, i||j+k, 1);
196: iequals(__LINE__, i?j+k:0, 6);
197: iequals(__LINE__, i=j+k, 6);
198: iequals(__LINE__, i*=j+k, 36);
199: iequals(__LINE__, i/=j+k, 6);
200: iequals(__LINE__, i%=j+k, 0);
201: iequals(__LINE__, i+=j+k, 6);
202: i = 8;
203: iequals(__LINE__, i-=j+k, 2);
204: iequals(__LINE__, i<<=j+k, 2<<6);
205: iequals(__LINE__, i>>=j+k, 2);
206: iequals(__LINE__, i&=j+k, 2);
207: iequals(__LINE__, i^=j+k, 4);
208: iequals(__LINE__, i|=j+k, 6);
209: iequals(__LINE__, (i,j+k), 6);
210: }
211:
212: /* Z op X-Y */
213: static void p2_21()
214: {
215: int i = 7;
216: int j = 4;
217: int k = 2;
218: iequals(__LINE__, i-j-k, 1);
219: iequals(__LINE__, i>>j-k, 1);
220: iequals(__LINE__, i<<j-k, 28);
221: iequals(__LINE__, i>j-k, 1);
222: iequals(__LINE__, i<j-k, 0);
223: iequals(__LINE__, i<=j-k, 0);
224: iequals(__LINE__, i>=j-k, 1);
225: iequals(__LINE__, i==j-k, 0);
226: iequals(__LINE__, i!=j-k, 1);
227: iequals(__LINE__, i&j-k, 2);
228: iequals(__LINE__, i^j-k, 5);
229: iequals(__LINE__, i|j-k, 7);
230: iequals(__LINE__, i&&j-k, 1);
231: iequals(__LINE__, i||j-k, 1);
232: iequals(__LINE__, i?j-k:0, 2);
233: iequals(__LINE__, i=j-k, 2);
234: iequals(__LINE__, i*=j-k, 4);
235: iequals(__LINE__, i/=j-k, 2);
236: iequals(__LINE__, i%=j-k, 0);
237: iequals(__LINE__, i+=j-k, 2);
238: iequals(__LINE__, i-=j-k, 0);
239: i = 3;
240: iequals(__LINE__, i<<=j-k, 12);
241: iequals(__LINE__, i>>=j-k, 3);
242: iequals(__LINE__, i&=j-k, 2);
243: iequals(__LINE__, i^=j-k, 0);
244: iequals(__LINE__, i|=j-k, 2);
245: iequals(__LINE__, (i,j-k), 2);
246: }
247:
248: /* Z op X>>Y */
249: static void p2_22()
250: {
251: int i = 7;
252: int j = 4;
253: int k = 2;
254: iequals(__LINE__, i>>j>>k, 0);
255: iequals(__LINE__, i<<j>>k, 28);
256: iequals(__LINE__, i>j>>k, 1);
257: iequals(__LINE__, i<j>>k, 0);
258: iequals(__LINE__, i<=j>>k, 0);
259: iequals(__LINE__, i>=j>>k, 1);
260: iequals(__LINE__, i==j>>k, 0);
261: iequals(__LINE__, i!=j>>k, 1);
262: iequals(__LINE__, i&j>>k, 1);
263: iequals(__LINE__, i^j>>k, 6);
264: iequals(__LINE__, i|j>>k, 7);
265: iequals(__LINE__, i&&j>>k, 1);
266: iequals(__LINE__, i||j>>k, 1);
267: iequals(__LINE__, i?j>>k:0, 1);
268: iequals(__LINE__, i=j>>k, 1);
269: iequals(__LINE__, i*=j>>k, 1);
270: iequals(__LINE__, i/=j>>k, 1);
271: iequals(__LINE__, i%=j>>k, 0);
272: iequals(__LINE__, i+=j>>k, 1);
273: iequals(__LINE__, i-=j>>k, 0);
274: i = 3;
275: iequals(__LINE__, i<<=j>>k, 6);
276: iequals(__LINE__, i>>=j>>k, 3);
277: iequals(__LINE__, i&=j>>k, 1);
278: iequals(__LINE__, i^=j>>k, 0);
279: iequals(__LINE__, i|=j>>k, 1);
280: iequals(__LINE__, (i,j>>k), 1);
281: }
282:
283: /* Z op X<<Y */
284: static void p2_23()
285: {
286: int i = 7;
287: int j = 2;
288: int k = 1;
289: iequals(__LINE__, i<<j<<k, 56);
290: iequals(__LINE__, i>j<<k, 1);
291: iequals(__LINE__, i<j<<k, 0);
292: iequals(__LINE__, i<=j<<k, 0);
293: iequals(__LINE__, i>=j<<k, 1);
294: iequals(__LINE__, i==j<<k, 0);
295: iequals(__LINE__, i!=j<<k, 1);
296: iequals(__LINE__, i&j<<k, 4);
297: iequals(__LINE__, i^j<<k, 3);
298: iequals(__LINE__, i|j<<k, 7);
299: iequals(__LINE__, i&&j<<k, 1);
300: iequals(__LINE__, i||j<<k, 1);
301: iequals(__LINE__, i?j<<k:0, 4);
302: iequals(__LINE__, i=j<<k, 4);
303: iequals(__LINE__, i*=j<<k, 16);
304: iequals(__LINE__, i/=j<<k, 4);
305: iequals(__LINE__, i%=j<<k, 0);
306: iequals(__LINE__, i+=j<<k, 4);
307: iequals(__LINE__, i-=j<<k, 0);
308: i = 3;
309: iequals(__LINE__, i<<=j<<k, 48);
310: iequals(__LINE__, i>>=j<<k, 3);
311: iequals(__LINE__, i&=j<<k, 0);
312: iequals(__LINE__, i^=j<<k, 4);
313: iequals(__LINE__, i|=j<<k, 4);
314: iequals(__LINE__, (i,j<<k), 4);
315: }
316:
317: /* Z op X>Y */
318: static void p2_24()
319: {
320: int i = 7;
321: int j = 4;
322: int k = 2;
323: iequals(__LINE__, i>j>k, 0);
324: iequals(__LINE__, i<j>k, 0);
325: iequals(__LINE__, i<=j>k, 0);
326: iequals(__LINE__, i>=j>k, 0);
327: iequals(__LINE__, i==j>k, 0);
328: iequals(__LINE__, i!=j>k, 1);
329: iequals(__LINE__, i&j>k, 1);
330: iequals(__LINE__, i^j>k, 6);
331: iequals(__LINE__, i|j>k, 7);
332: iequals(__LINE__, i&&j>k, 1);
333: iequals(__LINE__, i||j>k, 1);
334: iequals(__LINE__, i?j>k:0, 1);
335: iequals(__LINE__, i=j>k, 1);
336: iequals(__LINE__, i*=j>k, 1);
337: iequals(__LINE__, i/=j>k, 1);
338: iequals(__LINE__, i%=j>k, 0);
339: iequals(__LINE__, i+=j>k, 1);
340: iequals(__LINE__, i-=j>k, 0);
341: i = 3;
342: iequals(__LINE__, i<<=j>k, 6);
343: iequals(__LINE__, i>>=j>k, 3);
344: iequals(__LINE__, i&=j>k, 1);
345: iequals(__LINE__, i^=j>k, 0);
346: iequals(__LINE__, i|=j>k, 1);
347: iequals(__LINE__, (i,j>k), 1);
348: }
349:
350: /* Z op X<Y */
351: static void p2_25()
352: {
353: int i = 7;
354: int j = 2;
355: int k = 4;
356: iequals(__LINE__, i-j<k, 0);
357: iequals(__LINE__, i>j<k, 1);
358: iequals(__LINE__, i<j<k, 1);
359: iequals(__LINE__, i<=j<k, 1);
360: iequals(__LINE__, i>=j<k, 1);
361: iequals(__LINE__, i==j<k, 0);
362: iequals(__LINE__, i!=j<k, 1);
363: iequals(__LINE__, i&j<k, 1);
364: iequals(__LINE__, i^j<k, 6);
365: iequals(__LINE__, i|j<k, 7);
366: iequals(__LINE__, i&&j<k, 1);
367: iequals(__LINE__, i||j<k, 1);
368: iequals(__LINE__, i?j<k:0, 1);
369: iequals(__LINE__, i=j<k, 1);
370: iequals(__LINE__, i*=j<k, 1);
371: iequals(__LINE__, i/=j<k, 1);
372: iequals(__LINE__, i%=j<k, 0);
373: iequals(__LINE__, i+=j<k, 1);
374: iequals(__LINE__, i-=j<k, 0);
375: i = 3;
376: iequals(__LINE__, i<<=j<k, 6);
377: iequals(__LINE__, i>>=j<k, 3);
378: iequals(__LINE__, i&=j<k, 1);
379: iequals(__LINE__, i^=j<k, 0);
380: iequals(__LINE__, i|=j<k, 1);
381: iequals(__LINE__, (i,j<k), 1);
382: }
383:
384: /* Z op X>=Y */
385: static void p2_26()
386: {
387: int i = 7;
388: int j = 4;
389: int k = 2;
390: iequals(__LINE__, i<=j>=k, 0);
391: iequals(__LINE__, i>=j>=k, 0);
392: iequals(__LINE__, i==j>=k, 0);
393: iequals(__LINE__, i!=j>=k, 1);
394: iequals(__LINE__, i&j>=k, 1);
395: iequals(__LINE__, i^j>=k, 6);
396: iequals(__LINE__, i|j>=k, 7);
397: iequals(__LINE__, i&&j>=k, 1);
398: iequals(__LINE__, i||j>=k, 1);
399: iequals(__LINE__, i?j>=k:0, 1);
400: iequals(__LINE__, i=j>=k, 1);
401: iequals(__LINE__, i*=j>=k, 1);
402: iequals(__LINE__, i/=j>=k, 1);
403: iequals(__LINE__, i%=j>=k, 0);
404: iequals(__LINE__, i+=j>=k, 1);
405: iequals(__LINE__, i-=j>=k, 0);
406: i = 3;
407: iequals(__LINE__, i<<=j>=k, 6);
408: iequals(__LINE__, i>>=j>=k, 3);
409: iequals(__LINE__, i&=j>=k, 1);
410: iequals(__LINE__, i^=j>=k, 0);
411: iequals(__LINE__, i|=j>=k, 1);
412: iequals(__LINE__, (i,j>=k), 1);
413: }
414:
415: /* Z op X<=Y */
416: static void p2_27()
417: {
418: int i = 7;
419: int j = 4;
420: int k = 4;
421: iequals(__LINE__, i>=j<=k, 1);
422: iequals(__LINE__, i==j<=k, 0);
423: iequals(__LINE__, i!=j<=k, 1);
424: iequals(__LINE__, i&j<=k, 1);
425: iequals(__LINE__, i^j<=k, 6);
426: iequals(__LINE__, i|j<=k, 7);
427: iequals(__LINE__, i&&j<=k, 1);
428: iequals(__LINE__, i||j<=k, 1);
429: iequals(__LINE__, i?j<=k:0, 1);
430: iequals(__LINE__, i=j<=k, 1);
431: iequals(__LINE__, i*=j<=k, 1);
432: iequals(__LINE__, i/=j<=k, 1);
433: iequals(__LINE__, i%=j<=k, 0);
434: iequals(__LINE__, i+=j<=k, 1);
435: iequals(__LINE__, i-=j<=k, 0);
436: i = 3;
437: iequals(__LINE__, i<<=j<=k, 6);
438: iequals(__LINE__, i>>=j<=k, 3);
439: iequals(__LINE__, i&=j<=k, 1);
440: iequals(__LINE__, i^=j<=k, 0);
441: iequals(__LINE__, i|=j<=k, 1);
442: iequals(__LINE__, (i,j<=k), 1);
443: }
444:
445: /* Z op X==Y */
446: static void p2_28()
447: {
448: int i = 7;
449: int j = 4;
450: int k = 4;
451: iequals(__LINE__, i==j==k, 0);
452: iequals(__LINE__, i!=j==k, 0);
453: iequals(__LINE__, i&j==k, 1);
454: iequals(__LINE__, i^j==k, 6);
455: iequals(__LINE__, i|j==k, 7);
456: iequals(__LINE__, i&&j==k, 1);
457: iequals(__LINE__, i||j==k, 1);
458: iequals(__LINE__, i?j==k:0, 1);
459: iequals(__LINE__, i=j==k, 1);
460: iequals(__LINE__, i*=j==k, 1);
461: iequals(__LINE__, i/=j==k, 1);
462: iequals(__LINE__, i%=j==k, 0);
463: iequals(__LINE__, i+=j==k, 1);
464: iequals(__LINE__, i-=j==k, 0);
465: i = 3;
466: iequals(__LINE__, i<<=j==k, 6);
467: iequals(__LINE__, i>>=j==k, 3);
468: iequals(__LINE__, i&=j==k, 1);
469: iequals(__LINE__, i^=j==k, 0);
470: iequals(__LINE__, i|=j==k, 1);
471: iequals(__LINE__, (i,j==k), 1);
472: }
473:
474: /* Z op X!=Y */
475: static void p2_29()
476: {
477: int i = 7;
478: int j = 4;
479: int k = 2;
480: iequals(__LINE__, i!=j!=k, 1);
481: iequals(__LINE__, i&j!=k, 1);
482: iequals(__LINE__, i^j!=k, 6);
483: iequals(__LINE__, i|j!=k, 7);
484: iequals(__LINE__, i&&j!=k, 1);
485: iequals(__LINE__, i||j!=k, 1);
486: iequals(__LINE__, i?j!=k:0, 1);
487: iequals(__LINE__, i=j!=k, 1);
488: iequals(__LINE__, i*=j!=k, 1);
489: iequals(__LINE__, i/=j!=k, 1);
490: iequals(__LINE__, i%=j!=k, 0);
491: iequals(__LINE__, i+=j!=k, 1);
492: iequals(__LINE__, i-=j!=k, 0);
493: i = 3;
494: iequals(__LINE__, i<<=j!=k, 6);
495: iequals(__LINE__, i>>=j!=k, 3);
496: iequals(__LINE__, i&=j!=k, 1);
497: iequals(__LINE__, i^=j!=k, 0);
498: iequals(__LINE__, i|=j!=k, 1);
499: iequals(__LINE__, (i,j!=k), 1);
500: }
501:
502: /* Z op X&Y */
503: static void p2_30()
504: {
505: int i = 7;
506: int j = 3;
507: int k = 2;
508: iequals(__LINE__, i&j&k, 2);
509: iequals(__LINE__, i^j&k, 5);
510: iequals(__LINE__, i|j&k, 7);
511: iequals(__LINE__, i&&j&k, 1);
512: iequals(__LINE__, i||j&k, 1);
513: iequals(__LINE__, i?j&k:0, 2);
514: iequals(__LINE__, i=j&k, 2);
515: iequals(__LINE__, i*=j&k, 4);
516: iequals(__LINE__, i/=j&k, 2);
517: iequals(__LINE__, i%=j&k, 0);
518: iequals(__LINE__, i+=j&k, 2);
519: iequals(__LINE__, i-=j&k, 0);
520: i = 3;
521: iequals(__LINE__, i<<=j&k, 12);
522: iequals(__LINE__, i>>=j&k, 3);
523: iequals(__LINE__, i&=j&k, 2);
524: iequals(__LINE__, i^=j&k, 0);
525: iequals(__LINE__, i|=j&k, 2);
526: iequals(__LINE__, (i,j&k), 2);
527: }
528:
529: /* Z op X^Y */
530: static void p2_31()
531: {
532: int i = 7;
533: int j = 4;
534: int k = 2;
535: iequals(__LINE__, i^j^k, 1);
536: iequals(__LINE__, i|j^k, 7);
537: iequals(__LINE__, i&&j^k, 1);
538: iequals(__LINE__, i||j^k, 1);
539: iequals(__LINE__, i?j^k:0, 6);
540: iequals(__LINE__, i=j^k, 6);
541: iequals(__LINE__, i*=j^k, 36);
542: iequals(__LINE__, i/=j^k, 6);
543: iequals(__LINE__, i%=j^k, 0);
544: iequals(__LINE__, i+=j^k, 6);
545: iequals(__LINE__, i-=j^k, 0);
546: iequals(__LINE__, i<<=j^k, 0);
547: iequals(__LINE__, i>>=j^k, 0);
548: i = 3;
549: iequals(__LINE__, i&=j^k, 2);
550: iequals(__LINE__, i^=j^k, 4);
551: iequals(__LINE__, i|=j^k, 6);
552: iequals(__LINE__, (i,j^k), 6);
553: }
554:
555: /* Z op X|Y */
556: static void p2_32()
557: {
558: int i = 7;
559: int j = 4;
560: int k = 2;
561: iequals(__LINE__, i|j|k, 7);
562: iequals(__LINE__, i&&j|k, 1);
563: iequals(__LINE__, i||j|k, 1);
564: iequals(__LINE__, i?j|k:0, 6);
565: iequals(__LINE__, i=j|k, 6);
566: iequals(__LINE__, i*=j|k, 36);
567: iequals(__LINE__, i/=j|k, 6);
568: iequals(__LINE__, i%=j|k, 0);
569: iequals(__LINE__, i+=j|k, 6);
570: iequals(__LINE__, i-=j|k, 0);
571: i = 3;
572: iequals(__LINE__, i<<=j|k, 192);
573: iequals(__LINE__, i>>=j|k, 3);
574: iequals(__LINE__, i&=j|k, 2);
575: iequals(__LINE__, i^=j|k, 4);
576: iequals(__LINE__, i|=j|k, 6);
577: iequals(__LINE__, (i,j|k), 6);
578: }
579:
580: /* Z op X&&Y */
581: static void p2_33()
582: {
583: int i = 7;
584: int j = 4;
585: int k = 2;
586: iequals(__LINE__, i&&j&&k, 1);
587: iequals(__LINE__, i||j&&k, 1);
588: iequals(__LINE__, i?j&&k:0, 1);
589: iequals(__LINE__, i=j&&k, 1);
590: iequals(__LINE__, i*=j&&k, 1);
591: iequals(__LINE__, i/=j&&k, 1);
592: iequals(__LINE__, i%=j&&k, 0);
593: iequals(__LINE__, i+=j&&k, 1);
594: iequals(__LINE__, i-=j&&k, 0);
595: i = 3;
596: iequals(__LINE__, i<<=j&&k, 6);
597: iequals(__LINE__, i>>=j&&k, 3);
598: iequals(__LINE__, i&=j&&k, 1);
599: iequals(__LINE__, i^=j&&k, 0);
600: iequals(__LINE__, i|=j&&k, 1);
601: iequals(__LINE__, (i,j&&k), 1);
602: }
603:
604: /* Z op X||Y */
605: static void p2_34()
606: {
607: int i = 7;
608: int j = 4;
609: int k = 2;
610: iequals(__LINE__, i||j||k, 1);
611: iequals(__LINE__, i?j||k:0, 1);
612: iequals(__LINE__, i=j||k, 1);
613: iequals(__LINE__, i*=j||k, 1);
614: iequals(__LINE__, i/=j||k, 1);
615: iequals(__LINE__, i%=j||k, 0);
616: iequals(__LINE__, i+=j||k, 1);
617: iequals(__LINE__, i-=j||k, 0);
618: i = 3;
619: iequals(__LINE__, i<<=j||k, 6);
620: iequals(__LINE__, i>>=j||k, 3);
621: iequals(__LINE__, i&=j||k, 1);
622: iequals(__LINE__, i^=j||k, 0);
623: iequals(__LINE__, i|=j||k, 1);
624: iequals(__LINE__, (i,j||k), 1);
625: }
626:
627: /* Z op X?Y */
628: static void p2_35()
629: {
630: int i = 7;
631: int j = 4;
632: int k = 2;
633: int l = 0;
634: iequals(__LINE__, i=j?k:l, 2);
635: iequals(__LINE__, i*=j?k:l, 4);
636: iequals(__LINE__, i/=j?k:l, 2);
637: iequals(__LINE__, i%=j?k:l, 0);
638: iequals(__LINE__, i+=j?k:l, 2);
639: iequals(__LINE__, i-=j?k:l, 0);
640: i = 3;
641: iequals(__LINE__, i<<=j?k:l, 12);
642: iequals(__LINE__, i>>=j?k:l, 3);
643: iequals(__LINE__, i&=j?k:l, 2);
644: iequals(__LINE__, i^=j?k:l, 0);
645: iequals(__LINE__, i|=j?k:l, 2);
646: iequals(__LINE__, (i,j?k:l), 2);
647: }
648:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.