annotate gcc/testsuite/ada/acats/tests/c3/c34005p.ada @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 -- C34005P.ADA
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 -- Grant of Unlimited Rights
kono
parents:
diff changeset
4 --
kono
parents:
diff changeset
5 -- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
kono
parents:
diff changeset
6 -- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
kono
parents:
diff changeset
7 -- unlimited rights in the software and documentation contained herein.
kono
parents:
diff changeset
8 -- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
kono
parents:
diff changeset
9 -- this public release, the Government intends to confer upon all
kono
parents:
diff changeset
10 -- recipients unlimited rights equal to those held by the Government.
kono
parents:
diff changeset
11 -- These rights include rights to use, duplicate, release or disclose the
kono
parents:
diff changeset
12 -- released technical data and computer software in whole or in part, in
kono
parents:
diff changeset
13 -- any manner and for any purpose whatsoever, and to have or permit others
kono
parents:
diff changeset
14 -- to do so.
kono
parents:
diff changeset
15 --
kono
parents:
diff changeset
16 -- DISCLAIMER
kono
parents:
diff changeset
17 --
kono
parents:
diff changeset
18 -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
kono
parents:
diff changeset
19 -- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
kono
parents:
diff changeset
20 -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
kono
parents:
diff changeset
21 -- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
kono
parents:
diff changeset
22 -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
kono
parents:
diff changeset
23 -- PARTICULAR PURPOSE OF SAID MATERIAL.
kono
parents:
diff changeset
24 --*
kono
parents:
diff changeset
25 -- OBJECTIVE:
kono
parents:
diff changeset
26 -- CHECK THAT THE REQUIRED PREDEFINED OPERATIONS ARE DECLARED
kono
parents:
diff changeset
27 -- (IMPLICITLY) FOR DERIVED ONE-DIMENSIONAL ARRAY TYPES WHOSE
kono
parents:
diff changeset
28 -- COMPONENT TYPE IS A LIMITED TYPE.
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 -- HISTORY:
kono
parents:
diff changeset
31 -- JRK 08/17/87 CREATED ORIGINAL TEST.
kono
parents:
diff changeset
32 -- VCL 07/01/88 MODIFIED THE STATEMENTS INVOLVING THE 'SIZE
kono
parents:
diff changeset
33 -- ATTRIBUTE TO REMOVE ANY ASSUMPTIONS ABOUT THE
kono
parents:
diff changeset
34 -- SIZES. ADDED EXCEPTION HANDLERS TO CATCH INCORRECT
kono
parents:
diff changeset
35 -- TYPE CONVERSIONS TO DERIVED SUBTYPES.
kono
parents:
diff changeset
36 -- PWN 11/30/94 REMOVED 'BASE USE ILLEGAL IN ADA 9X.
kono
parents:
diff changeset
37 -- RLB 10/03/02 REMOVED ILLEGAL (BY AI-246) TYPE CONVERSIONS AND
kono
parents:
diff changeset
38 -- SUPPORTING CODE.
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 WITH SYSTEM; USE SYSTEM;
kono
parents:
diff changeset
41 WITH REPORT; USE REPORT;
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 PROCEDURE C34005P IS
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 PACKAGE PKG_L IS
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 TYPE LP IS LIMITED PRIVATE;
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 FUNCTION CREATE (X : INTEGER) RETURN LP;
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 FUNCTION VALUE (X : LP) RETURN INTEGER;
kono
parents:
diff changeset
52
kono
parents:
diff changeset
53 FUNCTION EQUAL (X, Y : LP) RETURN BOOLEAN;
kono
parents:
diff changeset
54
kono
parents:
diff changeset
55 PROCEDURE ASSIGN (X : OUT LP; Y : LP);
kono
parents:
diff changeset
56
kono
parents:
diff changeset
57 C1 : CONSTANT LP;
kono
parents:
diff changeset
58 C2 : CONSTANT LP;
kono
parents:
diff changeset
59 C3 : CONSTANT LP;
kono
parents:
diff changeset
60 C4 : CONSTANT LP;
kono
parents:
diff changeset
61 C5 : CONSTANT LP;
kono
parents:
diff changeset
62 C6 : CONSTANT LP;
kono
parents:
diff changeset
63
kono
parents:
diff changeset
64 PRIVATE
kono
parents:
diff changeset
65
kono
parents:
diff changeset
66 TYPE LP IS NEW INTEGER;
kono
parents:
diff changeset
67
kono
parents:
diff changeset
68 C1 : CONSTANT LP := 1;
kono
parents:
diff changeset
69 C2 : CONSTANT LP := 2;
kono
parents:
diff changeset
70 C3 : CONSTANT LP := 3;
kono
parents:
diff changeset
71 C4 : CONSTANT LP := 4;
kono
parents:
diff changeset
72 C5 : CONSTANT LP := 5;
kono
parents:
diff changeset
73 C6 : CONSTANT LP := 6;
kono
parents:
diff changeset
74
kono
parents:
diff changeset
75 END PKG_L;
kono
parents:
diff changeset
76
kono
parents:
diff changeset
77 USE PKG_L;
kono
parents:
diff changeset
78
kono
parents:
diff changeset
79 SUBTYPE COMPONENT IS LP;
kono
parents:
diff changeset
80
kono
parents:
diff changeset
81 PACKAGE PKG_P IS
kono
parents:
diff changeset
82
kono
parents:
diff changeset
83 FIRST : CONSTANT := 0;
kono
parents:
diff changeset
84 LAST : CONSTANT := 100;
kono
parents:
diff changeset
85
kono
parents:
diff changeset
86 SUBTYPE INDEX IS INTEGER RANGE FIRST .. LAST;
kono
parents:
diff changeset
87
kono
parents:
diff changeset
88 TYPE PARENT IS ARRAY (INDEX RANGE <>) OF COMPONENT;
kono
parents:
diff changeset
89
kono
parents:
diff changeset
90 FUNCTION CREATE ( F, L : INDEX;
kono
parents:
diff changeset
91 C : COMPONENT;
kono
parents:
diff changeset
92 DUMMY : PARENT -- TO RESOLVE OVERLOADING.
kono
parents:
diff changeset
93 ) RETURN PARENT;
kono
parents:
diff changeset
94
kono
parents:
diff changeset
95 FUNCTION EQUAL (X, Y : PARENT) RETURN BOOLEAN;
kono
parents:
diff changeset
96
kono
parents:
diff changeset
97 FUNCTION AGGR (X, Y : COMPONENT) RETURN PARENT;
kono
parents:
diff changeset
98
kono
parents:
diff changeset
99 FUNCTION AGGR (X, Y, Z : COMPONENT) RETURN PARENT;
kono
parents:
diff changeset
100
kono
parents:
diff changeset
101 END PKG_P;
kono
parents:
diff changeset
102
kono
parents:
diff changeset
103 USE PKG_P;
kono
parents:
diff changeset
104
kono
parents:
diff changeset
105 TYPE T IS NEW PARENT (IDENT_INT (5) .. IDENT_INT (7));
kono
parents:
diff changeset
106
kono
parents:
diff changeset
107 X : T;
kono
parents:
diff changeset
108 W : PARENT (5 .. 7);
kono
parents:
diff changeset
109 C : COMPONENT;
kono
parents:
diff changeset
110 B : BOOLEAN := FALSE;
kono
parents:
diff changeset
111 N : CONSTANT := 1;
kono
parents:
diff changeset
112
kono
parents:
diff changeset
113 PROCEDURE A (X : ADDRESS) IS
kono
parents:
diff changeset
114 BEGIN
kono
parents:
diff changeset
115 B := IDENT_BOOL (TRUE);
kono
parents:
diff changeset
116 END A;
kono
parents:
diff changeset
117
kono
parents:
diff changeset
118 FUNCTION V RETURN T IS
kono
parents:
diff changeset
119 RESULT : T;
kono
parents:
diff changeset
120 BEGIN
kono
parents:
diff changeset
121 FOR I IN RESULT'RANGE LOOP
kono
parents:
diff changeset
122 ASSIGN (RESULT (I), C);
kono
parents:
diff changeset
123 END LOOP;
kono
parents:
diff changeset
124 RETURN RESULT;
kono
parents:
diff changeset
125 END V;
kono
parents:
diff changeset
126
kono
parents:
diff changeset
127 PACKAGE BODY PKG_L IS
kono
parents:
diff changeset
128
kono
parents:
diff changeset
129 FUNCTION CREATE (X : INTEGER) RETURN LP IS
kono
parents:
diff changeset
130 BEGIN
kono
parents:
diff changeset
131 RETURN LP (IDENT_INT (X));
kono
parents:
diff changeset
132 END CREATE;
kono
parents:
diff changeset
133
kono
parents:
diff changeset
134 FUNCTION VALUE (X : LP) RETURN INTEGER IS
kono
parents:
diff changeset
135 BEGIN
kono
parents:
diff changeset
136 RETURN INTEGER (X);
kono
parents:
diff changeset
137 END VALUE;
kono
parents:
diff changeset
138
kono
parents:
diff changeset
139 FUNCTION EQUAL (X, Y : LP) RETURN BOOLEAN IS
kono
parents:
diff changeset
140 BEGIN
kono
parents:
diff changeset
141 RETURN X = Y;
kono
parents:
diff changeset
142 END EQUAL;
kono
parents:
diff changeset
143
kono
parents:
diff changeset
144 PROCEDURE ASSIGN (X : OUT LP; Y : LP) IS
kono
parents:
diff changeset
145 BEGIN
kono
parents:
diff changeset
146 X := Y;
kono
parents:
diff changeset
147 END ASSIGN;
kono
parents:
diff changeset
148
kono
parents:
diff changeset
149 END PKG_L;
kono
parents:
diff changeset
150
kono
parents:
diff changeset
151 PACKAGE BODY PKG_P IS
kono
parents:
diff changeset
152
kono
parents:
diff changeset
153 FUNCTION CREATE
kono
parents:
diff changeset
154 ( F, L : INDEX;
kono
parents:
diff changeset
155 C : COMPONENT;
kono
parents:
diff changeset
156 DUMMY : PARENT
kono
parents:
diff changeset
157 ) RETURN PARENT
kono
parents:
diff changeset
158 IS
kono
parents:
diff changeset
159 A : PARENT (F .. L);
kono
parents:
diff changeset
160 B : COMPONENT;
kono
parents:
diff changeset
161 BEGIN
kono
parents:
diff changeset
162 ASSIGN (B, C);
kono
parents:
diff changeset
163 FOR I IN F .. L LOOP
kono
parents:
diff changeset
164 ASSIGN (A (I), B);
kono
parents:
diff changeset
165 ASSIGN (B, CREATE (VALUE (B) + 1));
kono
parents:
diff changeset
166 END LOOP;
kono
parents:
diff changeset
167 RETURN A;
kono
parents:
diff changeset
168 END CREATE;
kono
parents:
diff changeset
169
kono
parents:
diff changeset
170 FUNCTION EQUAL (X, Y : PARENT) RETURN BOOLEAN IS
kono
parents:
diff changeset
171 BEGIN
kono
parents:
diff changeset
172 IF X'LENGTH /= Y'LENGTH THEN
kono
parents:
diff changeset
173 RETURN FALSE;
kono
parents:
diff changeset
174 ELSE FOR I IN X'RANGE LOOP
kono
parents:
diff changeset
175 IF NOT EQUAL (X (I),
kono
parents:
diff changeset
176 Y (I - X'FIRST + Y'FIRST)) THEN
kono
parents:
diff changeset
177 RETURN FALSE;
kono
parents:
diff changeset
178 END IF;
kono
parents:
diff changeset
179 END LOOP;
kono
parents:
diff changeset
180 END IF;
kono
parents:
diff changeset
181 RETURN TRUE;
kono
parents:
diff changeset
182 END EQUAL;
kono
parents:
diff changeset
183
kono
parents:
diff changeset
184 FUNCTION AGGR (X, Y : COMPONENT) RETURN PARENT IS
kono
parents:
diff changeset
185 RESULT : PARENT (INDEX'FIRST .. INDEX'FIRST + 1);
kono
parents:
diff changeset
186 BEGIN
kono
parents:
diff changeset
187 ASSIGN (RESULT (INDEX'FIRST ), X);
kono
parents:
diff changeset
188 ASSIGN (RESULT (INDEX'FIRST + 1), Y);
kono
parents:
diff changeset
189 RETURN RESULT;
kono
parents:
diff changeset
190 END AGGR;
kono
parents:
diff changeset
191
kono
parents:
diff changeset
192 FUNCTION AGGR (X, Y, Z : COMPONENT) RETURN PARENT IS
kono
parents:
diff changeset
193 RESULT : PARENT (INDEX'FIRST .. INDEX'FIRST + 2);
kono
parents:
diff changeset
194 BEGIN
kono
parents:
diff changeset
195 ASSIGN (RESULT (INDEX'FIRST ), X);
kono
parents:
diff changeset
196 ASSIGN (RESULT (INDEX'FIRST + 1), Y);
kono
parents:
diff changeset
197 ASSIGN (RESULT (INDEX'FIRST + 2), Z);
kono
parents:
diff changeset
198 RETURN RESULT;
kono
parents:
diff changeset
199 END AGGR;
kono
parents:
diff changeset
200
kono
parents:
diff changeset
201 END PKG_P;
kono
parents:
diff changeset
202
kono
parents:
diff changeset
203 BEGIN
kono
parents:
diff changeset
204 TEST ("C34005P", "CHECK THAT THE REQUIRED PREDEFINED OPERATIONS " &
kono
parents:
diff changeset
205 "ARE DECLARED (IMPLICITLY) FOR DERIVED " &
kono
parents:
diff changeset
206 "ONE-DIMENSIONAL ARRAY TYPES WHOSE COMPONENT " &
kono
parents:
diff changeset
207 "TYPE IS A LIMITED TYPE");
kono
parents:
diff changeset
208
kono
parents:
diff changeset
209 ASSIGN (X (IDENT_INT (5)), CREATE (1));
kono
parents:
diff changeset
210 ASSIGN (X (IDENT_INT (6)), CREATE (2));
kono
parents:
diff changeset
211 ASSIGN (X (IDENT_INT (7)), CREATE (3));
kono
parents:
diff changeset
212
kono
parents:
diff changeset
213 ASSIGN (W (5), CREATE (1));
kono
parents:
diff changeset
214 ASSIGN (W (6), CREATE (2));
kono
parents:
diff changeset
215 ASSIGN (W (7), CREATE (3));
kono
parents:
diff changeset
216
kono
parents:
diff changeset
217 ASSIGN (C, CREATE (2));
kono
parents:
diff changeset
218
kono
parents:
diff changeset
219 IF NOT EQUAL (T'(X), AGGR (C1, C2, C3)) THEN
kono
parents:
diff changeset
220 FAILED ("INCORRECT QUALIFICATION");
kono
parents:
diff changeset
221 END IF;
kono
parents:
diff changeset
222
kono
parents:
diff changeset
223 IF NOT EQUAL (T(X), AGGR (C1, C2, C3)) THEN
kono
parents:
diff changeset
224 FAILED ("INCORRECT SELF CONVERSION");
kono
parents:
diff changeset
225 END IF;
kono
parents:
diff changeset
226
kono
parents:
diff changeset
227 IF NOT EQUAL (T(W), AGGR (C1, C2, C3)) THEN
kono
parents:
diff changeset
228 FAILED ("INCORRECT CONVERSION FROM PARENT");
kono
parents:
diff changeset
229 END IF;
kono
parents:
diff changeset
230
kono
parents:
diff changeset
231 IF NOT EQUAL (PARENT(X), AGGR (C1, C2, C3)) THEN
kono
parents:
diff changeset
232 FAILED ("INCORRECT CONVERSION TO PARENT - 1");
kono
parents:
diff changeset
233 END IF;
kono
parents:
diff changeset
234
kono
parents:
diff changeset
235 BEGIN
kono
parents:
diff changeset
236 IF NOT EQUAL (PARENT(CREATE (2, 3, C4, X)),
kono
parents:
diff changeset
237 AGGR (C4, C5)) THEN
kono
parents:
diff changeset
238 FAILED ("INCORRECT CONVERSION TO PARENT - 2");
kono
parents:
diff changeset
239 END IF;
kono
parents:
diff changeset
240 EXCEPTION
kono
parents:
diff changeset
241 WHEN OTHERS =>
kono
parents:
diff changeset
242 FAILED ("EXCEPTION RAISED WHILE CHECKING BASE TYPE " &
kono
parents:
diff changeset
243 "VALUES OUTSIDE OF THE SUBTYPE T - 1");
kono
parents:
diff changeset
244 END;
kono
parents:
diff changeset
245
kono
parents:
diff changeset
246 IF NOT EQUAL (X(IDENT_INT (5)), C1) THEN
kono
parents:
diff changeset
247 FAILED ("INCORRECT INDEX (VALUE)");
kono
parents:
diff changeset
248 END IF;
kono
parents:
diff changeset
249
kono
parents:
diff changeset
250 BEGIN
kono
parents:
diff changeset
251 IF NOT EQUAL (X(IDENT_INT (6)..IDENT_INT (7)),
kono
parents:
diff changeset
252 AGGR (C2, C3)) OR
kono
parents:
diff changeset
253 NOT EQUAL (CREATE (1, 4, C4, X)(1..3),
kono
parents:
diff changeset
254 AGGR (C4, C5, C6)) THEN
kono
parents:
diff changeset
255 FAILED ("INCORRECT SLICE (VALUE)");
kono
parents:
diff changeset
256 END IF;
kono
parents:
diff changeset
257 EXCEPTION
kono
parents:
diff changeset
258 WHEN OTHERS =>
kono
parents:
diff changeset
259 FAILED ("EXCEPTION RAISED WHILE CHECKING SLICES");
kono
parents:
diff changeset
260 END;
kono
parents:
diff changeset
261
kono
parents:
diff changeset
262 IF NOT (X IN T) OR AGGR (C1, C2) IN T THEN
kono
parents:
diff changeset
263 FAILED ("INCORRECT ""IN""");
kono
parents:
diff changeset
264 END IF;
kono
parents:
diff changeset
265
kono
parents:
diff changeset
266 IF X NOT IN T OR NOT (AGGR (C1, C2) NOT IN T) THEN
kono
parents:
diff changeset
267 FAILED ("INCORRECT ""NOT IN""");
kono
parents:
diff changeset
268 END IF;
kono
parents:
diff changeset
269
kono
parents:
diff changeset
270 B := FALSE;
kono
parents:
diff changeset
271 A (X'ADDRESS);
kono
parents:
diff changeset
272 IF NOT B THEN
kono
parents:
diff changeset
273 FAILED ("INCORRECT 'ADDRESS");
kono
parents:
diff changeset
274 END IF;
kono
parents:
diff changeset
275
kono
parents:
diff changeset
276 IF T'FIRST /= 5 THEN
kono
parents:
diff changeset
277 FAILED ("INCORRECT TYPE'FIRST");
kono
parents:
diff changeset
278 END IF;
kono
parents:
diff changeset
279
kono
parents:
diff changeset
280 IF X'FIRST /= 5 THEN
kono
parents:
diff changeset
281 FAILED ("INCORRECT OBJECT'FIRST");
kono
parents:
diff changeset
282 END IF;
kono
parents:
diff changeset
283
kono
parents:
diff changeset
284 IF V'FIRST /= 5 THEN
kono
parents:
diff changeset
285 FAILED ("INCORRECT VALUE'FIRST");
kono
parents:
diff changeset
286 END IF;
kono
parents:
diff changeset
287
kono
parents:
diff changeset
288 IF T'FIRST (N) /= 5 THEN
kono
parents:
diff changeset
289 FAILED ("INCORRECT TYPE'FIRST (N)");
kono
parents:
diff changeset
290 END IF;
kono
parents:
diff changeset
291
kono
parents:
diff changeset
292 IF X'FIRST (N) /= 5 THEN
kono
parents:
diff changeset
293 FAILED ("INCORRECT OBJECT'FIRST (N)");
kono
parents:
diff changeset
294 END IF;
kono
parents:
diff changeset
295
kono
parents:
diff changeset
296 IF V'FIRST (N) /= 5 THEN
kono
parents:
diff changeset
297 FAILED ("INCORRECT VALUE'FIRST (N)");
kono
parents:
diff changeset
298 END IF;
kono
parents:
diff changeset
299
kono
parents:
diff changeset
300 IF T'LAST /= 7 THEN
kono
parents:
diff changeset
301 FAILED ("INCORRECT TYPE'LAST");
kono
parents:
diff changeset
302 END IF;
kono
parents:
diff changeset
303
kono
parents:
diff changeset
304 IF X'LAST /= 7 THEN
kono
parents:
diff changeset
305 FAILED ("INCORRECT OBJECT'LAST");
kono
parents:
diff changeset
306 END IF;
kono
parents:
diff changeset
307
kono
parents:
diff changeset
308 IF V'LAST /= 7 THEN
kono
parents:
diff changeset
309 FAILED ("INCORRECT VALUE'LAST");
kono
parents:
diff changeset
310 END IF;
kono
parents:
diff changeset
311
kono
parents:
diff changeset
312 IF T'LAST (N) /= 7 THEN
kono
parents:
diff changeset
313 FAILED ("INCORRECT TYPE'LAST (N)");
kono
parents:
diff changeset
314 END IF;
kono
parents:
diff changeset
315
kono
parents:
diff changeset
316 IF X'LAST (N) /= 7 THEN
kono
parents:
diff changeset
317 FAILED ("INCORRECT OBJECT'LAST (N)");
kono
parents:
diff changeset
318 END IF;
kono
parents:
diff changeset
319
kono
parents:
diff changeset
320 IF V'LAST (N) /= 7 THEN
kono
parents:
diff changeset
321 FAILED ("INCORRECT VALUE'LAST (N)");
kono
parents:
diff changeset
322 END IF;
kono
parents:
diff changeset
323
kono
parents:
diff changeset
324 IF T'LENGTH /= 3 THEN
kono
parents:
diff changeset
325 FAILED ("INCORRECT TYPE'LENGTH");
kono
parents:
diff changeset
326 END IF;
kono
parents:
diff changeset
327
kono
parents:
diff changeset
328 IF X'LENGTH /= 3 THEN
kono
parents:
diff changeset
329 FAILED ("INCORRECT OBJECT'LENGTH");
kono
parents:
diff changeset
330 END IF;
kono
parents:
diff changeset
331
kono
parents:
diff changeset
332 IF V'LENGTH /= 3 THEN
kono
parents:
diff changeset
333 FAILED ("INCORRECT VALUE'LENGTH");
kono
parents:
diff changeset
334 END IF;
kono
parents:
diff changeset
335
kono
parents:
diff changeset
336 IF T'LENGTH (N) /= 3 THEN
kono
parents:
diff changeset
337 FAILED ("INCORRECT TYPE'LENGTH (N)");
kono
parents:
diff changeset
338 END IF;
kono
parents:
diff changeset
339
kono
parents:
diff changeset
340 IF X'LENGTH (N) /= 3 THEN
kono
parents:
diff changeset
341 FAILED ("INCORRECT OBJECT'LENGTH (N)");
kono
parents:
diff changeset
342 END IF;
kono
parents:
diff changeset
343
kono
parents:
diff changeset
344 IF V'LENGTH (N) /= 3 THEN
kono
parents:
diff changeset
345 FAILED ("INCORRECT VALUE'LENGTH (N)");
kono
parents:
diff changeset
346 END IF;
kono
parents:
diff changeset
347
kono
parents:
diff changeset
348 DECLARE
kono
parents:
diff changeset
349 Y : PARENT (T'RANGE);
kono
parents:
diff changeset
350 BEGIN
kono
parents:
diff changeset
351 IF Y'FIRST /= 5 OR Y'LAST /= 7 THEN
kono
parents:
diff changeset
352 FAILED ("INCORRECT TYPE'RANGE");
kono
parents:
diff changeset
353 END IF;
kono
parents:
diff changeset
354 END;
kono
parents:
diff changeset
355
kono
parents:
diff changeset
356 DECLARE
kono
parents:
diff changeset
357 Y : PARENT (X'RANGE);
kono
parents:
diff changeset
358 BEGIN
kono
parents:
diff changeset
359 IF Y'FIRST /= 5 OR Y'LAST /= 7 THEN
kono
parents:
diff changeset
360 FAILED ("INCORRECT OBJECT'RANGE");
kono
parents:
diff changeset
361 END IF;
kono
parents:
diff changeset
362 END;
kono
parents:
diff changeset
363
kono
parents:
diff changeset
364 DECLARE
kono
parents:
diff changeset
365 Y : PARENT (V'RANGE);
kono
parents:
diff changeset
366 BEGIN
kono
parents:
diff changeset
367 IF Y'FIRST /= 5 OR Y'LAST /= 7 THEN
kono
parents:
diff changeset
368 FAILED ("INCORRECT VALUE'RANGE");
kono
parents:
diff changeset
369 END IF;
kono
parents:
diff changeset
370 END;
kono
parents:
diff changeset
371
kono
parents:
diff changeset
372 DECLARE
kono
parents:
diff changeset
373 Y : PARENT (T'RANGE (N));
kono
parents:
diff changeset
374 BEGIN
kono
parents:
diff changeset
375 IF Y'FIRST /= 5 OR Y'LAST /= 7 THEN
kono
parents:
diff changeset
376 FAILED ("INCORRECT TYPE'RANGE (N)");
kono
parents:
diff changeset
377 END IF;
kono
parents:
diff changeset
378 END;
kono
parents:
diff changeset
379
kono
parents:
diff changeset
380 DECLARE
kono
parents:
diff changeset
381 Y : PARENT (X'RANGE (N));
kono
parents:
diff changeset
382 BEGIN
kono
parents:
diff changeset
383 IF Y'FIRST /= 5 OR Y'LAST /= 7 THEN
kono
parents:
diff changeset
384 FAILED ("INCORRECT OBJECT'RANGE (N)");
kono
parents:
diff changeset
385 END IF;
kono
parents:
diff changeset
386 END;
kono
parents:
diff changeset
387
kono
parents:
diff changeset
388 DECLARE
kono
parents:
diff changeset
389 Y : PARENT (V'RANGE (N));
kono
parents:
diff changeset
390 BEGIN
kono
parents:
diff changeset
391 IF Y'FIRST /= 5 OR Y'LAST /= 7 THEN
kono
parents:
diff changeset
392 FAILED ("INCORRECT VALUE'RANGE (N)");
kono
parents:
diff changeset
393 END IF;
kono
parents:
diff changeset
394 END;
kono
parents:
diff changeset
395
kono
parents:
diff changeset
396 IF X'SIZE < T'SIZE THEN
kono
parents:
diff changeset
397 COMMENT ("X'SIZE < T'SIZE");
kono
parents:
diff changeset
398 ELSIF X'SIZE = T'SIZE THEN
kono
parents:
diff changeset
399 COMMENT ("X'SIZE = T'SIZE");
kono
parents:
diff changeset
400 ELSE
kono
parents:
diff changeset
401 COMMENT ("X'SIZE > T'SIZE");
kono
parents:
diff changeset
402 END IF;
kono
parents:
diff changeset
403
kono
parents:
diff changeset
404 RESULT;
kono
parents:
diff changeset
405 END C34005P;