1-- CA5004B2M.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 PRAGMA ELABORATE IS ACCEPTED AND OBEYED EVEN IF THE UNIT
26--    NAMED IN THE PRAGMA DOES NOT YET HAVE A BODY IN THE LIBRARY OR IF
27--    ITS BODY IS OBSOLETE.
28-- CHECK THAT MORE THAN ONE NAME IS ALLOWED IN A PRAGMA ELABORATE.
29--
30-- SPECIAL INSTRUCTIONS:
31--     1. Compile CA5004B0.ADA
32--     2. Compile CA5004B1.ADA
33--     3. Compile CA5004B2M.ADA
34--     4. Bind/Link main unit CA5004B2M
35--     5. Execute the resulting file
36--
37-- TEST FILES:
38--        CA5004B0.ADA
39--        CA5004B1.ADA
40--     => CA5004B2M.ADA
41
42-- BHS 8/03/84
43-- JRK 9/20/84
44-- PWN 11/30/94 ADDED A PROCEDURE TO KEEP PACKAGE BODIES LEGAL.
45-- PWN 05/31/96 Split test into files without duplicate unit names.
46-- TMB 11/20/96 ADDED PROCEDURE DECL TO CA5004B0 TO INSURE IT MAKES
47--               THE OLD BODY OBSOLETE
48-- TMB 12/2/96  MADE NAME OF MAIN PROCEDURE SAME AS FILE NAME
49-- RLB 03/11/99 Split first test file in order to prevent good units
50--              from being made obsolete.
51
52-------------------------------------------------------------
53
54PACKAGE CA5004B0 IS          -- OLD BODY NOW OBSOLETE.
55
56     I : INTEGER := 2;
57     B : BOOLEAN := TRUE;
58
59     FUNCTION F RETURN BOOLEAN;
60     PROCEDURE P;
61
62END CA5004B0;
63
64---------------------------------------------------------
65
66PACKAGE CA5004B1 IS
67
68     J : INTEGER := 3;
69
70     PROCEDURE P (X : INTEGER);
71
72END CA5004B1;                -- NO BODY GIVEN YET.
73
74----------------------------------------------------------
75
76WITH HEADER; USE HEADER;
77WITH CA5004B0, CA5004B1;
78USE CA5004B0, CA5004B1;
79PRAGMA ELABORATE (HEADER, CA5004B0, CA5004B1);
80PACKAGE CA5004B2 IS
81
82     K1 : INTEGER := CA5004B0.I;
83     K2 : INTEGER := CA5004B1.J;
84
85     PROCEDURE REQUIRE_BODY;
86
87END CA5004B2;
88
89
90PACKAGE BODY CA5004B2 IS
91
92     PROCEDURE REQUIRE_BODY IS
93     BEGIN
94       NULL;
95     END;
96
97BEGIN
98
99     IF K1 /= 4 THEN
100          WRONG ("OBSOLETE BODY");
101     END IF;
102
103     IF K2 /= 5 THEN
104          WRONG ("NO BODY");
105     END IF;
106
107END CA5004B2;
108
109--------------------------------------------------
110
111WITH REPORT, CA5004B2;
112USE REPORT, CA5004B2;
113PROCEDURE CA5004B2M IS
114BEGIN
115
116     RESULT;
117
118END CA5004B2M;
119
120----------------------------------------------------
121
122PACKAGE BODY CA5004B0 IS
123
124     FUNCTION F RETURN BOOLEAN IS
125     BEGIN
126          RETURN FALSE;
127     END F;
128
129     PROCEDURE P IS
130     BEGIN
131        RETURN;
132     END P;
133
134BEGIN
135
136     I := 4;
137
138END CA5004B0;
139
140---------------------------------------------------
141
142PACKAGE BODY CA5004B1 IS
143
144     PROCEDURE P (X : INTEGER) IS
145     BEGIN
146          NULL;
147     END P;
148
149BEGIN
150
151     J := 5;
152
153END CA5004B1;
154