2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / ada / acats / tests / c4 / c45503a.ada
blob0461b0151af5d07aa4f9f62d365da1416307a1ea
1 -- C45503A.ADA
3 -- Grant of Unlimited Rights
4 --
5 -- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
6 -- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
7 -- unlimited rights in the software and documentation contained herein.
8 -- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
9 -- this public release, the Government intends to confer upon all
10 -- recipients unlimited rights equal to those held by the Government.
11 -- These rights include rights to use, duplicate, release or disclose the
12 -- released technical data and computer software in whole or in part, in
13 -- any manner and for any purpose whatsoever, and to have or permit others
14 -- to do so.
16 -- DISCLAIMER
18 -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
19 -- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
20 -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
21 -- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
22 -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
23 -- PARTICULAR PURPOSE OF SAID MATERIAL.
24 --*
25 -- CHECK THAT 'REM' AND 'MOD' YIELD CORRECT RESULTS WHEN THE OPERANDS
26 -- ARE OF PREDEFINED TYPE INTEGER.
28 -- R.WILLIAMS 9/1/86
30 WITH REPORT; USE REPORT;
31 PROCEDURE C45503A IS
33 BEGIN
34 TEST ( "C45503A", "CHECK THAT 'REM' AND 'MOD' YIELD CORRECT " &
35 "RESULTS WHEN THE OPERANDS ARE OF PREDEFINED " &
36 "TYPE INTEGER" );
38 DECLARE
39 I0 : INTEGER := 0;
40 I1 : INTEGER := 1;
41 I2 : INTEGER := 2;
42 I3 : INTEGER := 3;
43 I4 : INTEGER := 4;
44 I5 : INTEGER := 5;
45 I10 : INTEGER := 10;
46 I11 : INTEGER := 11;
47 I12 : INTEGER := 12;
48 I13 : INTEGER := 13;
49 I14 : INTEGER := 14;
50 N1 : INTEGER := -1;
51 N2 : INTEGER := -2;
52 N3 : INTEGER := -3;
53 N4 : INTEGER := -4;
54 N5 : INTEGER := -5;
55 N10 : INTEGER := -10;
56 N11 : INTEGER := -11;
57 N12 : INTEGER := -12;
58 N13 : INTEGER := -13;
59 N14 : INTEGER := -14;
61 BEGIN
62 IF I10 REM I5 /= I0 THEN
63 FAILED ( "INCORRECT RESULT FOR I10 REM I5" );
64 END IF;
66 IF IDENT_INT (I11) REM IDENT_INT (I5) /= I1 THEN
67 FAILED ( "INCORRECT RESULT FOR IDENT_INT (I11) REM " &
68 "IDENT_INT (I5)" );
69 END IF;
71 IF I12 REM I5 /= I2 THEN
72 FAILED ( "INCORRECT RESULT FOR I12 REM I5" );
73 END IF;
75 IF "REM" (LEFT => I12, RIGHT => I5) /= I2 THEN
76 FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => I12, " &
77 "RIGHT => I5)" );
78 END IF;
80 IF IDENT_INT (I13) REM IDENT_INT (I5) /= I3 THEN
81 FAILED ( "INCORRECT RESULT FOR IDENT_INT (I13) REM " &
82 "IDENT_INT (I5)" );
83 END IF;
85 IF I14 REM I5 /= I4 THEN
86 FAILED ( "INCORRECT RESULT FOR I14 REM I5" );
87 END IF;
89 IF IDENT_INT (I10) REM IDENT_INT (N5) /= I0 THEN
90 FAILED ( "INCORRECT RESULT FOR IDENT_INT (I10) REM " &
91 "IDENT_INT (N5)" );
92 END IF;
94 IF "REM" (LEFT => IDENT_INT (I10), RIGHT => IDENT_INT (N5))
95 /= I0 THEN
96 FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => " &
97 "IDENT_INT (I10), RIGHT => IDENT_INT (N5))" );
98 END IF;
100 IF I11 REM N5 /= I1 THEN
101 FAILED ( "INCORRECT RESULT FOR I11 REM N5" );
102 END IF;
104 IF IDENT_INT (I12) REM IDENT_INT (N5) /= I2 THEN
105 FAILED ( "INCORRECT RESULT FOR IDENT_INT (I12) REM " &
106 "IDENT_INT (N5)" );
107 END IF;
109 IF I13 REM N5 /= I3 THEN
110 FAILED ( "INCORRECT RESULT FOR I13 REM N5" );
111 END IF;
113 IF "REM" (LEFT => I13, RIGHT => N5) /= I3 THEN
114 FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => I13, " &
115 "RIGHT => N5)" );
116 END IF;
118 IF IDENT_INT (I14) REM IDENT_INT (N5) /= I4 THEN
119 FAILED ( "INCORRECT RESULT FOR IDENT_INT (I14) REM " &
120 "IDENT_INT (N5)" );
121 END IF;
123 IF N10 REM I5 /= I0 THEN
124 FAILED ( "INCORRECT RESULT FOR N10 REM I5" );
125 END IF;
127 IF IDENT_INT (N11) REM IDENT_INT (I5) /= N1 THEN
128 FAILED ( "INCORRECT RESULT FOR IDENT_INT (N11) REM " &
129 "IDENT_INT (I5)" );
130 END IF;
132 IF "REM" (LEFT => IDENT_INT (N11), RIGHT => IDENT_INT (I5))
133 /= N1 THEN
134 FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => " &
135 "IDENT_INT (N11), RIGHT => IDENT_INT (I5))" );
136 END IF;
138 IF N12 REM I5 /= N2 THEN
139 FAILED ( "INCORRECT RESULT FOR N12 REM I5" );
140 END IF;
142 IF IDENT_INT (N13) REM IDENT_INT (I5) /= N3 THEN
143 FAILED ( "INCORRECT RESULT FOR IDENT_INT (N13) REM " &
144 "IDENT_INT (I5)" );
145 END IF;
147 IF N14 REM I5 /= N4 THEN
148 FAILED ( "INCORRECT RESULT FOR N14 REM I5" );
149 END IF;
151 IF "REM" (LEFT => N14, RIGHT => I5) /= N4 THEN
152 FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => N14, " &
153 "RIGHT => I5)" );
154 END IF;
156 IF IDENT_INT (N10) REM IDENT_INT (N5) /= I0 THEN
157 FAILED ( "INCORRECT RESULT FOR IDENT_INT (N10) REM " &
158 "IDENT_INT (N5)" );
159 END IF;
161 IF N11 REM N5 /= N1 THEN
162 FAILED ( "INCORRECT RESULT FOR N11 REM N5" );
163 END IF;
165 IF IDENT_INT (N12) REM IDENT_INT (N5) /= N2 THEN
166 FAILED ( "INCORRECT RESULT FOR IDENT_INT (N12) REM " &
167 "IDENT_INT (N5)" );
168 END IF;
170 IF "REM" (LEFT => IDENT_INT (N12), RIGHT => IDENT_INT (N5))
171 /= N2 THEN
172 FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => " &
173 "IDENT_INT (N12), RIGHT => IDENT_INT (N5))" );
174 END IF;
176 IF N13 REM N5 /= N3 THEN
177 FAILED ( "INCORRECT RESULT FOR N13 REM N5" );
178 END IF;
180 IF IDENT_INT (N14) REM IDENT_INT (N5) /= N4 THEN
181 FAILED ( "INCORRECT RESULT FOR IDENT_INT (N14) REM " &
182 "IDENT_INT (N5)" );
183 END IF;
185 IF I10 MOD I5 /= I0 THEN
186 FAILED ( "INCORRECT RESULT FOR I10 MOD I5" );
187 END IF;
189 IF IDENT_INT (I11) MOD IDENT_INT (I5) /= I1 THEN
190 FAILED ( "INCORRECT RESULT FOR IDENT_INT (I11) MOD " &
191 "IDENT_INT (I5)" );
192 END IF;
194 IF I12 MOD I5 /= I2 THEN
195 FAILED ( "INCORRECT RESULT FOR I12 MOD I5" );
196 END IF;
198 IF "MOD" (LEFT => I12, RIGHT => I5) /= I2 THEN
199 FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => I12, " &
200 "RIGHT => I5)" );
201 END IF;
203 IF IDENT_INT (I13) MOD IDENT_INT (I5) /= I3 THEN
204 FAILED ( "INCORRECT RESULT FOR IDENT_INT (I13) MOD " &
205 "IDENT_INT (I5)" );
206 END IF;
208 IF I14 MOD I5 /= I4 THEN
209 FAILED ( "INCORRECT RESULT FOR I14 MOD I5" );
210 END IF;
212 IF IDENT_INT (I10) MOD IDENT_INT (N5) /= I0 THEN
213 FAILED ( "INCORRECT RESULT FOR IDENT_INT (I10) MOD " &
214 "IDENT_INT (N5)" );
215 END IF;
217 IF "MOD" (LEFT => IDENT_INT (I10), RIGHT => IDENT_INT (N5))
218 /= I0 THEN
219 FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => " &
220 "IDENT_INT (I10), RIGHT => IDENT_INT (N5))" );
221 END IF;
223 IF I11 MOD N5 /= N4 THEN
224 FAILED ( "INCORRECT RESULT FOR I11 MOD N5" );
225 END IF;
227 IF IDENT_INT (I12) MOD IDENT_INT (N5) /= N3 THEN
228 FAILED ( "INCORRECT RESULT FOR IDENT_INT (I12) MOD " &
229 "IDENT_INT (N5)" );
230 END IF;
232 IF I13 MOD N5 /= N2 THEN
233 FAILED ( "INCORRECT RESULT FOR I13 MOD N5" );
234 END IF;
236 IF "MOD" (LEFT => I13, RIGHT => N5) /= N2 THEN
237 FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => I13, " &
238 "RIGHT => N5)" );
239 END IF;
241 IF IDENT_INT (I14) MOD IDENT_INT (N5) /= N1 THEN
242 FAILED ( "INCORRECT RESULT FOR IDENT_INT (I14) MOD " &
243 "IDENT_INT (N5)" );
244 END IF;
246 IF N10 MOD I5 /= I0 THEN
247 FAILED ( "INCORRECT RESULT FOR N10 MOD I5" );
248 END IF;
250 IF IDENT_INT (N11) MOD IDENT_INT (I5) /= I4 THEN
251 FAILED ( "INCORRECT RESULT FOR IDENT_INT (N11) MOD " &
252 "IDENT_INT (I5)" );
253 END IF;
255 IF "MOD" (LEFT => IDENT_INT (N11), RIGHT => IDENT_INT (I5))
256 /= I4 THEN
257 FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => " &
258 "IDENT_INT (N11), RIGHT => IDENT_INT (I5))" );
259 END IF;
261 IF N12 MOD I5 /= I3 THEN
262 FAILED ( "INCORRECT RESULT FOR N12 MOD I5" );
263 END IF;
265 IF IDENT_INT (N13) MOD IDENT_INT (I5) /= I2 THEN
266 FAILED ( "INCORRECT RESULT FOR IDENT_INT (N13) MOD " &
267 "IDENT_INT (I5)" );
268 END IF;
270 IF N14 MOD I5 /= I1 THEN
271 FAILED ( "INCORRECT RESULT FOR N14 MOD I5" );
272 END IF;
274 IF "MOD" (LEFT => N14, RIGHT => I5) /= I1 THEN
275 FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => I14, " &
276 "RIGHT => I5)" );
277 END IF;
279 IF IDENT_INT (N10) MOD IDENT_INT (N5) /= I0 THEN
280 FAILED ( "INCORRECT RESULT FOR IDENT_INT (N10) MOD " &
281 "IDENT_INT (N5)" );
282 END IF;
284 IF N11 MOD N5 /= N1 THEN
285 FAILED ( "INCORRECT RESULT FOR N11 MOD N5" );
286 END IF;
288 IF IDENT_INT (N12) MOD IDENT_INT (N5) /= N2 THEN
289 FAILED ( "INCORRECT RESULT FOR IDENT_INT (N12) MOD " &
290 "IDENT_INT (N5)" );
291 END IF;
293 IF "MOD" (LEFT => IDENT_INT (N12), RIGHT => IDENT_INT (N5))
294 /= N2 THEN
295 FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => " &
296 "IDENT_INT (N12), RIGHT => IDENT_INT (N5))" );
297 END IF;
299 IF N13 MOD N5 /= N3 THEN
300 FAILED ( "INCORRECT RESULT FOR N13 MOD N5" );
301 END IF;
303 IF IDENT_INT (N14) MOD IDENT_INT (N5) /= N4 THEN
304 FAILED ( "INCORRECT RESULT FOR IDENT_INT (N14) MOD " &
305 "IDENT_INT (N5)" );
306 END IF;
307 END;
309 RESULT;
310 END C45503A;