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.
25 -- CHECK THAT PROGRAM_ERROR IS NOT RAISED IF A SUBPROGRAM'S BODY HAS
26 -- BEEN ELABORATED BEFORE IT IS CALLED. CHECK THE FOLLOWING:
27 -- A) A SUBPROGRAM CAN APPEAR IN A NON-ELABORATED DECLARATIVE PART
28 -- OR PACKAGE SPECIFICATION BEFORE ITS BODY.
32 WITH REPORT
; USE REPORT
;
36 TEST
("C39006E", "CHECK THAT PROGRAM_ERROR IS NOT RAISED IF A " &
37 "SUBPROGRAM IS CALLED IN A NON-ELABORATED " &
38 "DECLARATIVE PART OR PACKAGE SPECIFICATION " &
39 "BEFORE ITS BODY IS ELABORATED");
42 FUNCTION INIT_1
(A
: INTEGER) RETURN INTEGER;
49 PROCEDURE USE_INIT1
IS
51 IF NOT EQUAL
(3, 3) THEN
53 X
: INTEGER := INIT_1
(1);
63 FAILED
("PROGRAM_ERROR RAISED - 1");
65 FAILED
("UNEXPECTED EXCEPTION RAISED - 1");
72 FUNCTION INIT_1
(A
: INTEGER) RETURN INTEGER IS
74 RETURN (A
+ IDENT_INT
(1));
83 PROCEDURE INIT_2
(A
: IN OUT INTEGER);
86 FUNCTION USE_INIT2
RETURN BOOLEAN;
90 FUNCTION USE_INIT2
RETURN BOOLEAN IS
92 IF NOT EQUAL
(3, 3) THEN
99 RETURN IDENT_BOOL
(FALSE);
102 WHEN PROGRAM_ERROR
=>
103 FAILED
("PROGRAM_ERROR RAISED - 2");
106 FAILED
("UNEXPECTED EXCEPTION RAISED - 2");
111 FAILED
("INCORRECT RESULTS FROM FUNCTION CALL - 2");
115 PROCEDURE INIT_2
(A
: IN OUT INTEGER) IS
117 A
:= A
+ IDENT_INT
(1);
125 FUNCTION INIT_3
RETURN INTEGER;
133 IF NOT EQUAL
(3, 3) THEN
137 WHEN PROGRAM_ERROR
=>
138 FAILED
("PROGRAM_ERROR RAISED - 3");
140 FAILED
("UNEXPECTED EXCEPTION RAISED - 3");
143 FUNCTION INIT_3
RETURN INTEGER IS
145 RETURN IDENT_INT
(1);
153 PROCEDURE INIT_4
(A
: IN OUT INTEGER);
161 IF NOT EQUAL
(3, 3) THEN
165 WHEN PROGRAM_ERROR
=>
166 FAILED
("PROGRAM_ERROR RAISED - 4");
168 FAILED
("UNEXPECTED EXCEPTION RAISED - 4");
171 PROCEDURE INIT_4
(A
: IN OUT INTEGER) IS
183 FUNCTION INIT_5
(A
: INTEGER) RETURN INTEGER;
185 PROCEDURE USE_INIT5
IS
187 X
: INTEGER := INIT_5
(1);
195 FUNCTION INIT_5
(A
: INTEGER) RETURN INTEGER IS
197 RETURN (A
+ IDENT_INT
(1));
205 WHEN PROGRAM_ERROR
=>
206 FAILED
("PROGRAM_ERROR RAISED - 5");
208 FAILED
("UNEXPECTED EXCEPTION RAISED - 5");