comparison gcc/testsuite/ada/acats/tests/c8/c84002a.ada @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 -- C84002A.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:
26
27 -- A) IF A USE CLAUSE NAMES AN ENCLOSING PACKAGE, THE USE CLAUSE
28 -- HAS NO EFFECT.
29
30 -- B) IF A DECLARATION IS DIRECTLY VISIBLE PRIOR TO THE OCCURRENCE
31 -- OF A USE CLAUSE, AND IS NOT IN THE SET OF POTENTIALLY
32 -- VISIBLE DECLARATIONS, IT REMAINS DIRECTLY VISIBLE AFTER THE
33 -- USE CLAUSE.
34
35 -- C) IF A HOMOGRAPH FOR A POTENTIALLY VISIBLE SUBPROGRAM OR
36 -- OBJECT IS DECLARED AFTER A USE CLAUSE, THE POTENTIALLY
37 -- VISIBLE ENTITY IS NO LONGER VISIBLE.
38
39 -- EG 02/16/84
40
41 WITH REPORT;
42
43 PROCEDURE C84002A IS
44
45 USE REPORT;
46
47 BEGIN
48
49 TEST("C84002A","CHECK THAT DECLARATIONS DIRECTLY VISIBLE PRIOR " &
50 "TO THE USE CLAUSE REMAIN VISIBLE AFTERWARDS");
51
52 BEGIN
53
54 COMMENT ("CASE A : CHECK THAT IF A USE CLAUSE NAMES AN " &
55 "ENCLOSING PACKAGE, THE USE CLAUSE HAS NO EFFECT");
56
57 CASE_A : DECLARE
58
59 PACKAGE P1 IS
60 X : FLOAT := 1.5;
61 END P1;
62 PACKAGE P2 IS
63 X : INTEGER := 15;
64
65 USE P1;
66 USE P2;
67
68 A : INTEGER := X;
69 END P2;
70 PACKAGE BODY P1 IS
71 BEGIN
72 NULL;
73 END P1;
74 PACKAGE BODY P2 IS
75 BEGIN
76 IF X /= IDENT_INT(15) OR X /= P2.X OR
77 A /= P2.X THEN
78 FAILED ("CASE A : USE CLAUSE HAS AN EFFECT");
79 END IF;
80 END P2;
81
82 BEGIN
83
84 NULL;
85
86 END CASE_A;
87
88 COMMENT ("CASE B : CHECK THAT IF A DECLARATION IS DIRECTLY " &
89 "VISIBLE PRIOR TO THE OCCURRENCE OF A USE CLAUSE, " &
90 "AND IS NOT IN THE SET OF POTENTIALLY VISIBLE " &
91 "DECLARATIONS, IT REMAINS DIRECTLY VISIBLE");
92
93 CASE_B : BEGIN
94
95 CASE_B1 : DECLARE
96
97 PACKAGE P1 IS
98 Y : FLOAT := 1.5;
99 END P1;
100 PACKAGE P2 IS
101 X : INTEGER := 15;
102
103 USE P1;
104
105 A : INTEGER := X;
106 END P2;
107
108 PACKAGE BODY P1 IS
109 BEGIN
110 NULL;
111 END P1;
112 PACKAGE BODY P2 IS
113 BEGIN
114 IF X /= IDENT_INT(15) OR X /= P2.X OR
115 A /= P2.X THEN
116 FAILED ("CASE B1 : DECLARATION NO " &
117 "LONGER DIRECTLY VISIBLE");
118 END IF;
119 END P2;
120
121 BEGIN
122
123 NULL;
124
125 END CASE_B1;
126
127 CASE_B2 : DECLARE
128
129 PROCEDURE PROC1 (X : STRING) IS
130 BEGIN
131 NULL;
132 END PROC1;
133
134 PACKAGE P1 IS
135 PROCEDURE PROC1 (X : STRING);
136 END P1;
137 PACKAGE BODY P1 IS
138 PROCEDURE PROC1 (X : STRING) IS
139 BEGIN
140 FAILED ("CASE B2 : WRONG PROCEDURE " &
141 "DIRECTLY VISIBLE");
142 END PROC1;
143 END P1;
144
145 USE P1;
146
147 BEGIN
148
149 PROC1 ("ABC");
150
151 END CASE_B2;
152
153 CASE_B3 : DECLARE
154
155 PROCEDURE PROC1 (X : STRING) IS
156 BEGIN
157 NULL;
158 END PROC1;
159
160 PACKAGE P1 IS
161 PROCEDURE PROC1 (Y : STRING);
162 END P1;
163 PACKAGE BODY P1 IS
164 PROCEDURE PROC1 (Y : STRING) IS
165 BEGIN
166 FAILED ("CASE B3 : WRONG PROCEDURE " &
167 "DIRECTLY VISIBLE");
168 END PROC1;
169 END P1;
170
171 USE P1;
172
173 BEGIN
174
175 PROC1 ("ABC");
176
177 END CASE_B3;
178
179 END CASE_B;
180
181 COMMENT ("CASE C : IF A HOMOGRAPH FOR A POTENTIALLY " &
182 "VISIBLE SUBPROGRAM OR OBJECT IS DECLARED AFTER " &
183 "A USE CLAUSE, THE POTENTIALLY VISIBLE ENTITY " &
184 "IS NO LONGER VISIBLE");
185
186 CASE_C : BEGIN
187
188 CASE_C1 : DECLARE
189
190 PACKAGE P1 IS
191 PROCEDURE PROC1 (X : FLOAT);
192 END P1;
193
194 USE P1;
195
196 PACKAGE BODY P1 IS
197 PROCEDURE PROC1 (X : FLOAT) IS
198 BEGIN
199 IF X = -1.5 THEN
200 FAILED ("CASE C1 : WRONG PROCEDURE" &
201 " CALLED (A)");
202 ELSIF X /= 1.5 THEN
203 FAILED ("CASE C1 : WRONG VALUE " &
204 "PASSED (A)");
205 END IF;
206 END PROC1;
207 BEGIN
208 NULL;
209 END P1;
210
211 PROCEDURE PROC2 IS
212 BEGIN
213 PROC1 (1.5);
214 END PROC2;
215
216 PROCEDURE PROC1 (X : FLOAT) IS
217 BEGIN
218 IF X = 1.5 THEN
219 FAILED ("CASE C1 : WRONG PROCEDURE" &
220 " CALLED (B)");
221 ELSIF X /= -1.5 THEN
222 FAILED ("CASE C1 : WRONG VALUE " &
223 "PASSED (B)");
224 END IF;
225 END PROC1;
226
227 BEGIN
228
229 PROC2;
230 PROC1 (-1.5);
231
232 END CASE_C1;
233
234 CASE_C2 : DECLARE
235
236 PACKAGE P1 IS
237 X : INTEGER := 15;
238 END P1;
239
240 USE P1;
241
242 A : INTEGER := X;
243
244 X : BOOLEAN := TRUE;
245
246 B : BOOLEAN := X;
247
248 BEGIN
249
250 IF A /= IDENT_INT(15) THEN
251 FAILED ("CASE C2 : VARIABLE A DOES NOT " &
252 "CONTAIN THE CORRECT VALUE");
253 END IF;
254 IF B /= IDENT_BOOL(TRUE) THEN
255 FAILED ("CASE C2 : VARIABLE B DOES NOT " &
256 "CONTAIN THE CORRECT VALUE");
257 END IF;
258
259 END CASE_C2;
260
261 END CASE_C;
262
263 END;
264
265 RESULT;
266
267 END C84002A;