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 AN ACTUAL GENERIC IN OUT PARAMETER CAN BE:
27 -- A) ANY SUBCOMPONENT THAT DOES NOT DEPEND ON A DISCRIMINANT,
28 -- EVEN IF THE ENCLOSING VARIABLE IS UNCONSTRAINED;
29 -- B) ANY SUBCOMPONENT OF AN UNCONSTAINED VARIABLE OF A
30 -- RECORD TYPE IF THE DISCRIMINANTS OF THE
31 -- VARIABLE DO NOT HAVE DEFAULTS AND THE VARIABLE IS NOT
32 -- A GENERIC FORMAL IN OUT PARAMETER;
33 -- C) ANY COMPONENT OF AN OBJECT DESIGNATED BY AN ACCESS
37 -- RJW 11/07/88 CREATED ORIGINAL TEST.
39 WITH REPORT
; USE REPORT
;
42 SUBTYPE INT
IS INTEGER RANGE 0 .. 10;
44 TYPE REC
(D
: INT
:= 0) IS RECORD
52 TYPE AR_REC
IS ARRAY (1 .. 10) OF REC
;
58 TYPE A_STRING
IS ACCESS STRING;
59 TYPE A_REC
IS ACCESS REC
;
60 TYPE A_AR_REC
IS ACCESS AR_REC
;
61 TYPE A_R_REC
IS ACCESS R_REC
;
63 TYPE DIS
(L
: INT
:= 1) IS RECORD
64 S
: STRING (1 .. L
) := "A";
66 AS
: A_STRING
(1 .. L
) := NEW STRING (1 .. L
);
67 AR
: A_REC
(L
) := NEW REC
(1);
69 ARU
: A_REC
:= NEW REC
;
72 AC_AR
: A_AR_REC
:= NEW AR_REC
;
73 AC_R
: A_R_REC
:= NEW R_REC
;
76 TYPE A_DIS
IS ACCESS DIS
;
77 AD
: A_DIS
:= NEW DIS
;
79 TYPE DIS2
(L
: INT
) IS RECORD
82 AS
: A_STRING
(1 .. L
);
88 SUBTYPE REC3
IS REC
(3);
92 PACKAGE PREC3
IS END PREC3
;
94 SUBTYPE REC0
IS REC
(0);
98 PACKAGE PREC0
IS END PREC0
;
101 GINT
: IN OUT INTEGER;
102 PACKAGE PINT
IS END PINT
;
105 GA_REC
: IN OUT A_REC
;
106 PACKAGE PA_REC
IS END PA_REC
;
109 GAR_REC
: IN OUT AR_REC
;
110 PACKAGE PAR_REC
IS END PAR_REC
;
113 GR_REC
: IN OUT R_REC
;
114 PACKAGE PR_REC
IS END PR_REC
;
117 GA_AR_REC
: IN OUT A_AR_REC
;
118 PACKAGE PA_AR_REC
IS END PA_AR_REC
;
121 GA_R_REC
: IN OUT A_R_REC
;
122 PACKAGE PA_R_REC
IS END PA_R_REC
;
124 TYPE BUFFER
(SIZE
: INT
) IS RECORD
126 VAL
: STRING (1 .. SIZE
);
129 SUBTYPE BUFF_5
IS BUFFER
(5);
132 Y
: IN OUT CHARACTER;
133 PACKAGE P_CHAR
IS END P_CHAR
;
135 SUBTYPE STRING5
IS STRING (1 .. 5);
138 PACKAGE P_STRING
IS END P_STRING
;
141 GA_STRING
: A_STRING
;
142 PACKAGE P_A_STRING
IS END P_A_STRING
;
147 RX
: BUFF_5
RENAMES X
;
150 Z
: BUFFER
(1) := (SIZE
=> 1, POS
=>82, VAL
=>"R");
152 TEST
("AC3106A", "CHECK THE PERMITTED FORMS OF AN ACTUAL " &
153 "GENERIC IN OUT PARAMETER");
156 PACKAGE NPINT3
IS NEW PINT
(X
.RC
.A
);
157 PACKAGE NPINT4
IS NEW PINT
(X
.RC
.V
);
158 PACKAGE NPREC3
IS NEW PREC3
(X
.RC
);
159 PACKAGE NPA_REC
IS NEW PA_REC
(X
.ARU
);
160 PACKAGE NPINT5
IS NEW PINT
(X
.ARU
.A
);
161 PACKAGE NPINT6
IS NEW PINT
(X
.ARU
.V
);
162 PACKAGE NPAR_REC
IS NEW PAR_REC
(X
.V_AR
);
163 PACKAGE NPREC01
IS NEW PREC0
(X
.V_AR
(1));
164 PACKAGE NPR_REC
IS NEW PR_REC
(X
.V_R
);
165 PACKAGE NPREC02
IS NEW PREC0
(X
.V_R
.E
);
166 PACKAGE NPINT7
IS NEW PINT
(X
.V_R
.E
.A
);
168 PACKAGE NP_BUFF
IS NEW P_BUFF
(Z
);
171 PACKAGE NP_CHAR3
IS NEW P_CHAR
(RX
.VAL
(1));
173 PROCEDURE PROC
(X
: IN OUT BUFFER
) IS
174 PACKAGE NP_CHAR4
IS NEW P_CHAR
(X
.VAL
(1));
183 PROCEDURE PROC
(Y
: IN OUT DIS2
) IS
184 PACKAGE NP_STRING
IS NEW P_STRING
(Y
.S
);
185 PACKAGE NP_CHAR
IS NEW P_CHAR
(Y
.S
(1));
186 PACKAGE NP_A_STRING
IS NEW P_A_STRING
(Y
.AS
);
187 PACKAGE NP_CHAR2
IS NEW P_CHAR
(Y
.AS
(1));
188 PACKAGE NPINT3
IS NEW PINT
(Y
.R
.A
);
189 PACKAGE NPINT4
IS NEW PINT
(Y
.R
.V
);
190 PACKAGE NPREC3
IS NEW PREC3
(Y
.R
);
191 PACKAGE NPA_REC
IS NEW PA_REC
(Y
.AR
);
192 PACKAGE NPINT5
IS NEW PINT
(Y
.AR
.A
);
193 PACKAGE NPINT6
IS NEW PINT
(Y
.AR
.V
);
202 PACKAGE NP_CHAR
IS NEW P_CHAR
(AD
.S
(1));
203 PACKAGE NP_A_STRING
IS NEW P_A_STRING
(AD
.AS
);
204 PACKAGE NP_CHAR2
IS NEW P_CHAR
(AD
.AS
(1));
205 PACKAGE NPINT3
IS NEW PINT
(AD
.R
.A
);
206 PACKAGE NPINT4
IS NEW PINT
(AD
.R
.V
);
207 PACKAGE NPREC3
IS NEW PREC3
(AD
.R
);
208 PACKAGE NPA_REC
IS NEW PA_REC
(AD
.AR
);
209 PACKAGE NPINT5
IS NEW PINT
(AD
.AR
.A
);
210 PACKAGE NPINT6
IS NEW PINT
(AD
.AR
.V
);