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, FOR IN-OUT PARAMETERS OF A SCALAR TYPE,
27 -- CONSTRAINT_ERROR IS RAISED:
28 -- BEFORE A SUBPROGRAM CALL WHEN THE CONVERTED ACTUAL
29 -- PARAMETER IS OUTSIDE THE RANGE OF THE FORMAL PARAMETER'S
31 -- AFTER A SUBPROGRAM CALL WHEN THE CONVERTED FORMAL PARAMETER
32 -- IS OUTSIDE THE RANGE OF THE ACTUAL PARAMETER'S SUBTYPE.
35 -- CPP 07/18/84 CREATED ORIGINAL TEST.
36 -- VCL 10/27/87 MODIFIED THIS HEADER; ADDED STATEMENTS WHICH
37 -- REFERENCED THE ACTUAL PARAMETERS IN THE SECOND
40 WITH REPORT
; USE REPORT
;
43 TEST
("C64103B", "FOR IN-OUT PARAMETERS OF A SCALAR TYPE, " &
44 "CONSTRAINT_ERROR IS RAISED: BEFORE A " &
45 "SUBPROGRAM CALL WHEN THE CONVERTED ACTUAL " &
46 "PARAMETER IS OUTSIDE THE RANGE OF THE FORMAL " &
47 "PARAMETER'S SUBTYPE; AFTER A SUBPROGRAM " &
48 "CALL WHEN THE CONVERTED FORMAL PARAMETER IS " &
49 "OUTSIDE THE RANGE OF THE ACTUAL PARAMETER'S " &
55 A1
: INTEGER := IDENT_INT
(-1);
56 TYPE SUBINT
IS RANGE -8 .. -2;
58 TYPE FLOAT_TYPE
IS DIGITS 3 RANGE 0.0 .. 3.0;
59 A2
: FLOAT_TYPE
:= 0.12;
60 A3
: FLOAT_TYPE
:= 2.5;
61 TYPE NEW_FLOAT
IS DIGITS 3 RANGE 1.0 .. 2.0;
63 TYPE FIXED_TYPE
IS DELTA 1.0 RANGE -2.0 .. 5.0;
64 A4
: FIXED_TYPE
:= -2.0;
65 A5
: FIXED_TYPE
:= 4.0;
66 TYPE NEW_FIXED
IS DELTA 1.0 RANGE -1.0 .. 3.0;
68 A6
: CHARACTER := 'A';
69 SUBTYPE SUPER_CHAR
IS CHARACTER RANGE 'B'..'Q';
71 TYPE COLOR
IS (RED
, BURGUNDY
, LILAC
, MAROON
, MAGENTA
);
72 SUBTYPE A_COLOR
IS COLOR
RANGE RED
..LILAC
;
73 SUBTYPE B_COLOR
IS COLOR
RANGE MAROON
..MAGENTA
;
74 A7
: B_COLOR
:= MAROON
;
76 PROCEDURE P1
(X
: IN OUT SUBINT
;
79 FAILED
("EXCEPTION NOT RAISED BEFORE CALL -P1 (A" &
83 PROCEDURE P2
(X
: IN OUT NEW_FLOAT
;
86 FAILED
("EXCEPTION NOT RAISED BEFORE CALL -P2 (A" &
90 PROCEDURE P3
(X
: IN OUT NEW_FIXED
;
93 FAILED
("EXCEPTION NOT RAISED BEFORE CALL -P3 (A" &
97 PROCEDURE P4
(X
: IN OUT SUPER_CHAR
;
100 FAILED
("EXCEPTION NOT RAISED BEFORE CALL -P4 (A" &
104 PROCEDURE P5
(X
: IN OUT A_COLOR
;
107 FAILED
("EXCEPTION NOT RAISED BEFORE CALL -P5 (A" &
112 P1
(SUBINT
(A0
), "1");
114 WHEN CONSTRAINT_ERROR
=>
117 FAILED
("WRONG EXCEPTION RAISED -P1 (A1)");
121 P1
(SUBINT
(A1
), "2");
123 WHEN CONSTRAINT_ERROR
=>
126 FAILED
("WRONG EXCEPTION RAISED -P1 (A2)");
130 P2
(NEW_FLOAT
(A2
), "1");
132 WHEN CONSTRAINT_ERROR
=>
135 FAILED
("WRONG EXCEPTION RAISED -P2 (A1)");
139 P2
(NEW_FLOAT
(A3
), "2");
141 WHEN CONSTRAINT_ERROR
=>
144 FAILED
("WRONG EXCEPTION RAISED -P2 (A2)");
148 P3
(NEW_FIXED
(A4
), "1");
150 WHEN CONSTRAINT_ERROR
=>
153 FAILED
("WRONG EXCEPTION RAISED -P3 (A1)");
157 P3
(NEW_FIXED
(A5
), "2");
159 WHEN CONSTRAINT_ERROR
=>
162 FAILED
("WRONG EXCEPTION RAISED -P3 (A2)");
166 P4
(SUPER_CHAR
(A6
),"1");
168 WHEN CONSTRAINT_ERROR
=>
171 FAILED
("WRONG EXCEPTION RAISED -P4 (A1)");
175 P5
(A_COLOR
(A7
), "1");
177 WHEN CONSTRAINT_ERROR
=>
180 FAILED
("WRONG EXCEPTION RAISED -P5 (A1)");
187 TYPE SUBINT
IS RANGE -8 .. -2;
192 TYPE FLOAT IS DIGITS 3 RANGE -1.0 .. 2.0;
193 TYPE A_FLOAT
IS DIGITS 3 RANGE 0.0 .. 1.0;
198 TYPE NEW_FIXED
IS DELTA 1.0 RANGE -1.0 .. 3.0;
199 A6
: NEW_FIXED
:= 0.0;
200 TYPE FIXED_TYPE
IS DELTA 1.0 RANGE -2.0 .. 5.0;
201 A7
: FIXED_TYPE
:= -2.0;
202 A8
: FIXED_TYPE
:= 4.0;
204 SUBTYPE SUPER_CHAR
IS CHARACTER RANGE 'B'..'Q';
205 A9
: SUPER_CHAR
:= 'C';
206 A10
: CHARACTER := 'A';
207 A11
: CHARACTER := 'R';
209 PROCEDURE P1
(X
: IN OUT INTEGER; Y
: INTEGER) IS
215 PROCEDURE P2
(X
: IN OUT FLOAT; Y
: FLOAT) IS
221 PROCEDURE P3
( X
: IN OUT FIXED_TYPE
; Y
: FIXED_TYPE
) IS
227 PROCEDURE P4
(X
: IN OUT CHARACTER; Y
: CHARACTER) IS
235 P1
(INTEGER(A0
), A1
);
237 FAILED
("EXCEPTION NOT RAISED AFTER CALL -P1 (B1)");
239 FAILED
("EXCEPTION NOT RAISED AFTER CALL -P1 (B2)");
242 WHEN CONSTRAINT_ERROR
=>
244 FAILED
("EXCEPTION RAISED BEFORE CALL " &
248 FAILED
("WRONG EXCEPTION RAISED -P1 (B1)");
253 P1
(INTEGER(A0
), A2
);
255 FAILED
("EXCEPTION NOT RAISED AFTER CALL -P1 (B3)");
257 FAILED
("EXCEPTION NOT RAISED AFTER CALL -P1 (B4)");
260 WHEN CONSTRAINT_ERROR
=>
262 FAILED
("EXCEPTION RAISED BEFORE CALL " &
266 FAILED
("WRONG EXCEPTION RAISED -P1 (B2)");
273 FAILED
("EXCEPTION NOT RAISED AFTER CALL -P2 (B1)");
275 FAILED
("EXCEPTION NOT RAISED AFTER CALL -P2 (B2)");
278 WHEN CONSTRAINT_ERROR
=>
280 FAILED
("EXCEPTION RAISED BEFORE CALL " &
284 FAILED
("WRONG EXCEPTION RAISED -P2 (B1)");
291 FAILED
("EXCEPTION NOT RAISED -P2 (B3)");
293 FAILED
("EXCEPTION NOT RAISED -P2 (B4)");
296 WHEN CONSTRAINT_ERROR
=>
298 FAILED
("EXCEPTION RAISED BEFORE CALL " &
302 FAILED
("WRONG EXCEPTION RAISED -P2 (B2)");
307 P3
(FIXED_TYPE
(A6
), A7
);
309 FAILED
("EXCEPTION NOT RAISED -P3 (B1)");
311 FAILED
("EXCEPTION NOT RAISED -P3 (B2)");
314 WHEN CONSTRAINT_ERROR
=>
316 FAILED
("EXCEPTION RAISED BEFORE CALL " &
320 FAILED
("WRONG EXCEPTION RAISED -P3 (B1)");
325 P3
(FIXED_TYPE
(A6
), A8
);
327 FAILED
("EXCEPTION NOT RAISED -P3 (B3)");
329 FAILED
("EXCEPTION NOT RAISED -P3 (B4)");
332 WHEN CONSTRAINT_ERROR
=>
334 FAILED
("EXCEPTION RAISED BEFORE CALL " &
338 FAILED
("WRONG EXCEPTION RAISED -P3 (B2)");
343 P4
(CHARACTER (A9
), A10
);
345 FAILED
("EXCEPTION NOT RAISED AFTER CALL -P4 (B1)");
347 FAILED
("EXCEPTION NOT RAISED AFTER CALL -P4 (B2)");
350 WHEN CONSTRAINT_ERROR
=>
352 FAILED
("EXCEPTION RAISED BEFORE CALL " &
356 FAILED
("WRONG EXCEPTION RAISED -P4 (B1)");
361 P4
(CHARACTER (A9
), A11
);
363 FAILED
("EXCEPTION NOT RAISED AFTER CALL -P4 (B3)");
365 FAILED
("EXCEPTION NOT RAISED AFTER CALL -P4 (B4)");
368 WHEN CONSTRAINT_ERROR
=>
370 FAILED
("EXCEPTION RAISED BEFORE CALL " &
374 FAILED
("WRONG EXCEPTION RAISED -P4 (B2)");