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 A DERIVED TYPE DECLARATION AND A GENERIC
27 -- INSTANTIATION MAY DERIVE TWO OR MORE SUBPROGRAM HOMOGRAPHS.
28 -- CHECK THE CASES WHERE:
29 -- 1) THE DERIVED SUBPROGRAMS BECOME HOMOGRAPHS BECAUSE OF THE
30 -- SUBSTITUTION OF THE DERIVED TYPE FOR THE PARENT TYPE IN
31 -- THE IMPLICIT SUBPROGRAM SPECIFICATIONS.
32 -- 2) THE PARENT TYPE IS DECLARED IN A GENERIC INSTANCE AND
33 -- THE INSTANCE INCLUDES TWO OR MORE DERIVABLE SUBPROGRAMS
34 -- THAT ARE HOMOGRAPHS AS A RESULT OF THE ARGUMENTS GIVEN
35 -- FOR THE GENERIC FORMAL-TYPE PARAMETERS.
36 -- TEST CASES WHERE THE DERIVED TYPE DECLARATIONS AND GENERIC
37 -- INSTANTIATIONS ARE GIVEN IN:
38 -- . THE VISIBLE PART OF A PACKAGE SPECIFICATION,
39 -- . THE PRIVATE PART OF A PACKAGE SPECIFICATION,
41 -- . A SUBPROGRAM BODY,
42 -- . A BLOCK STATEMENT.
45 -- VCL 03-08-88 CREATED ORIGINAL TEST.
47 WITH REPORT
; USE REPORT
;
49 TYPE ENUM
IS (E1
, E2
, E3
);
55 TYPE PARENT
IS (E1
, E2
, E3
);
57 PROCEDURE HP
(P1
: PARENT
; P2
: T1
);
58 PROCEDURE HP
(P3
: PARENT
; P4
: T2
);
60 FUNCTION HF
(P1
: T1
) RETURN PARENT
;
61 FUNCTION HF
(P2
: T2
) RETURN PARENT
;
64 PACKAGE BODY G_PACK
IS
65 PROCEDURE HP
(P1
: PARENT
; P2
: T1
) IS
70 PROCEDURE HP
(P3
: PARENT
; P4
: T2
) IS
75 FUNCTION HF
(P1
: T1
) RETURN PARENT
IS
80 FUNCTION HF
(P2
: T2
) RETURN PARENT
IS
86 TEST
("A83009A", "A DERIVED TYPE DECLARATION AND A GENERIC " &
87 "INSTANTIATION MAY DERIVE TWO OR " &
88 "MORE SUBPROGRAM HOMOGRAPHS");
91 -- SUBPROGRAMS BECOME HOMOGRAPHS BECAUSE OF SUBSTITUTION.
94 TYPE CHILD1
IS PRIVATE;
97 TYPE PARENT
IS (E1
, E2
, E3
);
98 PROCEDURE HP
(P1
: PARENT
; P2
: CHILD1
);
99 PROCEDURE HP
(P3
: CHILD1
; P4
: PARENT
);
101 FUNCTION HF
(P1
: CHILD1
; P2
: PARENT
)
103 FUNCTION HF
(P3
: PARENT
; P4
: CHILD1
)
107 TYPE CHILD1
IS NEW IN_PACK2
.PARENT
;
110 PACKAGE BODY PACK2
IS
111 TYPE CHILD2
IS NEW CHILD1
;
114 TYPE CHILD3
IS NEW CHILD1
;
118 TYPE CHILD4
IS NEW CHILD1
;
123 PACKAGE BODY IN_PACK2
IS
124 PROCEDURE HP
(P1
: PARENT
; P2
: CHILD1
) IS
129 PROCEDURE HP
(P3
: CHILD1
; P4
: PARENT
) IS
134 FUNCTION HF
(P1
: CHILD1
; P2
: PARENT
)
140 FUNCTION HF
(P3
: PARENT
; P4
: CHILD1
)
148 TYPE CHILD5
IS NEW CHILD1
;
158 -- PARENT TYPE IN GENERIC INSTANCE HAS DERIVABLE HOMOGRAPHS.
161 NEW G_PACK
(BOOLEAN, BOOLEAN);
163 TYPE CHILD1
IS NEW INSTANCE1
.PARENT
;
167 NEW G_PACK
(CHARACTER, CHARACTER);
169 TYPE CHILD2
IS NEW INSTANCE2
.PARENT
;
170 TYPE CHILD3
IS PRIVATE;
173 NEW G_PACK
(ENUM
, ENUM
);
175 TYPE CHILD3
IS NEW INSTANCE3
.PARENT
;
180 NEW G_PACK
(BOOLEAN, BOOLEAN);
182 TYPE CHILD4
IS NEW INSTANCE4
.PARENT
;
187 PACKAGE BODY PACK1
IS
189 NEW G_PACK
(ENUM
, ENUM
);
191 TYPE CHILD5
IS NEW INSTANCE5
.PARENT
;