1-- C85007A.ADA
2
3--                             Grant of Unlimited Rights
4--
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
14--     to do so.
15--
16--                                    DISCLAIMER
17--
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.
24--*
25-- CHECK THAT THE DISCRIMINANTS OF A RENAMED OUT FORMAL PARAMETER, AS
26-- WELL AS THE DISCRIMINANTS OF THE RENAMED SUBCOMPONENTS OF AN OUT
27-- FORMAL PARAMETER, MAY BE READ INSIDE THE PROCEDURE.
28
29-- SPS 02/17/84 (SEE C62006A-B.ADA)
30-- EG  02/21/84
31
32WITH REPORT; USE REPORT;
33
34PROCEDURE C85007A IS
35
36BEGIN
37
38     TEST ("C85007A", "CHECK THAT THE DISCRIMINANTS OF A RENAMED OUT " &
39           "FORMAL PARAMETER CAN BE READ INSIDE THE PROCEDURE");
40
41     DECLARE
42
43          TYPE R1 (D1 : INTEGER) IS RECORD
44               NULL;
45          END RECORD;
46
47          TYPE R2 (D2 : POSITIVE) IS RECORD
48               C : R1 (2);
49          END RECORD;
50
51          SUBTYPE R1_2 IS R1(2);
52
53          R : R2 (5);
54
55          PROCEDURE PROC (REC : OUT R2) IS
56
57               REC1 : R2   RENAMES REC;
58               REC2 : R1_2 RENAMES REC.C;
59               REC3 : R2   RENAMES REC1;
60               REC4 : R1_2 RENAMES REC1.C;
61               REC5 : R1_2 RENAMES REC4;
62
63          BEGIN
64
65               IF REC1.D2 /= 5 THEN
66                    FAILED ("UNABLE TO CORRECTLY READ DISCRIMINANT OF" &
67                            " A RENAMED OUT PARAMETER");
68               END IF;
69
70               IF REC1.C.D1 /= 2 THEN
71                    FAILED ("UNABLE TO CORRECTLY READ DISCRIMINANT " &
72                            "OF THE SUBCOMPONENT OF A RENAMED OUT "  &
73                            "PARAMETER");
74               END IF;
75
76               IF REC2.D1 /= 2 THEN
77                    FAILED ("UNABLE TO CORRECTLY READ DISCRIMINANT " &
78                            "OF A RENAMED SUBCOMPONENT OF AN OUT "   &
79                            "PARAMETER");
80               END IF;
81
82               IF REC3.D2 /= 5 THEN
83                    FAILED ("UNABLE TO CORRECTLY READ DISCRIMINANT OF" &
84                            " A RENAME OF A RENAMED OUT PARAMETER");
85               END IF;
86
87               IF REC3.C.D1 /= 2 THEN
88                    FAILED ("UNABLE TO CORRECTLY READ DISCRIMINANT " &
89                            "OF THE SUBCOMPONENT OF A RENAME OF A "  &
90                            "RENAMED OUT PARAMETER");
91               END IF;
92
93               IF REC4.D1 /= 2 THEN
94                    FAILED ("UNABLE TO CORRECTLY READ DISCRIMINANT " &
95                            "OF A RENAMED SUBCOMPONENT OF A RENAMED" &
96                            " OUT PARAMETER");
97               END IF;
98
99               IF REC5.D1 /= 2 THEN
100                    FAILED ("UNABLE TO CORRECTLY READ DISCRIMINANT " &
101                            "OF A RENAME OF RENAMED SUBCOMPONENT OF" &
102                            " A RENAMED OUT PARAMETER");
103               END IF;
104
105          END PROC;
106
107     BEGIN
108
109          PROC (R);
110
111     END;
112
113     RESULT;
114
115END C85007A;
116