|
|
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 the Suite corresponds to the 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: #define ANSI 1 /* This file follows ANSI arithmetic rules, which may not work in non-ANSI modes */
11: #include "types.h"
12: int main()
13: {
14: extern char *Filename;
15: auto CHAR Ac = 7;
16: #if ANSI
17: auto SCHAR Asc = 8;
18: #endif
19: auto SHORT As = 9;
20: auto INT Ai = 10;
21: auto UCHAR Auc = 11;
22: auto USHORT Aus = 12;
23: auto UINT Aui = 13;
24: auto LONG Al = 14;
25: auto ULONG Aul = 15;
26: auto FLOAT Af = 16;
27: auto DOUBLE Ad = 17;
28: #if ANSI
29: auto LDOUBLE Ald = 18;
30: #endif
31: {
32: typedef union {
33: CHAR c;
34: SHORT s;
35: INT i;
36: UCHAR uc;
37: USHORT us;
38: UINT ui;
39: LONG l;
40: ULONG ul;
41: FLOAT f;
42: DOUBLE d;
43: #if ANSI
44: SCHAR sc;
45: LDOUBLE ld;
46: #endif
47: } D;
48: auto D D1;
49: #if ANSI
50: auto D D2;
51: #endif
52: auto D D3;
53: auto D D4;
54: auto D D5;
55: auto D D6;
56: auto D D7;
57: auto D D8;
58: auto D D9;
59: auto D D10;
60: auto D D11;
61: #if ANSI
62: auto D D12;
63: #endif
64: D1.c = 7;
65: #if ANSI
66: D2.sc = 8;
67: #endif
68: D3.s = 9;
69: D4.i = 10;
70: D5.uc = 11;
71: D6.us = 12;
72: D7.ui = 13;
73: D8.l = 14;
74: D9.ul = 15;
75: D10.f = 16;
76: D11.d = 17;
77: #if ANSI
78: D12.ld = 18;
79: #endif
80: {
81: int true = 1, false = 0;
82: Filename = " auto scalar auto union timeq1 ";
83: Ac = 7; D1.c = 7;
84: Ac *= D1.c;
85: iequals(__LINE__, Ac, (CHAR)49);
86: Ac = 7;
87: iequals(__LINE__, Ac *= D1.c, (CHAR)49);
88: D1.c = 7; Ac = 7;
89: D1.c *= Ac;
90: iequals(__LINE__, D1.c, (CHAR)49);
91: D1.c = 7;
92: iequals(__LINE__, D1.c *= Ac, (CHAR)49);
93: #if ANSI
94: Ac = 7; D2.sc = 8;
95: Ac *= D2.sc;
96: iequals(__LINE__, Ac, (CHAR)56);
97: Ac = 7;
98: iequals(__LINE__, Ac *= D2.sc, (CHAR)56);
99: D2.sc = 8; Ac = 7;
100: D2.sc *= Ac;
101: iequals(__LINE__, D2.sc, (SCHAR)56);
102: D2.sc = 8;
103: iequals(__LINE__, D2.sc *= Ac, (SCHAR)56);
104: #endif
105: Ac = 7; D3.s = 9;
106: Ac *= D3.s;
107: iequals(__LINE__, Ac, (CHAR)63);
108: Ac = 7;
109: iequals(__LINE__, Ac *= D3.s, (CHAR)63);
110: D3.s = 9; Ac = 7;
111: D3.s *= Ac;
112: iequals(__LINE__, D3.s, (SHORT)63);
113: D3.s = 9;
114: iequals(__LINE__, D3.s *= Ac, (SHORT)63);
115: Ac = 7; D4.i = 10;
116: Ac *= D4.i;
117: iequals(__LINE__, Ac, (CHAR)70);
118: Ac = 7;
119: iequals(__LINE__, Ac *= D4.i, (CHAR)70);
120: D4.i = 10; Ac = 7;
121: D4.i *= Ac;
122: iequals(__LINE__, D4.i, (INT)70);
123: D4.i = 10;
124: iequals(__LINE__, D4.i *= Ac, (INT)70);
125: Ac = 7; D5.uc = 11;
126: Ac *= D5.uc;
127: iequals(__LINE__, Ac, (CHAR)77);
128: Ac = 7;
129: iequals(__LINE__, Ac *= D5.uc, (CHAR)77);
130: D5.uc = 11; Ac = 7;
131: D5.uc *= Ac;
132: iequals(__LINE__, D5.uc, (UCHAR)77);
133: D5.uc = 11;
134: iequals(__LINE__, D5.uc *= Ac, (UCHAR)77);
135: Ac = 7; D6.us = 12;
136: Ac *= D6.us;
137: iequals(__LINE__, Ac, (CHAR)84);
138: Ac = 7;
139: iequals(__LINE__, Ac *= D6.us, (CHAR)84);
140: D6.us = 12; Ac = 7;
141: D6.us *= Ac;
142: iequals(__LINE__, D6.us, (USHORT)84);
143: D6.us = 12;
144: iequals(__LINE__, D6.us *= Ac, (USHORT)84);
145: Ac = 7; D7.ui = 13;
146: Ac *= D7.ui;
147: iequals(__LINE__, Ac, (CHAR)91);
148: Ac = 7;
149: iequals(__LINE__, Ac *= D7.ui, (CHAR)91);
150: D7.ui = 13; Ac = 7;
151: D7.ui *= Ac;
152: iequals(__LINE__, D7.ui, (UINT)91);
153: D7.ui = 13;
154: iequals(__LINE__, D7.ui *= Ac, (UINT)91);
155: Ac = 7; D8.l = 14;
156: Ac *= D8.l;
157: iequals(__LINE__, Ac, (CHAR)98);
158: Ac = 7;
159: iequals(__LINE__, Ac *= D8.l, (CHAR)98);
160: D8.l = 14; Ac = 7;
161: D8.l *= Ac;
162: lequals(__LINE__, D8.l, (LONG)98L);
163: D8.l = 14;
164: lequals(__LINE__, D8.l *= Ac, (LONG)98L);
165: Ac = 7; D9.ul = 15;
166: Ac *= D9.ul;
167: iequals(__LINE__, Ac, (CHAR)105);
168: Ac = 7;
169: iequals(__LINE__, Ac *= D9.ul, (CHAR)105);
170: D9.ul = 15; Ac = 7;
171: D9.ul *= Ac;
172: lequals(__LINE__, D9.ul, (ULONG)105L);
173: D9.ul = 15;
174: lequals(__LINE__, D9.ul *= Ac, (ULONG)105L);
175: Ac = 7; D10.f = 16;
176: Ac *= D10.f;
177: iequals(__LINE__, Ac, (CHAR)112);
178: Ac = 7;
179: iequals(__LINE__, Ac *= D10.f, (CHAR)112);
180: D10.f = 16; Ac = 7;
181: D10.f *= Ac;
182: dequals(__LINE__, D10.f, (FLOAT)112.);
183: D10.f = 16;
184: dequals(__LINE__, D10.f *= Ac, (FLOAT)112.);
185: Ac = 7; D11.d = 17;
186: Ac *= D11.d;
187: iequals(__LINE__, Ac, (CHAR)119);
188: Ac = 7;
189: iequals(__LINE__, Ac *= D11.d, (CHAR)119);
190: D11.d = 17; Ac = 7;
191: D11.d *= Ac;
192: dequals(__LINE__, D11.d, (DOUBLE)119.);
193: D11.d = 17;
194: dequals(__LINE__, D11.d *= Ac, (DOUBLE)119.);
195: #if ANSI
196: Ac = 7; D12.ld = 18;
197: Ac *= D12.ld;
198: iequals(__LINE__, Ac, (CHAR)126);
199: Ac = 7;
200: iequals(__LINE__, Ac *= D12.ld, (CHAR)126);
201: D12.ld = 18; Ac = 7;
202: D12.ld *= Ac;
203: ldequals(__LINE__, D12.ld, (LDOUBLE)126.L);
204: D12.ld = 18;
205: ldequals(__LINE__, D12.ld *= Ac, (LDOUBLE)126.L);
206: #endif
207: #if ANSI
208: Asc = 8; D1.c = 7;
209: Asc *= D1.c;
210: iequals(__LINE__, Asc, (SCHAR)56);
211: Asc = 8;
212: iequals(__LINE__, Asc *= D1.c, (SCHAR)56);
213: D1.c = 7; Asc = 8;
214: D1.c *= Asc;
215: iequals(__LINE__, D1.c, (CHAR)56);
216: D1.c = 7;
217: iequals(__LINE__, D1.c *= Asc, (CHAR)56);
218: #endif
219: #if ANSI
220: Asc = 8; D2.sc = 8;
221: Asc *= D2.sc;
222: iequals(__LINE__, Asc, (SCHAR)64);
223: Asc = 8;
224: iequals(__LINE__, Asc *= D2.sc, (SCHAR)64);
225: D2.sc = 8; Asc = 8;
226: D2.sc *= Asc;
227: iequals(__LINE__, D2.sc, (SCHAR)64);
228: D2.sc = 8;
229: iequals(__LINE__, D2.sc *= Asc, (SCHAR)64);
230: #endif
231: #if ANSI
232: Asc = 8; D3.s = 9;
233: Asc *= D3.s;
234: iequals(__LINE__, Asc, (SCHAR)72);
235: Asc = 8;
236: iequals(__LINE__, Asc *= D3.s, (SCHAR)72);
237: D3.s = 9; Asc = 8;
238: D3.s *= Asc;
239: iequals(__LINE__, D3.s, (SHORT)72);
240: D3.s = 9;
241: iequals(__LINE__, D3.s *= Asc, (SHORT)72);
242: #endif
243: #if ANSI
244: Asc = 8; D4.i = 10;
245: Asc *= D4.i;
246: iequals(__LINE__, Asc, (SCHAR)80);
247: Asc = 8;
248: iequals(__LINE__, Asc *= D4.i, (SCHAR)80);
249: D4.i = 10; Asc = 8;
250: D4.i *= Asc;
251: iequals(__LINE__, D4.i, (INT)80);
252: D4.i = 10;
253: iequals(__LINE__, D4.i *= Asc, (INT)80);
254: #endif
255: #if ANSI
256: Asc = 8; D5.uc = 11;
257: Asc *= D5.uc;
258: iequals(__LINE__, Asc, (SCHAR)88);
259: Asc = 8;
260: iequals(__LINE__, Asc *= D5.uc, (SCHAR)88);
261: D5.uc = 11; Asc = 8;
262: D5.uc *= Asc;
263: iequals(__LINE__, D5.uc, (UCHAR)88);
264: D5.uc = 11;
265: iequals(__LINE__, D5.uc *= Asc, (UCHAR)88);
266: #endif
267: #if ANSI
268: Asc = 8; D6.us = 12;
269: Asc *= D6.us;
270: iequals(__LINE__, Asc, (SCHAR)96);
271: Asc = 8;
272: iequals(__LINE__, Asc *= D6.us, (SCHAR)96);
273: D6.us = 12; Asc = 8;
274: D6.us *= Asc;
275: iequals(__LINE__, D6.us, (USHORT)96);
276: D6.us = 12;
277: iequals(__LINE__, D6.us *= Asc, (USHORT)96);
278: #endif
279: #if ANSI
280: Asc = 8; D7.ui = 13;
281: Asc *= D7.ui;
282: iequals(__LINE__, Asc, (SCHAR)104);
283: Asc = 8;
284: iequals(__LINE__, Asc *= D7.ui, (SCHAR)104);
285: D7.ui = 13; Asc = 8;
286: D7.ui *= Asc;
287: iequals(__LINE__, D7.ui, (UINT)104);
288: D7.ui = 13;
289: iequals(__LINE__, D7.ui *= Asc, (UINT)104);
290: #endif
291: #if ANSI
292: Asc = 8; D8.l = 14;
293: Asc *= D8.l;
294: iequals(__LINE__, Asc, (SCHAR)112);
295: Asc = 8;
296: iequals(__LINE__, Asc *= D8.l, (SCHAR)112);
297: D8.l = 14; Asc = 8;
298: D8.l *= Asc;
299: lequals(__LINE__, D8.l, (LONG)112L);
300: D8.l = 14;
301: lequals(__LINE__, D8.l *= Asc, (LONG)112L);
302: #endif
303: #if ANSI
304: Asc = 8; D9.ul = 15;
305: Asc *= D9.ul;
306: iequals(__LINE__, Asc, (SCHAR)120);
307: Asc = 8;
308: iequals(__LINE__, Asc *= D9.ul, (SCHAR)120);
309: D9.ul = 15; Asc = 8;
310: D9.ul *= Asc;
311: lequals(__LINE__, D9.ul, (ULONG)120L);
312: D9.ul = 15;
313: lequals(__LINE__, D9.ul *= Asc, (ULONG)120L);
314: #endif
315: #if ANSI
316: Asc = 8; D10.f = 15;
317: Asc *= D10.f;
318: iequals(__LINE__, Asc, (SCHAR)120);
319: Asc = 8;
320: iequals(__LINE__, Asc *= D10.f, (SCHAR)120);
321: D10.f = 15; Asc = 8;
322: D10.f *= Asc;
323: dequals(__LINE__, D10.f, (FLOAT)120.);
324: D10.f = 15;
325: dequals(__LINE__, D10.f *= Asc, (FLOAT)120.);
326: #endif
327: #if ANSI
328: Asc = 8; D11.d = 15;
329: Asc *= D11.d;
330: iequals(__LINE__, Asc, (SCHAR)120);
331: Asc = 8;
332: iequals(__LINE__, Asc *= D11.d, (SCHAR)120);
333: D11.d = 15; Asc = 8;
334: D11.d *= Asc;
335: dequals(__LINE__, D11.d, (DOUBLE)120.);
336: D11.d = 15;
337: dequals(__LINE__, D11.d *= Asc, (DOUBLE)120.);
338: #endif
339: #if ANSI
340: Asc = 8; D12.ld = 15;
341: Asc *= D12.ld;
342: iequals(__LINE__, Asc, (SCHAR)120);
343: Asc = 8;
344: iequals(__LINE__, Asc *= D12.ld, (SCHAR)120);
345: D12.ld = 15; Asc = 8;
346: D12.ld *= Asc;
347: ldequals(__LINE__, D12.ld, (LDOUBLE)120.L);
348: D12.ld = 15;
349: ldequals(__LINE__, D12.ld *= Asc, (LDOUBLE)120.L);
350: #endif
351: As = 9; D1.c = 7;
352: As *= D1.c;
353: iequals(__LINE__, As, (SHORT)63);
354: As = 9;
355: iequals(__LINE__, As *= D1.c, (SHORT)63);
356: D1.c = 7; As = 9;
357: D1.c *= As;
358: iequals(__LINE__, D1.c, (CHAR)63);
359: D1.c = 7;
360: iequals(__LINE__, D1.c *= As, (CHAR)63);
361: #if ANSI
362: As = 9; D2.sc = 8;
363: As *= D2.sc;
364: iequals(__LINE__, As, (SHORT)72);
365: As = 9;
366: iequals(__LINE__, As *= D2.sc, (SHORT)72);
367: D2.sc = 8; As = 9;
368: D2.sc *= As;
369: iequals(__LINE__, D2.sc, (SCHAR)72);
370: D2.sc = 8;
371: iequals(__LINE__, D2.sc *= As, (SCHAR)72);
372: #endif
373: As = 9; D3.s = 9;
374: As *= D3.s;
375: iequals(__LINE__, As, (SHORT)81);
376: As = 9;
377: iequals(__LINE__, As *= D3.s, (SHORT)81);
378: D3.s = 9; As = 9;
379: D3.s *= As;
380: iequals(__LINE__, D3.s, (SHORT)81);
381: D3.s = 9;
382: iequals(__LINE__, D3.s *= As, (SHORT)81);
383: As = 9; D4.i = 10;
384: As *= D4.i;
385: iequals(__LINE__, As, (SHORT)90);
386: As = 9;
387: iequals(__LINE__, As *= D4.i, (SHORT)90);
388: D4.i = 10; As = 9;
389: D4.i *= As;
390: iequals(__LINE__, D4.i, (INT)90);
391: D4.i = 10;
392: iequals(__LINE__, D4.i *= As, (INT)90);
393: As = 9; D5.uc = 11;
394: As *= D5.uc;
395: iequals(__LINE__, As, (SHORT)99);
396: As = 9;
397: iequals(__LINE__, As *= D5.uc, (SHORT)99);
398: D5.uc = 11; As = 9;
399: D5.uc *= As;
400: iequals(__LINE__, D5.uc, (UCHAR)99);
401: D5.uc = 11;
402: iequals(__LINE__, D5.uc *= As, (UCHAR)99);
403: As = 9; D6.us = 12;
404: As *= D6.us;
405: iequals(__LINE__, As, (SHORT)108);
406: As = 9;
407: iequals(__LINE__, As *= D6.us, (SHORT)108);
408: D6.us = 12; As = 9;
409: D6.us *= As;
410: iequals(__LINE__, D6.us, (USHORT)108);
411: D6.us = 12;
412: iequals(__LINE__, D6.us *= As, (USHORT)108);
413: }}
414: return report(Filename);
415: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.