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