3 -- Grant of Unlimited Rights
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
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.
26 -- CHECK THAT CONSTRAINT_ERROR IS RAISED WHEN THE
27 -- SECOND OPERAND OF '/', 'MOD', OR 'REM' EQUALS ZERO, IF THE
28 -- OPERANDS ARE OF PREDEFINED TYPE LONG_INTEGER.
30 -- APPLICABILITY CRITERIA:
31 -- THIS TEST IS APPLICABLE TO THOSE IMPLEMENTATIONS WHICH SUPPORT
34 -- IF "LONG_INTEGER" IS NOT SUPPORTED, THEN THE DECLARATION OF
35 -- "CHECK_LONG" MUST BE REJECTED.
37 -- *** NOTE: This test has been modified since ACVC version 1.11 to -- 9X
38 -- *** remove incompatibilities associated with the transition -- 9X
39 -- *** to Ada 9X. -- 9X
42 -- RJW 09/01/86 CREATED ORIGINAL TEST.
43 -- DHH 01/13/88 ADDED APPLICABILITY CRITERIA AND STANDARD HEADER.
44 -- JRL 03/11/93 INITIALIZED VARIABLES TO DEFEAT OPTIMIZATION.
45 -- JRL 03/30/93 REMOVED NUMERIC_ERROR FROM TEST.
47 WITH REPORT; USE REPORT;
50 CHECK_LONG : LONG_INTEGER; -- N/A => ERROR.
52 I0 : LONG_INTEGER := 1;
53 I5 : LONG_INTEGER := 2;
54 N5 : LONG_INTEGER := 3;
57 TEST ( "C45504F", "CHECK THAT CONSTRAINT_ERROR " &
58 "IS RAISED WHEN THE SECOND OPERAND OF '/', " &
59 "'MOD', OR 'REM' EQUALS ZERO, IF THE " &
60 "OPERANDS ARE OF PREDEFINED TYPE " &
71 FAILED ( "NO EXCEPTION RAISED BY 'I5 / I0' - 1" );
73 FAILED ( "NO EXCEPTION RAISED BY 'I5 / I0' - 2" );
76 WHEN CONSTRAINT_ERROR =>
77 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'I5 / I0'" );
79 FAILED ( "WRONG EXCEPTION RAISED BY 'I5 / I0'" );
84 FAILED ( "NO EXCEPTION RAISED BY 'N5 / I0' - 1" );
86 FAILED ( "NO EXCEPTION RAISED BY 'N5 / I0' - 2" );
89 WHEN CONSTRAINT_ERROR =>
90 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'N5 / I0'" );
92 FAILED ( "WRONG EXCEPTION RAISED BY 'N5 / I0'" );
97 FAILED ( "NO EXCEPTION RAISED BY 'I0 / I0' - 1" );
99 FAILED ( "NO EXCEPTION RAISED BY 'I0 / I0' - 2" );
102 WHEN CONSTRAINT_ERROR =>
103 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'I0 / I0'" );
105 FAILED ( "WRONG EXCEPTION RAISED BY 'I0 / I0'" );
109 IF I5 / I0 * I0 = 0 THEN
110 FAILED ( "NO EXCEPTION RAISED BY 'I5 / I0 * I0' - 1" );
112 FAILED ( "NO EXCEPTION RAISED BY 'I5 / I0 * I0' - 2" );
115 WHEN CONSTRAINT_ERROR =>
116 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'I5 / I0 * I0'" );
118 FAILED ( "WRONG EXCEPTION RAISED BY 'I5 / I0 * I0'" );
122 IF I5 MOD I0 = 0 THEN
123 FAILED ( "NO EXCEPTION RAISED BY 'I5 MOD I0' - 1" );
125 FAILED ( "NO EXCEPTION RAISED BY 'I5 MOD I0' - 2" );
128 WHEN CONSTRAINT_ERROR =>
129 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'I5 MOD I0'" );
131 FAILED ( "WRONG EXCEPTION RAISED BY 'I5 MOD I0'" );
135 IF N5 MOD I0 = 0 THEN
136 FAILED ( "NO EXCEPTION RAISED BY 'N5 MOD I0' - 1" );
138 FAILED ( "NO EXCEPTION RAISED BY 'N5 MOD I0' - 2" );
141 WHEN CONSTRAINT_ERROR =>
142 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'N5 MOD I0'" );
144 FAILED ( "WRONG EXCEPTION RAISED BY 'N5 MOD I0'" );
148 IF I0 MOD I0 = 0 THEN
149 FAILED ( "NO EXCEPTION RAISED BY 'I0 MOD I0' - 1" );
151 FAILED ( "NO EXCEPTION RAISED BY 'I0 MOD I0' - 2" );
154 WHEN CONSTRAINT_ERROR =>
155 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'I0 MOD I0'" );
157 FAILED ( "WRONG EXCEPTION RAISED BY 'I0 MOD I0'" );
161 IF I5 MOD I0 = (I5 + I0) MOD I0 THEN
162 FAILED ( "NO EXCEPTION RAISED BY 'I5 MOD I0 = " &
163 "(I5 + I0) MOD I0' - 1" );
165 FAILED ( "NO EXCEPTION RAISED BY 'I5 MOD I0 = " &
166 "(I5 + I0) MOD I0' - 2" );
169 WHEN CONSTRAINT_ERROR =>
170 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'I5 MOD I0 = " &
171 "(I5 + I0) MOD I0'" );
173 FAILED ( "WRONG EXCEPTION RAISED BY 'I5 MOD I0 = " &
174 "(I5 + I0) MOD I0'" );
178 IF I5 REM I0 = 0 THEN
179 FAILED ( "NO EXCEPTION RAISED BY 'I5 REM I0' - 1" );
181 FAILED ( "NO EXCEPTION RAISED BY 'I5 REM I0' - 2" );
184 WHEN CONSTRAINT_ERROR =>
185 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'I5 REM I0'" );
187 FAILED ( "WRONG EXCEPTION RAISED BY 'I5 REM I0'" );
191 IF N5 REM I0 = 0 THEN
192 FAILED ( "NO EXCEPTION RAISED BY 'N5 REM I0' - 1" );
194 FAILED ( "NO EXCEPTION RAISED BY 'N5 REM I0' - 2" );
197 WHEN CONSTRAINT_ERROR =>
198 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'N5 REM I0'" );
200 FAILED ( "WRONG EXCEPTION RAISED BY 'N5 REM I0'" );
204 IF I0 REM I0 = 0 THEN
205 FAILED ( "NO EXCEPTION RAISED BY 'I0 REM I0' - 1" );
207 FAILED ( "NO EXCEPTION RAISED BY 'I0 REM I0' - 2" );
210 WHEN CONSTRAINT_ERROR =>
211 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'I0 REM I0'" );
213 FAILED ( "WRONG EXCEPTION RAISED BY 'I0 REM I0'" );
217 IF I5 REM (-I0) = I5 REM I0 THEN
218 FAILED ( "NO EXCEPTION RAISED BY 'I5 REM (-I0) = " &
221 FAILED ( "NO EXCEPTION RAISED BY 'I5 REM (-I0) = " &
225 WHEN CONSTRAINT_ERROR =>
226 COMMENT ( "CONSTRAINT_ERROR RAISED BY 'I5 REM (-I0) " &
229 FAILED ( "WRONG EXCEPTION RAISED BY 'I5 REM (-I0) = " &