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 WITHIN A GENERIC SUBPROGRAM BODY COMPILED AS A SUBUNIT
27 -- IN THE SAME COMPILATION, NON-HOMOGRAPH SUBPROGRAMS DECLARED
28 -- OUTSIDE THE GENERIC UNIT, AND HAVING THE SAME IDENTIFIER, ARE NOT
32 -- JET 10/17/88 CREATED ORIGINAL TEST.
33 -- BCB 10/03/90 ADDED "PRAGMA ELABORATE (REPORT);".
35 WITH REPORT
; USE REPORT
;
36 PRAGMA ELABORATE
(REPORT
);
37 PACKAGE C83030C_DECL1
IS
38 GLOBAL
: INTEGER := IDENT_INT
(INTEGER'FIRST);
39 SWITCH
: BOOLEAN := TRUE;
41 PROCEDURE C83030C_PROC1
;
42 PROCEDURE C83030C_PROC1
(X
: INTEGER);
43 PROCEDURE C83030C_PROC2
;
44 PROCEDURE C83030C_PROC2
(X
: INTEGER);
45 FUNCTION C83030C_FUNC3
RETURN INTEGER;
46 FUNCTION C83030C_FUNC3
RETURN BOOLEAN;
47 FUNCTION C83030C_FUNC3
(X
: INTEGER) RETURN INTEGER;
48 FUNCTION C83030C_FUNC4
RETURN INTEGER;
49 FUNCTION C83030C_FUNC4
RETURN BOOLEAN;
52 WITH REPORT
; USE REPORT
;
53 WITH C83030C_DECL1
; USE C83030C_DECL1
;
54 PACKAGE C83030C_DECL2
IS
56 PROCEDURE C83030C_PROC1
;
60 PROCEDURE C83030C_PROC2
(X
: T
);
63 FUNCTION C83030C_FUNC3
RETURN INTEGER;
67 FUNCTION C83030C_FUNC4
RETURN T
;
70 WITH REPORT
; USE REPORT
;
71 PACKAGE BODY C83030C_DECL1
IS
72 PROCEDURE C83030C_PROC1
IS
74 GLOBAL
:= IDENT_INT
(1);
77 PROCEDURE C83030C_PROC1
(X
: INTEGER) IS
79 GLOBAL
:= IDENT_INT
(X
);
82 PROCEDURE C83030C_PROC2
IS
84 GLOBAL
:= IDENT_INT
(1);
87 PROCEDURE C83030C_PROC2
(X
: INTEGER) IS
89 GLOBAL
:= IDENT_INT
(X
);
92 FUNCTION C83030C_FUNC3
RETURN INTEGER IS
97 FUNCTION C83030C_FUNC3
RETURN BOOLEAN IS
99 RETURN IDENT_BOOL
(FALSE);
102 FUNCTION C83030C_FUNC3
(X
: INTEGER) RETURN INTEGER IS
107 FUNCTION C83030C_FUNC4
RETURN INTEGER IS
112 FUNCTION C83030C_FUNC4
RETURN BOOLEAN IS
114 RETURN IDENT_BOOL
(FALSE);
118 WITH REPORT
; USE REPORT
;
119 WITH C83030C_DECL1
; USE C83030C_DECL1
;
120 PACKAGE BODY C83030C_DECL2
IS
121 PROCEDURE C83030C_PROC1
IS SEPARATE;
122 PROCEDURE C83030C_PROC2
(X
: T
) IS SEPARATE;
123 FUNCTION C83030C_FUNC3
RETURN INTEGER IS SEPARATE;
124 FUNCTION C83030C_FUNC4
RETURN T
IS SEPARATE;
127 SEPARATE (C83030C_DECL2
)
128 PROCEDURE C83030C_PROC1
IS
129 A
: INTEGER := IDENT_INT
(2);
134 IF GLOBAL
/= IDENT_INT
(3) THEN
135 FAILED
("INCORRECT VALUE FOR PROCEDURE CALL - 1");
139 IF GLOBAL
/= IDENT_INT
(2) THEN
140 FAILED
("INCORRECT VALUE FOR PROCEDURE CALL - 2");
142 GLOBAL
:= IDENT_INT
(3);
145 SEPARATE (C83030C_DECL2
)
146 PROCEDURE C83030C_PROC2
(X
: T
) IS
152 IF GLOBAL
/= IDENT_INT
(2) THEN
153 FAILED
("INCORRECT VALUE FOR PROCEDURE CALL - 20");
155 GLOBAL
:= IDENT_INT
(3);
157 GLOBAL
:= IDENT_INT
(2);
161 SEPARATE (C83030C_DECL2
)
162 FUNCTION C83030C_FUNC3
RETURN INTEGER IS
163 A
: INTEGER := INTEGER'LAST;
167 IF C83030C_FUNC3
/= IDENT_INT
(3) THEN
168 FAILED
("INCORRECT VALUE FROM FUNCTION CALL - 30");
171 IF C83030C_FUNC3
(A
) /= IDENT_INT
(INTEGER'LAST) THEN
172 FAILED
("INCORRECT VALUE FROM FUNCTION CALL - 31");
174 IF C83030C_FUNC3
THEN
175 FAILED
("INCORRECT VALUE FROM FUNCTION CALL - 32");
180 SEPARATE (C83030C_DECL2
)
181 FUNCTION C83030C_FUNC4
RETURN T
IS
186 IF C83030C_FUNC4
/= T
'LAST THEN
187 FAILED
("INCORRECT VALUE FROM FUNCTION CALL - 40");
191 IF C83030C_FUNC4
THEN
192 FAILED
("INCORRECT VALUE FROM FUNCTION CALL - 41");
198 WITH REPORT
; USE REPORT
;
199 WITH C83030C_DECL1
, C83030C_DECL2
; USE C83030C_DECL1
, C83030C_DECL2
;
202 TEST
("C83030C", "CHECK THAT WITHIN A GENERIC SUBPROGRAM BODY " &
203 "COMPILED AS A SUBUNIT IN THE SAME COMPILATION," &
204 " NON-HOMOGRAPH SUBPROGRAMS DECLARED OUTSIDE " &
205 "THE GENERIC UNIT, AND HAVING THE SAME " &
206 "IDENTIFIER, ARE NOT HIDDEN");
210 PROCEDURE PROC1
IS NEW C83030C_DECL2
.C83030C_PROC1
;
212 IF GLOBAL
/= IDENT_INT
(INTEGER'FIRST) THEN
213 FAILED
("INCORRECT VALUE FOR START OF TEST ONE");
216 IF GLOBAL
/= IDENT_INT
(3) THEN
217 FAILED
("INCORRECT VALUE FOR END OF TEST ONE");
220 GLOBAL
:= IDENT_INT
(INTEGER'FIRST);
226 PROCEDURE PROC2
IS NEW C83030C_DECL2
.C83030C_PROC2
(INTEGER);
228 IF GLOBAL
/= IDENT_INT
(INTEGER'FIRST) THEN
229 FAILED
("INCORRECT VALUE FOR START OF TEST TWO");
232 IF GLOBAL
/= IDENT_INT
(3) THEN
233 FAILED
("INCORRECT VALUE FOR END OF TEST TWO");
241 FUNCTION FUNC3
IS NEW C83030C_DECL2
.C83030C_FUNC3
;
243 IF FUNC3
/= IDENT_INT
(3) THEN
244 FAILED
("INCORRECT VALUE FOR END OF TEST THREE");
252 FUNCTION FUNC4
IS NEW C83030C_DECL2
.C83030C_FUNC4
(INTEGER);
254 IF FUNC4
/= IDENT_INT
(INTEGER'FIRST) THEN
255 FAILED
("INCORRECT VALUE FOR END OF TEST FOUR");
258 GLOBAL
:= INTEGER'FIRST;