|
|
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: #include "o.h"
13: int main()
14: {
15: extern char *Filename;
16: auto CHAR Ac = 7;
17: #if ANSI
18: auto SCHAR Asc = 8;
19: #endif
20: auto SHORT As = 9;
21: auto INT Ai = 10;
22: auto UCHAR Auc = 11;
23: auto USHORT Aus = 12;
24: auto UINT Aui = 13;
25: auto LONG Al = 14;
26: auto ULONG Aul = 15;
27: auto FLOAT Af = 16;
28: auto DOUBLE Ad = 17;
29: #if ANSI
30: auto LDOUBLE Ald = 18;
31: #endif
32: {
33: {
34: int true = 1, false = 0;
35: Filename = " auto scalar auto funcrs xor ";
36: iequals(__LINE__, Ac ^ Oc().c, 0);
37: iequals(__LINE__, Oc().c ^ Ac, 0);
38: #if ANSI
39: iequals(__LINE__, Ac ^ Osc().sc, 15);
40: iequals(__LINE__, Osc().sc ^ Ac, 15);
41: #endif
42: iequals(__LINE__, Ac ^ Os().s, 14);
43: iequals(__LINE__, Os().s ^ Ac, 14);
44: iequals(__LINE__, Ac ^ Oi().i, 13);
45: iequals(__LINE__, Oi().i ^ Ac, 13);
46: iequals(__LINE__, Ac ^ Ouc().uc, 12);
47: iequals(__LINE__, Ouc().uc ^ Ac, 12);
48: iequals(__LINE__, Ac ^ Ous().us, 11);
49: iequals(__LINE__, Ous().us ^ Ac, 11);
50: iequals(__LINE__, Ac ^ Oui().ui, 10);
51: iequals(__LINE__, Oui().ui ^ Ac, 10);
52: lequals(__LINE__, Ac ^ Ol().l, 9L);
53: lequals(__LINE__, Ol().l ^ Ac, 9L);
54: lequals(__LINE__, Ac ^ Oul().ul, 8L);
55: lequals(__LINE__, Oul().ul ^ Ac, 8L);
56: #if ANSI
57: iequals(__LINE__, Asc ^ Oc().c, 15);
58: iequals(__LINE__, Oc().c ^ Asc, 15);
59: #endif
60: #if ANSI
61: iequals(__LINE__, Asc ^ Osc().sc, 0);
62: iequals(__LINE__, Osc().sc ^ Asc, 0);
63: #endif
64: #if ANSI
65: iequals(__LINE__, Asc ^ Os().s, 1);
66: iequals(__LINE__, Os().s ^ Asc, 1);
67: #endif
68: #if ANSI
69: iequals(__LINE__, Asc ^ Oi().i, 2);
70: iequals(__LINE__, Oi().i ^ Asc, 2);
71: #endif
72: #if ANSI
73: iequals(__LINE__, Asc ^ Ouc().uc, 3);
74: iequals(__LINE__, Ouc().uc ^ Asc, 3);
75: #endif
76: #if ANSI
77: iequals(__LINE__, Asc ^ Ous().us, 4);
78: iequals(__LINE__, Ous().us ^ Asc, 4);
79: #endif
80: #if ANSI
81: iequals(__LINE__, Asc ^ Oui().ui, 5);
82: iequals(__LINE__, Oui().ui ^ Asc, 5);
83: #endif
84: #if ANSI
85: lequals(__LINE__, Asc ^ Ol().l, 6L);
86: lequals(__LINE__, Ol().l ^ Asc, 6L);
87: #endif
88: #if ANSI
89: lequals(__LINE__, Asc ^ Oul().ul, 7L);
90: lequals(__LINE__, Oul().ul ^ Asc, 7L);
91: #endif
92: iequals(__LINE__, As ^ Oc().c, 14);
93: iequals(__LINE__, Oc().c ^ As, 14);
94: #if ANSI
95: iequals(__LINE__, As ^ Osc().sc, 1);
96: iequals(__LINE__, Osc().sc ^ As, 1);
97: #endif
98: iequals(__LINE__, As ^ Os().s, 0);
99: iequals(__LINE__, Os().s ^ As, 0);
100: iequals(__LINE__, As ^ Oi().i, 3);
101: iequals(__LINE__, Oi().i ^ As, 3);
102: iequals(__LINE__, As ^ Ouc().uc, 2);
103: iequals(__LINE__, Ouc().uc ^ As, 2);
104: iequals(__LINE__, As ^ Ous().us, 5);
105: iequals(__LINE__, Ous().us ^ As, 5);
106: iequals(__LINE__, As ^ Oui().ui, 4);
107: iequals(__LINE__, Oui().ui ^ As, 4);
108: lequals(__LINE__, As ^ Ol().l, 7L);
109: lequals(__LINE__, Ol().l ^ As, 7L);
110: lequals(__LINE__, As ^ Oul().ul, 6L);
111: lequals(__LINE__, Oul().ul ^ As, 6L);
112: iequals(__LINE__, Ai ^ Oc().c, 13);
113: iequals(__LINE__, Oc().c ^ Ai, 13);
114: #if ANSI
115: iequals(__LINE__, Ai ^ Osc().sc, 2);
116: iequals(__LINE__, Osc().sc ^ Ai, 2);
117: #endif
118: iequals(__LINE__, Ai ^ Os().s, 3);
119: iequals(__LINE__, Os().s ^ Ai, 3);
120: iequals(__LINE__, Ai ^ Oi().i, 0);
121: iequals(__LINE__, Oi().i ^ Ai, 0);
122: iequals(__LINE__, Ai ^ Ouc().uc, 1);
123: iequals(__LINE__, Ouc().uc ^ Ai, 1);
124: iequals(__LINE__, Ai ^ Ous().us, 6);
125: iequals(__LINE__, Ous().us ^ Ai, 6);
126: iequals(__LINE__, Ai ^ Oui().ui, 7);
127: iequals(__LINE__, Oui().ui ^ Ai, 7);
128: lequals(__LINE__, Ai ^ Ol().l, 4L);
129: lequals(__LINE__, Ol().l ^ Ai, 4L);
130: lequals(__LINE__, Ai ^ Oul().ul, 5L);
131: lequals(__LINE__, Oul().ul ^ Ai, 5L);
132: iequals(__LINE__, Auc ^ Oc().c, 12);
133: iequals(__LINE__, Oc().c ^ Auc, 12);
134: #if ANSI
135: iequals(__LINE__, Auc ^ Osc().sc, 3);
136: iequals(__LINE__, Osc().sc ^ Auc, 3);
137: #endif
138: iequals(__LINE__, Auc ^ Os().s, 2);
139: iequals(__LINE__, Os().s ^ Auc, 2);
140: iequals(__LINE__, Auc ^ Oi().i, 1);
141: iequals(__LINE__, Oi().i ^ Auc, 1);
142: iequals(__LINE__, Auc ^ Ouc().uc, 0);
143: iequals(__LINE__, Ouc().uc ^ Auc, 0);
144: iequals(__LINE__, Auc ^ Ous().us, 7);
145: iequals(__LINE__, Ous().us ^ Auc, 7);
146: iequals(__LINE__, Auc ^ Oui().ui, 6);
147: iequals(__LINE__, Oui().ui ^ Auc, 6);
148: lequals(__LINE__, Auc ^ Ol().l, 5L);
149: lequals(__LINE__, Ol().l ^ Auc, 5L);
150: lequals(__LINE__, Auc ^ Oul().ul, 4L);
151: lequals(__LINE__, Oul().ul ^ Auc, 4L);
152: iequals(__LINE__, Aus ^ Oc().c, 11);
153: iequals(__LINE__, Oc().c ^ Aus, 11);
154: #if ANSI
155: iequals(__LINE__, Aus ^ Osc().sc, 4);
156: iequals(__LINE__, Osc().sc ^ Aus, 4);
157: #endif
158: iequals(__LINE__, Aus ^ Os().s, 5);
159: iequals(__LINE__, Os().s ^ Aus, 5);
160: iequals(__LINE__, Aus ^ Oi().i, 6);
161: iequals(__LINE__, Oi().i ^ Aus, 6);
162: iequals(__LINE__, Aus ^ Ouc().uc, 7);
163: iequals(__LINE__, Ouc().uc ^ Aus, 7);
164: iequals(__LINE__, Aus ^ Ous().us, 0);
165: iequals(__LINE__, Ous().us ^ Aus, 0);
166: iequals(__LINE__, Aus ^ Oui().ui, 1);
167: iequals(__LINE__, Oui().ui ^ Aus, 1);
168: lequals(__LINE__, Aus ^ Ol().l, 2L);
169: lequals(__LINE__, Ol().l ^ Aus, 2L);
170: lequals(__LINE__, Aus ^ Oul().ul, 3L);
171: lequals(__LINE__, Oul().ul ^ Aus, 3L);
172: iequals(__LINE__, Aui ^ Oc().c, 10);
173: iequals(__LINE__, Oc().c ^ Aui, 10);
174: #if ANSI
175: iequals(__LINE__, Aui ^ Osc().sc, 5);
176: iequals(__LINE__, Osc().sc ^ Aui, 5);
177: #endif
178: iequals(__LINE__, Aui ^ Os().s, 4);
179: iequals(__LINE__, Os().s ^ Aui, 4);
180: iequals(__LINE__, Aui ^ Oi().i, 7);
181: iequals(__LINE__, Oi().i ^ Aui, 7);
182: iequals(__LINE__, Aui ^ Ouc().uc, 6);
183: iequals(__LINE__, Ouc().uc ^ Aui, 6);
184: iequals(__LINE__, Aui ^ Ous().us, 1);
185: iequals(__LINE__, Ous().us ^ Aui, 1);
186: iequals(__LINE__, Aui ^ Oui().ui, 0);
187: iequals(__LINE__, Oui().ui ^ Aui, 0);
188: lequals(__LINE__, Aui ^ Ol().l, 3L);
189: lequals(__LINE__, Ol().l ^ Aui, 3L);
190: lequals(__LINE__, Aui ^ Oul().ul, 2L);
191: lequals(__LINE__, Oul().ul ^ Aui, 2L);
192: lequals(__LINE__, Al ^ Oc().c, 9L);
193: lequals(__LINE__, Oc().c ^ Al, 9L);
194: #if ANSI
195: lequals(__LINE__, Al ^ Osc().sc, 6L);
196: lequals(__LINE__, Osc().sc ^ Al, 6L);
197: #endif
198: lequals(__LINE__, Al ^ Os().s, 7L);
199: lequals(__LINE__, Os().s ^ Al, 7L);
200: lequals(__LINE__, Al ^ Oi().i, 4L);
201: lequals(__LINE__, Oi().i ^ Al, 4L);
202: lequals(__LINE__, Al ^ Ouc().uc, 5L);
203: lequals(__LINE__, Ouc().uc ^ Al, 5L);
204: lequals(__LINE__, Al ^ Ous().us, 2L);
205: lequals(__LINE__, Ous().us ^ Al, 2L);
206: lequals(__LINE__, Al ^ Oui().ui, 3L);
207: lequals(__LINE__, Oui().ui ^ Al, 3L);
208: lequals(__LINE__, Al ^ Ol().l, 0L);
209: lequals(__LINE__, Ol().l ^ Al, 0L);
210: lequals(__LINE__, Al ^ Oul().ul, 1L);
211: lequals(__LINE__, Oul().ul ^ Al, 1L);
212: lequals(__LINE__, Aul ^ Oc().c, 8L);
213: lequals(__LINE__, Oc().c ^ Aul, 8L);
214: #if ANSI
215: lequals(__LINE__, Aul ^ Osc().sc, 7L);
216: lequals(__LINE__, Osc().sc ^ Aul, 7L);
217: #endif
218: lequals(__LINE__, Aul ^ Os().s, 6L);
219: lequals(__LINE__, Os().s ^ Aul, 6L);
220: lequals(__LINE__, Aul ^ Oi().i, 5L);
221: lequals(__LINE__, Oi().i ^ Aul, 5L);
222: lequals(__LINE__, Aul ^ Ouc().uc, 4L);
223: lequals(__LINE__, Ouc().uc ^ Aul, 4L);
224: lequals(__LINE__, Aul ^ Ous().us, 3L);
225: lequals(__LINE__, Ous().us ^ Aul, 3L);
226: lequals(__LINE__, Aul ^ Oui().ui, 2L);
227: lequals(__LINE__, Oui().ui ^ Aul, 2L);
228: lequals(__LINE__, Aul ^ Ol().l, 1L);
229: lequals(__LINE__, Ol().l ^ Aul, 1L);
230: lequals(__LINE__, Aul ^ Oul().ul, 0L);
231: lequals(__LINE__, Oul().ul ^ Aul, 0L);
232: }}
233: return report(Filename);
234: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.