|
|
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: #include "defs.h"
11:
12: /*
13: * PREC1C -- try all operator pairs -- this file uses all binary operators
14: * in the first position (see prec 2 for the other way around).
15: */
16:
17: static void p1_36();
18: static void p1_37();
19: static void p1_38();
20: static void p1_39();
21: static void p1_40();
22: static void p1_41();
23: static void p1_42();
24: static void p1_43();
25: static void p1_44();
26: static void p1_45();
27: static void p1_46();
28: static void p1_47();
29:
30:
31: void prec1c()
32: {
33: Filename = "prec1c.c";
34: p1_36(); /* = */
35: p1_37(); /* *= */
36: p1_38(); /* /= */
37: p1_39(); /* %= */
38: p1_40(); /* += */
39: p1_41(); /* -= */
40: p1_42(); /* <<= */
41: p1_43(); /* >>= */
42: p1_44(); /* &= */
43: p1_45(); /* ^= */
44: p1_46(); /* |= */
45: p1_47(); /* , */
46: }
47:
48:
49: /* X*=YopZ */
50: static void p1_36()
51: {
52: int i = 1;
53: int j = 7;
54: int k = 4;
55: iequals(__LINE__, i=j*=k, 28);
56: iequals(__LINE__, i, 28);
57: iequals(__LINE__, j, 28);
58: i = 1;
59: j = 7;
60: iequals(__LINE__, i=j*=k, 28);
61: iequals(__LINE__, i, 28);
62: iequals(__LINE__, j, 28);
63: iequals(__LINE__, i=j/=k, 7);
64: iequals(__LINE__, i, 7);
65: iequals(__LINE__, j, 7);
66: iequals(__LINE__, i=j%=k, 3);
67: iequals(__LINE__, i, 3);
68: iequals(__LINE__, j, 3);
69: iequals(__LINE__, i=j+=k, 7);
70: iequals(__LINE__, i, 7);
71: iequals(__LINE__, j, 7);
72: iequals(__LINE__, i=j-=k, 3);
73: iequals(__LINE__, i, 3);
74: iequals(__LINE__, j, 3);
75: k = 1;
76: iequals(__LINE__, i=j<<=k, 6);
77: iequals(__LINE__, i, 6);
78: iequals(__LINE__, j, 6);
79: iequals(__LINE__, i=j>>=k, 3);
80: iequals(__LINE__, i, 3);
81: iequals(__LINE__, j, 3);
82: k = 3;
83: iequals(__LINE__, i=j&=k, 3);
84: iequals(__LINE__, i, 3);
85: iequals(__LINE__, j, 3);
86: j = 0;
87: iequals(__LINE__, i=j^=k, 3);
88: iequals(__LINE__, i, 3);
89: iequals(__LINE__, j, 3);
90: k = 3;
91: iequals(__LINE__, i=j|=k, 3);
92: iequals(__LINE__, i, 3);
93: iequals(__LINE__, j, 3);
94: iequals(__LINE__, (i=j,k), 3);
95: iequals(__LINE__, i, 3);
96: }
97:
98: /* X*=YopZ */
99: static void p1_37()
100: {
101: int i = 1;
102: int j = 7;
103: int k = 4;
104: iequals(__LINE__, i*=j*=k, 28);
105: iequals(__LINE__, i, 28);
106: iequals(__LINE__, j, 28);
107: iequals(__LINE__, i*=j/=k, 196);
108: iequals(__LINE__, i, 196);
109: iequals(__LINE__, j, 7);
110: iequals(__LINE__, i*=j%=k, 588);
111: iequals(__LINE__, i, 588);
112: iequals(__LINE__, j, 3);
113: iequals(__LINE__, i*=j+=k, 4116);
114: iequals(__LINE__, i, 4116);
115: iequals(__LINE__, j, 7);
116: iequals(__LINE__, i*=j-=k, 12348);
117: iequals(__LINE__, i, 12348);
118: iequals(__LINE__, j, 3);
119: i = 11;
120: k = 1;
121: iequals(__LINE__, i*=j<<=k, 66);
122: iequals(__LINE__, i, 66);
123: iequals(__LINE__, j, 6);
124: i = 11;
125: iequals(__LINE__, i*=j>>=k, 33);
126: iequals(__LINE__, i, 33);
127: iequals(__LINE__, j, 3);
128: i = 11;
129: k = 3;
130: iequals(__LINE__, i*=j&=k, 33);
131: iequals(__LINE__, i, 33);
132: iequals(__LINE__, j, 3);
133: i = 11;
134: j = 0;
135: iequals(__LINE__, i*=j^=k, 33);
136: iequals(__LINE__, i, 33);
137: iequals(__LINE__, j, 3);
138: i = 11;
139: k = 3;
140: iequals(__LINE__, i*=j|=k, 33);
141: iequals(__LINE__, i, 33);
142: iequals(__LINE__, j, 3);
143: i = 11;
144: iequals(__LINE__, (i*=j,k), 3);
145: iequals(__LINE__, i, 33);
146: }
147:
148: /* X/=YopZ */
149: static void p1_38()
150: {
151: int i = 11;
152: int j = 8;
153: int k = 4;
154: iequals(__LINE__, i/=j/=k, 5);
155: iequals(__LINE__, i, 5);
156: iequals(__LINE__, j, 2);
157: i = 11;
158: j = 7;
159: iequals(__LINE__, i/=j%=k, 3);
160: iequals(__LINE__, i, 3);
161: iequals(__LINE__, j, 3);
162: i = 11;
163: iequals(__LINE__, i/=j-=k, -11);
164: iequals(__LINE__, i, -11);
165: iequals(__LINE__, j, -1);
166: i = 11;
167: k = 1;
168: j = 3;
169: iequals(__LINE__, i/=j<<=k, 1);
170: iequals(__LINE__, i, 1);
171: iequals(__LINE__, j, 6);
172: i = 11;
173: iequals(__LINE__, i/=j>>=k, 3);
174: iequals(__LINE__, i, 3);
175: iequals(__LINE__, j, 3);
176: i = 11;
177: k = 3;
178: iequals(__LINE__, i/=j&=k, 3);
179: iequals(__LINE__, i, 3);
180: iequals(__LINE__, j, 3);
181: i = 11;
182: j = 0;
183: iequals(__LINE__, i/=j^=k, 3);
184: iequals(__LINE__, i, 3);
185: iequals(__LINE__, j, 3);
186: i = 11;
187: k = 3;
188: iequals(__LINE__, i/=j|=k, 3);
189: iequals(__LINE__, i, 3);
190: iequals(__LINE__, j, 3);
191: i = 11;
192: iequals(__LINE__, (i/=j,k), 3);
193: iequals(__LINE__, i, 3);
194: }
195:
196: /* X%=YopZ */
197: static void p1_39()
198: {
199: int i = 11;
200: int j = 7;
201: int k = 4;
202: iequals(__LINE__, i%=j%=k, 2);
203: iequals(__LINE__, i, 2);
204: iequals(__LINE__, j, 3);
205: i = 11;
206: iequals(__LINE__, i%=j+=k, 4);
207: iequals(__LINE__, i, 4);
208: iequals(__LINE__, j, 7);
209: i = 11;
210: iequals(__LINE__, i%=j-=k, 2);
211: iequals(__LINE__, i, 2);
212: iequals(__LINE__, j, 3);
213: i = 11;
214: k = 1;
215: iequals(__LINE__, i%=j<<=k, 5);
216: iequals(__LINE__, i, 5);
217: iequals(__LINE__, j, 6);
218: i = 11;
219: iequals(__LINE__, i%=j>>=k, 2);
220: iequals(__LINE__, i, 2);
221: iequals(__LINE__, j, 3);
222: i = 11;
223: k = 3;
224: iequals(__LINE__, i%=j&=k, 2);
225: iequals(__LINE__, i, 2);
226: iequals(__LINE__, j, 3);
227: i = 11;
228: j = 0;
229: iequals(__LINE__, i%=j^=k, 2);
230: iequals(__LINE__, i, 2);
231: iequals(__LINE__, j, 3);
232: i = 11;
233: k = 3;
234: iequals(__LINE__, i%=j|=k, 2);
235: iequals(__LINE__, i, 2);
236: iequals(__LINE__, j, 3);
237: i = 11;
238: iequals(__LINE__, (i%=j,k), 3);
239: iequals(__LINE__, i, 2);
240: }
241:
242: /* X+=YopZ */
243: static void p1_40()
244: {
245: int i = -6;
246: int j = 3;
247: int k = 4;
248: iequals(__LINE__, i+=j+=k, 1);
249: iequals(__LINE__, i, 1);
250: iequals(__LINE__, j, 7);
251: iequals(__LINE__, i+=j-=k, 4);
252: iequals(__LINE__, i, 4);
253: iequals(__LINE__, j, 3);
254: k = 1;
255: iequals(__LINE__, i+=j<<=k, 10);
256: iequals(__LINE__, i, 10);
257: iequals(__LINE__, j, 6);
258: iequals(__LINE__, i+=j>>=k, 13);
259: iequals(__LINE__, i, 13);
260: iequals(__LINE__, j, 3);
261: k = 3;
262: iequals(__LINE__, i+=j&=k, 16);
263: iequals(__LINE__, i, 16);
264: iequals(__LINE__, j, 3);
265: iequals(__LINE__, i+=j^=k, 16);
266: iequals(__LINE__, i, 16);
267: iequals(__LINE__, j, 0);
268: k = 3;
269: iequals(__LINE__, i+=j|=k, 19);
270: iequals(__LINE__, i, 19);
271: iequals(__LINE__, j, 3);
272: iequals(__LINE__, (i+=j,k), k);
273: iequals(__LINE__, i, 22);
274: }
275:
276: /* X-=YopZ */
277: static void p1_41()
278: {
279: int i = 21;
280: int j = 7;
281: int k = 4;
282: iequals(__LINE__, i-=j-=k, 18);
283: iequals(__LINE__, i, 18);
284: iequals(__LINE__, j, 3);
285: k = 1;
286: iequals(__LINE__, i-=j<<=k, 12);
287: iequals(__LINE__, i, 12);
288: iequals(__LINE__, j, 6);
289: iequals(__LINE__, i-=j>>=k, 9);
290: iequals(__LINE__, i, 9);
291: iequals(__LINE__, j, 3);
292: k = 3;
293: iequals(__LINE__, i-=j&=k, 6);
294: iequals(__LINE__, i, 6);
295: iequals(__LINE__, j, 3);
296: iequals(__LINE__, i-=j^=k, 6);
297: iequals(__LINE__, i, 6);
298: iequals(__LINE__, j, 0);
299: k = 3;
300: iequals(__LINE__, i-=j|=k, 3);
301: iequals(__LINE__, i, 3);
302: iequals(__LINE__, j, 3);
303: iequals(__LINE__, (i-=j,k), k);
304: iequals(__LINE__, i, 0);
305: }
306:
307: /* X<<=YopZ */
308: static void p1_42()
309: {
310: int i = 1;
311: int j = 2;
312: int k = 1;
313: iequals(__LINE__, i<<=j<<=k, 16);
314: iequals(__LINE__, i, 16);
315: iequals(__LINE__, j, 4);
316: j = 2;
317: iequals(__LINE__, i<<=j>>=k, 32);
318: iequals(__LINE__, i, 32);
319: iequals(__LINE__, j, 1);
320: iequals(__LINE__, i<<=j&=k, 64);
321: iequals(__LINE__, i, 64);
322: iequals(__LINE__, j, 1);
323: j = 0;
324: iequals(__LINE__, i<<=j^=k, 128);
325: iequals(__LINE__, i, 128);
326: iequals(__LINE__, j, 1);
327: iequals(__LINE__, i<<=j|=k, 256);
328: iequals(__LINE__, i, 256);
329: iequals(__LINE__, j, 1);
330: iequals(__LINE__, (i<<=j,k), k);
331: iequals(__LINE__, i, 512);
332: }
333:
334: /* X>>=YopZ */
335: static void p1_43()
336: {
337: int i = 9;
338: int j = 3;
339: int k = 1;
340: iequals(__LINE__, i>>=j>>=k, 4);
341: iequals(__LINE__, i, 4);
342: iequals(__LINE__, j, 1);
343: k = 7;
344: iequals(__LINE__, i>>=j&=k, 2);
345: iequals(__LINE__, i, 2);
346: iequals(__LINE__, j, 1);
347: i = 0x100;
348: iequals(__LINE__, i>>=j^=k, 4);
349: iequals(__LINE__, i, 4);
350: iequals(__LINE__, j, 6);
351: j = 0; k = 2;
352: iequals(__LINE__, i>>=j|=k, 1);
353: iequals(__LINE__, i, 1);
354: iequals(__LINE__, j, 2);
355: i = 7;
356: iequals(__LINE__, (i>>=j,k), k);
357: iequals(__LINE__, i, 1);
358: }
359:
360: /* X&=YopZ */
361: static void p1_44()
362: {
363: int i = 7;
364: int j = 2;
365: int k = 3;
366: iequals(__LINE__, i&=j&=k, 2);
367: iequals(__LINE__, i, 2);
368: iequals(__LINE__, j, 2);
369: i = 7;
370: iequals(__LINE__, i&=j^=k, 1);
371: iequals(__LINE__, i, 1);
372: iequals(__LINE__, j, 1);
373: k = 4;
374: iequals(__LINE__, i&=j|=k, 1);
375: iequals(__LINE__, i, 1);
376: iequals(__LINE__, j, 5);
377: i = 7;
378: iequals(__LINE__, (i&=j,k), k);
379: iequals(__LINE__, i, 5);
380: }
381:
382: /* X^=YopZ */
383: static void p1_45()
384: {
385: int i = 2;
386: int j = 2;
387: int k = 3;
388: iequals(__LINE__, i^=j^=k, 3);
389: iequals(__LINE__, i, 3);
390: iequals(__LINE__, j, 1);
391: k = 4;
392: iequals(__LINE__, i^=j|=k, 6);
393: iequals(__LINE__, i, 6);
394: iequals(__LINE__, j, 5);
395: iequals(__LINE__, (i^=j,k), 4);
396: iequals(__LINE__, i, 3);
397: }
398:
399: /* X|=YopZ */
400: static void p1_46()
401: {
402: int i = 1;
403: int j = 2;
404: int k = 4;
405: iequals(__LINE__, i|=j|=k, 7);
406: iequals(__LINE__, i, 7);
407: iequals(__LINE__, j, 6);
408: iequals(__LINE__, (i|=j,k), 4);
409: iequals(__LINE__, i, 7);
410: }
411:
412: /* X,YopZ */
413: static void p1_47()
414: {
415: int i = 1;
416: int j = 2;
417: int k = 3;
418: iequals(__LINE__, (i,j,k), k);
419: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.