2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / ada / acats / tests / c4 / c43224a.ada
blob799309a8248a56b66d258cd77871c607ea1dc1c2
1 -- C43224A.ADA
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.
16 -- DISCLAIMER
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 A NON-STATIC CHOICE OF AN ARRAY AGGREGATE CAN BE A
27 -- 'RANGE ATTRIBUTE.
29 -- HISTORY:
30 -- DHH 08/15/88 CREATED ORIGINAL TEST.
32 WITH REPORT; USE REPORT;
33 PROCEDURE C43224A IS
35 M, O : INTEGER := IDENT_INT(2);
36 N : INTEGER := IDENT_INT(3);
38 TYPE ARR IS ARRAY(INTEGER RANGE <>) OF INTEGER;
39 TYPE D3_ARR IS ARRAY(INTEGER RANGE <>, INTEGER RANGE <>,
40 INTEGER RANGE <>) OF INTEGER;
42 SUBTYPE ARR1 IS ARR(IDENT_INT(2) .. IDENT_INT(3));
43 SUBTYPE ARR2 IS D3_ARR(1 .. M, 1 .. N, 1 ..O);
45 SUB : ARR1;
46 SUB1 : ARR2;
48 PROCEDURE PROC(ARRY : IN OUT ARR) IS
49 BEGIN
50 ARRY := (ARR1'RANGE => IDENT_INT(7));
51 IF ARRY(IDENT_INT(ARRY'FIRST)) /= IDENT_INT(7) THEN
52 FAILED("RANGE NOT INITIALIZED - 1");
53 END IF;
54 END PROC;
56 PROCEDURE PROC1(ARRY : IN OUT D3_ARR) IS
57 BEGIN
58 ARRY := (ARR2'RANGE(1) => (ARRY'RANGE(2) =>
59 (ARRY'RANGE(3) => IDENT_INT(7))));
61 IF ARRY(IDENT_INT(1), IDENT_INT(2), IDENT_INT(1)) /=
62 IDENT_INT(7) THEN
63 FAILED("RANGE NOT INITIALIZED - 2");
64 END IF;
65 END PROC1;
67 BEGIN
68 TEST("C43224A", "CHECK THAT A NON-STATIC CHOICE OF AN ARRAY " &
69 "AGGREGATE CAN BE A 'RANGE ATTRIBUTE");
71 PROC(SUB);
72 PROC1(SUB1);
74 RESULT;
75 END C43224A;