1-- C87B15A.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 OVERLOADING RESOLUTION USES THE RULE THAT:
26--
27-- THE ARRAY ATTRIBUTES OF THE FORM: A'FIRST (N), A'LAST (N),
28-- A'RANGE (N) AND A'LENGTH (N) MUST HAVE A PARAMETER (N) WHICH IS OF
29-- THE TYPE UNIVERSAL_INTEGER.
30
31-- TRH  26 JULY 82
32
33WITH REPORT; USE REPORT;
34
35PROCEDURE C87B15A IS
36
37     FUNCTION "+" (X, Y : INTEGER) RETURN INTEGER
38          RENAMES STANDARD."*";
39
40     TYPE BOX IS ARRAY (0 .. 1, 3 .. 6, 5 .. 11) OF BOOLEAN;
41     B1 : BOX;
42
43BEGIN
44     TEST ("C87B15A","ARRAY ATTRIBUTES: FIRST (N), LAST (N), RANGE " &
45           "(N) AND LENGTH (N) TAKE UNIVERSAL_INTEGER OPERANDS");
46
47     IF BOX'FIRST  (1 + 0) /= 0    THEN
48          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
49                  "UNIVERSAL_INTEGER - 1");
50     END IF;
51
52     IF B1'FIRST   (1 + 1) /= 3    THEN
53          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
54                  "UNIVERSAL_INTEGER - 2");
55     END IF;
56
57     IF B1'FIRST   (2 + 1) /= 5    THEN
58          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
59                  "UNIVERSAL_INTEGER - 3");
60     END IF;
61
62     IF BOX'LAST   (0 + 1) /= 1    THEN
63          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
64                  "UNIVERSAL_INTEGER - 4");
65     END IF;
66
67     IF B1'LAST    (1 + 1) /= 6    THEN
68          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
69                  "UNIVERSAL_INTEGER - 5");
70     END IF;
71
72     IF B1'LAST    (1 + 2) /= 11   THEN
73          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
74                  "UNIVERSAL_INTEGER - 6");
75     END IF;
76
77     IF BOX'LENGTH (0 + 1) /= 2    THEN
78          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
79                  "UNIVERSAL_INTEGER - 7");
80     END IF;
81
82     IF B1'LENGTH  (1 + 1) /= 4    THEN
83          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
84                  "UNIVERSAL_INTEGER - 8");
85     END IF;
86
87     IF B1'LENGTH  (2 + 1) /= 7    THEN
88          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
89                  "UNIVERSAL_INTEGER - 9");
90     END IF;
91
92     IF 1 NOT IN BOX'RANGE (0 + 1) THEN
93          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
94                  "UNIVERSAL_INTEGER - 10");
95     END IF;
96
97     IF 4 NOT IN B1'RANGE  (1 + 1) THEN
98          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
99                  "UNIVERSAL_INTEGER - 11");
100     END IF;
101
102     IF 9 NOT IN B1'RANGE  (2 + 1) THEN
103          FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
104                  "UNIVERSAL_INTEGER - 12");
105     END IF;
106
107     RESULT;
108END C87B15A;
109