1-- C84005A.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-- OBJECTIVE:
26--     CHECK THAT TWO POTENTIALLY VISIBLE HOMOGRAPHS OF A SUBPROGRAM
27--     IDENTIFIER CAN BE MADE DIRECTLY VISIBLE BY A USE CLAUSE, AND THAT
28--     WHEN DIFFERENT FORMAL PARAMETER NAMES ARE USED THE SUBPROGRAMS
29--     ARE REFERENCED CORRECTLY.
30
31-- HISTORY:
32--     JET 03/10/88  CREATED ORIGINAL TEST.
33
34WITH REPORT; USE REPORT;
35PROCEDURE C84005A IS
36
37     PACKAGE PACK1 IS
38          FUNCTION FUNK(A : INTEGER) RETURN INTEGER;
39          PROCEDURE PROK(A : INTEGER; B : OUT INTEGER);
40     END PACK1;
41
42     PACKAGE PACK2 IS
43          FUNCTION FUNK(X : INTEGER) RETURN INTEGER;
44          PROCEDURE PROK(X : INTEGER; Y : OUT INTEGER);
45     END PACK2;
46
47     USE PACK1, PACK2;
48     VAR1, VAR2 : INTEGER;
49
50     PACKAGE BODY PACK1 IS
51          FUNCTION FUNK(A : INTEGER) RETURN INTEGER IS
52          BEGIN
53               IF EQUAL (A,A) THEN
54                    RETURN (1);
55               ELSE
56                    RETURN (0);
57               END IF;
58          END FUNK;
59
60          PROCEDURE PROK(A : INTEGER; B : OUT INTEGER) IS
61          BEGIN
62               IF EQUAL (A,A) THEN
63                    B := 1;
64               ELSE
65                    B := 0;
66               END IF;
67          END PROK;
68     END PACK1;
69
70     PACKAGE BODY PACK2 IS
71          FUNCTION FUNK(X : INTEGER) RETURN INTEGER IS
72          BEGIN
73               IF EQUAL (X,X) THEN
74                    RETURN (2);
75               ELSE
76                    RETURN (0);
77               END IF;
78          END FUNK;
79
80          PROCEDURE PROK(X : INTEGER; Y : OUT INTEGER) IS
81          BEGIN
82               IF EQUAL (X,X) THEN
83                    Y := 2;
84               ELSE
85                    Y := 0;
86               END IF;
87          END PROK;
88     END PACK2;
89
90BEGIN
91     TEST ("C84005A", "CHECK THAT TWO POTENTIALLY VISIBLE HOMOGRAPHS " &
92                      "OF A SUBPROGRAM IDENTIFIER CAN BE MADE " &
93                      "DIRECTLY VISIBLE BY A USE CLAUSE, AND THAT " &
94                      "WHEN DIFFERENT FORMAL PARAMETER NAMES ARE " &
95                      "USED, THE SUBPROGRAMS ARE REFERENCED CORRECTLY");
96
97     IF FUNK(A => 3) /= IDENT_INT(1) THEN
98          FAILED("PACK1.FUNK RETURNS INCORRECT RESULT");
99     END IF;
100
101     IF FUNK(X => 3) /= IDENT_INT(2) THEN
102          FAILED("PACK2.FUNK RETURNS INCORRECT RESULT");
103     END IF;
104
105     PROK(A => 3, B => VAR1);
106     PROK(X => 3, Y => VAR2);
107
108     IF VAR1 /= IDENT_INT(1) THEN
109          FAILED("PACK1.PROK RETURNS INCORRECT RESULT");
110     END IF;
111
112     IF VAR2 /= IDENT_INT(2) THEN
113          FAILED("PACK2.PROK RETURNS INCORRECT RESULT");
114     END IF;
115
116     RESULT;
117END C84005A;
118