Dead
[official-gcc.git] / gomp-20050608-branch / gcc / testsuite / ada / acats / tests / c4 / c45502b.dep
bloba8bd24ce1ebf73e8b3002dce68269c13a98c3703
1 -- C45502B.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 MULTIPLICATION AND DIVISION YIELD CORRECT RESULTS WHEN
27 --     THE OPERANDS ARE OF PREDEFINED TYPE SHORT_INTEGER.
29 -- APPLICABILITY CRITERIA:
30 --     THIS TEST IS APPLICABLE TO THOSE IMPLEMENTATIONS WHICH SUPPORT
31 --     SHORT_INTEGER.
33 --     IF "SHORT_INTEGER" IS NOT SUPPORTED, THEN THE DECLARATION OF
34 --     "CHECK_SHORT" 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 C45502B IS
43      CHECK_SHORT : SHORT_INTEGER;                   -- N/A => ERROR.
45      FUNCTION IDENT (S : SHORT_INTEGER) RETURN SHORT_INTEGER IS
46      BEGIN
47           RETURN SHORT_INTEGER (IDENT_INT (INTEGER (S)));
48      END IDENT;
50 BEGIN
51      TEST ( "C45502B", "CHECK THAT MULTIPLICATION AND DIVISION " &
52                        "YIELD CORRECT RESULTS WHEN THE OPERANDS " &
53                        "ARE OF PREDEFINED TYPE SHORT_INTEGER" );
55      DECLARE
56           I0  : SHORT_INTEGER := 0;
57           I1  : SHORT_INTEGER := 1;
58           I2  : SHORT_INTEGER := 2;
59           I3  : SHORT_INTEGER := 3;
60           I5  : SHORT_INTEGER := 5;
61           I10 : SHORT_INTEGER := 10;
62           I11 : SHORT_INTEGER := 11;
63           I12 : SHORT_INTEGER := 12;
64           I13 : SHORT_INTEGER := 13;
65           I14 : SHORT_INTEGER := 14;
66           N1  : SHORT_INTEGER := -1;
67           N2  : SHORT_INTEGER := -2;
68           N5  : SHORT_INTEGER := -5;
69           N10 : SHORT_INTEGER := -10;
70           N11 : SHORT_INTEGER := -11;
71           N12 : SHORT_INTEGER := -12;
72           N13 : SHORT_INTEGER := -13;
73           N14 : SHORT_INTEGER := -14;
74           N50 : SHORT_INTEGER := -50;
76      BEGIN
77           IF I0 * SHORT_INTEGER'FIRST /= 0 THEN
78                FAILED ( "INCORRECT RESULT FOR I0 * " &
79                         "SHORT_INTEGER'FIRST" );
80           END IF;
82           IF I0 * SHORT_INTEGER'LAST /= 0 THEN
83                FAILED ( "INCORRECT RESULT FOR I0 * " &
84                         "SHORT_INTEGER'LAST" );
85           END IF;
87           IF N1 * SHORT_INTEGER'LAST + SHORT_INTEGER'LAST /= 0 THEN
88                FAILED ( "INCORRECT RESULT FOR N1 * " &
89                         "SHORT_INTEGER'LAST" );
90           END IF;
92           IF I3 * I1 /= I3 THEN
93                FAILED ( "INCORRECT RESULT FOR I3 * I1" );
94           END IF;
96           IF IDENT (I3) * IDENT (I1) /= I3 THEN
97                FAILED ( "INCORRECT RESULT FOR IDENT (I3) * " &
98                         "IDENT (I1)" );
99           END IF;
101           IF I2 * N1 /= N2 THEN
102                FAILED ( "INCORRECT RESULT FOR I2 * N1" );
103           END IF;
105           IF "*" (LEFT => I2, RIGHT => N1) /= N2 THEN
106                FAILED ( "INCORRECT RESULT FOR ""*"" (LEFT => I2, " &
107                         "RIGHT => N1)" );
108           END IF;
110           IF IDENT (I2) * IDENT (N1) /= N2 THEN
111                FAILED ( "INCORRECT RESULT FOR IDENT (I2) * " &
112                         "IDENT (N1)" );
113           END IF;
115           IF I5 * I2 * N5 /= N50 THEN
116                FAILED ( "INCORRECT RESULT FOR I5 * I2 * N5" );
117           END IF;
119           IF IDENT (N1) * IDENT (N5) /= I5 THEN
120                FAILED ( "INCORRECT RESULT FOR IDENT (N1) * " &
121                         "IDENT (N5)" );
122           END IF;
124           IF "*" (LEFT => IDENT (N1), RIGHT => IDENT (N5)) /=
125                  I5 THEN
126                FAILED ( "INCORRECT RESULT FOR ""*"" (LEFT => " &
127                         "IDENT (N1), RIGHT => IDENT (N5))" );
128           END IF;
130           IF IDENT (N1) * IDENT (I2) * IDENT (N5) /= I10
131              THEN
132                FAILED ( "INCORRECT RESULT FOR IDENT (N1) * " &
133                         "IDENT (I2) * IDENT (N5)" );
134           END IF;
136           IF (-IDENT (I0)) * IDENT (I10) /= I0 THEN
137                FAILED ( "INCORRECT RESULT FOR (-IDENT (I0)) * " &
138                         "IDENT (I10)" );
139           END IF;
141           IF I0 * I10 /= (-I0) THEN
142                FAILED ( "INCORRECT RESULT FOR I0 * I10" );
143           END IF;
145           IF "*" (LEFT => I0, RIGHT => I10) /= (-I0) THEN
146                FAILED ( "INCORRECT RESULT FOR ""*"" (LEFT => I0, " &
147                         "RIGHT => I10)" );
148           END IF;
150           IF IDENT (I10) / IDENT (I5) /= I2 THEN
151                FAILED ( "INCORRECT RESULT FOR IDENT (I10) " &
152                         "/ IDENT (I5)" );
153           END IF;
155           IF I11 / I5 /= I2 THEN
156                FAILED ( "INCORRECT RESULT FOR I11 / I5" );
157           END IF;
159           IF IDENT (I12) / IDENT (I5) /= I2 THEN
160                FAILED ( "INCORRECT RESULT FOR IDENT (I12) " &
161                         "/ IDENT (I5)" );
162           END IF;
164           IF "/" (LEFT => IDENT (I12), RIGHT => IDENT (I5)) /=
165                  I2 THEN
166                FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => " &
167                         "IDENT (I12), RIGHT => IDENT (I5))" );
168           END IF;
170           IF I13 / I5 /= I2 THEN
171                FAILED ( "INCORRECT RESULT FOR I13 / I5" );
172           END IF;
174           IF IDENT (I14) / IDENT (I5) /= I2 THEN
175                FAILED ( "INCORRECT RESULT FOR IDENT (I14) " &
176                         "/ IDENT (I5)" );
177           END IF;
179           IF I10 / N5 /= N2 THEN
180                FAILED ( "INCORRECT RESULT FOR I10 / N5" );
181           END IF;
183           IF "/" (LEFT => I10, RIGHT => N5) /= N2 THEN
184                FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => I10, " &
185                         "RIGHT => N5)" );
186           END IF;
188           IF IDENT (I11) / IDENT (N5) /= N2 THEN
189                FAILED ( "INCORRECT RESULT FOR IDENT (I11) " &
190                         "/ IDENT (N5)" );
191           END IF;
193           IF I12 / N5 /= N2 THEN
194                FAILED ( "INCORRECT RESULT FOR I12 / N5" );
195           END IF;
197           IF IDENT (I13) / IDENT (N5) /= N2 THEN
198                FAILED ( "INCORRECT RESULT FOR IDENT (I13) " &
199                         "/ IDENT (N5)" );
200           END IF;
202           IF I14 / N5 /= N2 THEN
203                FAILED ( "INCORRECT RESULT FOR I14 / N5" );
204           END IF;
206           IF IDENT (N10) / IDENT (I5) /= N2 THEN
207                FAILED ( "INCORRECT RESULT FOR IDENT (N10) " &
208                         "/ IDENT (I5)" );
209           END IF;
211           IF "/" (LEFT => IDENT (N10), RIGHT => IDENT (I5)) /=
212                  N2 THEN
213                FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => " &
214                         "IDENT (N10), RIGHT => IDENT (I5))" );
215           END IF;
217           IF N11 / I5 /= N2 THEN
218                FAILED ( "INCORRECT RESULT FOR N11 / I5" );
219           END IF;
221           IF IDENT (N12) / IDENT (I5) /= N2 THEN
222                FAILED ( "INCORRECT RESULT FOR IDENT (N12) " &
223                         "/ IDENT (I5)" );
224           END IF;
226           IF N13 / I5 /= N2 THEN
227                FAILED ( "INCORRECT RESULT FOR N13 / I5" );
228           END IF;
230           IF "/" (LEFT => N13, RIGHT => I5) /= N2 THEN
231                FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => N13, " &
232                         "RIGHT => I5)" );
233           END IF;
235           IF IDENT (N14) / IDENT (I5) /= N2 THEN
236                FAILED ( "INCORRECT RESULT FOR IDENT (N14) " &
237                         "/ IDENT (I5)" );
238           END IF;
240           IF N10 / N5 /= I2 THEN
241                FAILED ( "INCORRECT RESULT FOR N10 / N5" );
242           END IF;
244           IF IDENT (N11) / IDENT (N5) /= I2 THEN
245                FAILED ( "INCORRECT RESULT FOR IDENT (N11) " &
246                         "/ IDENT (N5)" );
247           END IF;
249           IF "/" (LEFT => IDENT (N11), RIGHT => IDENT (N5)) /=
250                  I2 THEN
251                FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => " &
252                         "IDENT (N11), RIGHT => IDENT (N5))" );
253           END IF;
255           IF N12 / N5 /= I2 THEN
256                FAILED ( "INCORRECT RESULT FOR N12 / N5" );
257           END IF;
260           IF IDENT (N13) / IDENT (N5) /= I2 THEN
261                FAILED ( "INCORRECT RESULT FOR IDENT (N13) " &
262                         "/ IDENT (N5)" );
263           END IF;
265           IF N14 / N5 /= I2 THEN
266                FAILED ( "INCORRECT RESULT FOR N14 / N5" );
267           END IF;
269           IF "/" (LEFT => N14, RIGHT => N5) /= I2 THEN
270                FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => N14, " &
271                         "RIGHT => N5)" );
272           END IF;
274           IF I0 / I5 /= (-I0) THEN
275                FAILED ( "INCORRECT RESULT FOR I0 / I5" );
276           END IF;
278           IF "/" (LEFT => I0, RIGHT => I5) /= (-I0) THEN
279                FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => I0, " &
280                         "RIGHT => I5)" );
281           END IF;
283           IF (-IDENT (I0)) / IDENT (I5) /= I0 THEN
284                FAILED ( "INCORRECT RESULT FOR (-IDENT (I0)) / " &
285                         "IDENT (I5)" );
286           END IF;
288      END;
290      RESULT;
291 END C45502B;