2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / ada / acats / tests / c4 / c45503c.dep
blob9a66c3529c3ab2ff1a760d70bc40c4880f71cd41
1 -- C45503C.DEP
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 -- OBJECTIVE:
26 --     CHECK THAT 'REM' AND 'MOD' YIELD CORRECT RESULTS WHEN THE
27 --     OPERANDS ARE OF PREDEFINED TYPE LONG_INTEGER.
29 -- APPLICABILITY CRITERIA:
30 --     THIS TEST IS APPLICABLE TO THOSE IMPLEMENTATIONS WHICH SUPPORT
31 --     LONG_INTEGER.
33 --     IF "LONG_INTEGER" IS NOT SUPPORTED, THEN THE DECLARATION OF
34 --     "CHECK_LONG" MUST BE REJECTED.
36 -- HISTORY:
37 --     RJW 09/01/86 CREATED ORIGINAL TEST.
38 --     DHH 01/13/88 ADDED APPLICABILITY CRITERIA AND STANDARD HEADER.
40 WITH REPORT; USE REPORT;
41 PROCEDURE C45503C IS
43      CHECK_LONG : LONG_INTEGER;                      -- N/A => ERROR.
45      FUNCTION IDENT (L : LONG_INTEGER) RETURN LONG_INTEGER IS
46      BEGIN
47           IF EQUAL (3, 3) THEN
48                RETURN L;
49           ELSE
50                RETURN 0;
51           END IF;
52      END IDENT;
54 BEGIN
55      TEST ( "C45503C", "CHECK THAT 'REM' AND 'MOD' YIELD CORRECT " &
56                        "RESULTS WHEN THE OPERANDS ARE OF PREDEFINED " &
57                        "TYPE LONG_INTEGER" );
59      DECLARE
60           I0  : LONG_INTEGER := 0;
61           I1  : LONG_INTEGER := 1;
62           I2  : LONG_INTEGER := 2;
63           I3  : LONG_INTEGER := 3;
64           I4  : LONG_INTEGER := 4;
65           I5  : LONG_INTEGER := 5;
66           I10 : LONG_INTEGER := 10;
67           I11 : LONG_INTEGER := 11;
68           I12 : LONG_INTEGER := 12;
69           I13 : LONG_INTEGER := 13;
70           I14 : LONG_INTEGER := 14;
71           N1  : LONG_INTEGER := -1;
72           N2  : LONG_INTEGER := -2;
73           N3  : LONG_INTEGER := -3;
74           N4  : LONG_INTEGER := -4;
75           N5  : LONG_INTEGER := -5;
76           N10 : LONG_INTEGER := -10;
77           N11 : LONG_INTEGER := -11;
78           N12 : LONG_INTEGER := -12;
79           N13 : LONG_INTEGER := -13;
80           N14 : LONG_INTEGER := -14;
82      BEGIN
83           IF I10 REM I5 /= I0 THEN
84                FAILED ( "INCORRECT RESULT FOR I10 REM I5" );
85           END IF;
87           IF IDENT (I11) REM IDENT (I5) /= I1 THEN
88                FAILED ( "INCORRECT RESULT FOR IDENT (I11) REM " &
89                         "IDENT (I5)" );
90           END IF;
92           IF I12 REM I5 /= I2 THEN
93                FAILED ( "INCORRECT RESULT FOR I12 REM I5" );
94           END IF;
96           IF "REM" (LEFT => I12, RIGHT => I5) /= I2 THEN
97                FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => I12, " &
98                         "RIGHT => I5)" );
99           END IF;
101           IF IDENT (I13) REM IDENT (I5) /= I3 THEN
102                FAILED ( "INCORRECT RESULT FOR IDENT (I13) REM " &
103                         "IDENT (I5)" );
104           END IF;
106           IF I14 REM I5 /= I4 THEN
107                FAILED ( "INCORRECT RESULT FOR I14 REM I5" );
108           END IF;
110           IF IDENT (I10) REM IDENT (N5) /= I0 THEN
111                FAILED ( "INCORRECT RESULT FOR IDENT (I10) REM " &
112                         "IDENT (N5)" );
113           END IF;
115           IF "REM" (LEFT => IDENT (I10), RIGHT => IDENT (N5))
116                    /= I0 THEN
117                FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => " &
118                         "IDENT (I10), RIGHT => IDENT (N5))" );
119           END IF;
121           IF I11 REM N5 /= I1 THEN
122                FAILED ( "INCORRECT RESULT FOR I11 REM N5" );
123           END IF;
125           IF IDENT (I12) REM IDENT (N5) /= I2 THEN
126                FAILED ( "INCORRECT RESULT FOR IDENT (I12) REM " &
127                         "IDENT (N5)" );
128           END IF;
130           IF I13 REM N5 /= I3 THEN
131                FAILED ( "INCORRECT RESULT FOR I13 REM N5" );
132           END IF;
134           IF "REM" (LEFT => I13, RIGHT => N5) /= I3 THEN
135                FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => I13, " &
136                         "RIGHT => N5)" );
137           END IF;
139           IF IDENT (I14) REM IDENT (N5) /= I4 THEN
140                FAILED ( "INCORRECT RESULT FOR IDENT (I14) REM " &
141                         "IDENT (N5)" );
142           END IF;
144           IF N10 REM I5 /= I0 THEN
145                FAILED ( "INCORRECT RESULT FOR N10 REM I5" );
146           END IF;
148           IF IDENT (N11) REM IDENT (I5) /= N1 THEN
149                FAILED ( "INCORRECT RESULT FOR IDENT (N11) REM " &
150                         "IDENT (I5)" );
151           END IF;
153           IF "REM" (LEFT => IDENT (N11), RIGHT => IDENT (I5))
154                    /= N1 THEN
155                FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => " &
156                         "IDENT (N11), RIGHT => IDENT (I5))" );
157           END IF;
159           IF N12 REM I5 /= N2 THEN
160                FAILED ( "INCORRECT RESULT FOR N12 REM I5" );
161           END IF;
163           IF IDENT (N13) REM IDENT (I5) /= N3 THEN
164                FAILED ( "INCORRECT RESULT FOR IDENT (N13) REM " &
165                         "IDENT (I5)" );
166           END IF;
168           IF N14 REM I5 /= N4 THEN
169                FAILED ( "INCORRECT RESULT FOR N14 REM I5" );
170           END IF;
172           IF "REM" (LEFT => N14, RIGHT => I5) /= N4 THEN
173                FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => N14, " &
174                         "RIGHT => I5)" );
175           END IF;
177           IF IDENT (N10) REM IDENT (N5) /= I0 THEN
178                FAILED ( "INCORRECT RESULT FOR IDENT (N10) REM " &
179                         "IDENT (N5)" );
180           END IF;
182           IF N11 REM N5 /= N1 THEN
183                FAILED ( "INCORRECT RESULT FOR N11 REM N5" );
184           END IF;
186           IF IDENT (N12) REM IDENT (N5) /= N2 THEN
187                FAILED ( "INCORRECT RESULT FOR IDENT (N12) REM " &
188                         "IDENT (N5)" );
189           END IF;
191           IF "REM" (LEFT => IDENT (N12), RIGHT => IDENT (N5))
192                    /= N2 THEN
193                FAILED ( "INCORRECT RESULT FOR ""REM"" (LEFT => " &
194                         "IDENT (N12), RIGHT => IDENT (N5))" );
195           END IF;
197           IF N13 REM N5 /= N3 THEN
198                FAILED ( "INCORRECT RESULT FOR N13 REM N5" );
199           END IF;
201           IF IDENT (N14) REM IDENT (N5) /= N4 THEN
202                FAILED ( "INCORRECT RESULT FOR IDENT (N14) REM " &
203                         "IDENT (N5)" );
204           END IF;
206           IF I10 MOD I5 /= I0 THEN
207                FAILED ( "INCORRECT RESULT FOR I10 MOD I5" );
208           END IF;
210           IF IDENT (I11) MOD IDENT (I5) /= I1 THEN
211                FAILED ( "INCORRECT RESULT FOR IDENT (I11) MOD " &
212                         "IDENT (I5)" );
213           END IF;
215           IF I12 MOD I5 /= I2 THEN
216                FAILED ( "INCORRECT RESULT FOR I12 MOD I5" );
217           END IF;
219           IF "MOD" (LEFT => I12, RIGHT => I5) /= I2 THEN
220                FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => I12, " &
221                         "RIGHT => I5)" );
222           END IF;
224           IF IDENT (I13) MOD IDENT (I5) /= I3 THEN
225                FAILED ( "INCORRECT RESULT FOR IDENT (I13) MOD " &
226                         "IDENT (I5)" );
227           END IF;
229           IF I14 MOD I5 /= I4 THEN
230                FAILED ( "INCORRECT RESULT FOR I14 MOD I5" );
231           END IF;
233           IF IDENT (I10) MOD IDENT (N5) /= I0 THEN
234                FAILED ( "INCORRECT RESULT FOR IDENT (I10) MOD " &
235                         "IDENT (N5)" );
236           END IF;
238           IF "MOD" (LEFT => IDENT (I10), RIGHT => IDENT (N5))
239                    /= I0 THEN
240                FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => " &
241                         "IDENT (I10), RIGHT => IDENT (N5))" );
242           END IF;
244           IF I11 MOD N5 /= N4 THEN
245                FAILED ( "INCORRECT RESULT FOR I11 MOD N5" );
246           END IF;
248           IF IDENT (I12) MOD IDENT (N5) /= N3 THEN
249                FAILED ( "INCORRECT RESULT FOR IDENT (I12) MOD " &
250                         "IDENT (N5)" );
251           END IF;
253           IF I13 MOD N5 /= N2 THEN
254                FAILED ( "INCORRECT RESULT FOR I13 MOD N5" );
255           END IF;
257           IF "MOD" (LEFT => I13, RIGHT => N5) /= N2 THEN
258                FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => I13, " &
259                         "RIGHT => N5)" );
260           END IF;
262           IF IDENT (I14) MOD IDENT (N5) /=  N1 THEN
263                FAILED ( "INCORRECT RESULT FOR IDENT (I14) MOD " &
264                         "IDENT (N5)" );
265           END IF;
267           IF N10 MOD I5 /= I0 THEN
268                FAILED ( "INCORRECT RESULT FOR N10 MOD I5" );
269           END IF;
271           IF IDENT (N11) MOD IDENT (I5) /= I4 THEN
272                FAILED ( "INCORRECT RESULT FOR IDENT (N11) MOD " &
273                         "IDENT (I5)" );
274           END IF;
276           IF "MOD" (LEFT => IDENT (N11), RIGHT => IDENT (I5))
277                    /= I4 THEN
278                FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => " &
279                         "IDENT (N11), RIGHT => IDENT (I5))" );
280           END IF;
282           IF N12 MOD I5 /= I3 THEN
283                FAILED ( "INCORRECT RESULT FOR N12 MOD I5" );
284           END IF;
286           IF IDENT (N13) MOD IDENT (I5) /= I2 THEN
287                FAILED ( "INCORRECT RESULT FOR IDENT (N13) MOD " &
288                         "IDENT (I5)" );
289           END IF;
291           IF N14 MOD I5 /= I1 THEN
292                FAILED ( "INCORRECT RESULT FOR N14 MOD I5" );
293           END IF;
295           IF "MOD" (LEFT => N14, RIGHT => I5) /= I1 THEN
296                FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => I14, " &
297                         "RIGHT => I5)" );
298           END IF;
300           IF IDENT (N10) MOD IDENT (N5) /= I0 THEN
301                FAILED ( "INCORRECT RESULT FOR IDENT (N10) MOD " &
302                         "IDENT (N5)" );
303           END IF;
305           IF N11 MOD N5 /= N1 THEN
306                FAILED ( "INCORRECT RESULT FOR N11 MOD N5" );
307           END IF;
309           IF IDENT (N12) MOD IDENT (N5) /= N2 THEN
310                FAILED ( "INCORRECT RESULT FOR IDENT (N12) MOD " &
311                         "IDENT (N5)" );
312           END IF;
314           IF "MOD" (LEFT => IDENT (N12), RIGHT => IDENT (N5))
315                    /= N2 THEN
316                FAILED ( "INCORRECT RESULT FOR ""MOD"" (LEFT => " &
317                         "IDENT (N12), RIGHT => IDENT (N5))" );
318           END IF;
320           IF N13 MOD N5 /= N3 THEN
321                FAILED ( "INCORRECT RESULT FOR N13 MOD N5" );
322           END IF;
324           IF IDENT (N14) MOD IDENT (N5) /= N4 THEN
325                FAILED ( "INCORRECT RESULT FOR IDENT (N14) MOD " &
326                         "IDENT (N5)" );
327           END IF;
328      END;
330      RESULT;
331 END C45503C;