3 -- Grant of Unlimited Rights
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
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.
25 -- CHECK THAT OVERLOADING RESOLUTION USES THE RULE THAT:
27 -- IF THE TYPE OF AN AGGREGATE IS A ONE-DIMENSIONAL ARRAY TYPE
28 -- THEN EACH CHOICE MUST SPECIFY VALUES OF THE INDEX TYPE, AND
29 -- THE EXPRESSION OF EACH COMPONENT ASSOCIATION MUST BE OF THE
37 WITH REPORT
; USE REPORT
;
41 TYPE LETTER
IS NEW CHARACTER RANGE 'A' .. 'Z';
42 TYPE NOTE
IS (A
, B
, C
, D
, E
, F
, G
, H
);
43 TYPE STR
IS NEW STRING (1 .. 1);
44 TYPE BIT
IS NEW BOOLEAN;
45 TYPE YES
IS NEW BOOLEAN RANGE TRUE .. TRUE;
46 TYPE NO
IS NEW BOOLEAN RANGE FALSE .. FALSE;
47 TYPE BOOLEAN IS (FALSE, TRUE);
48 TYPE LIST
IS ARRAY (CHARACTER RANGE <>) OF BIT
;
49 TYPE FLAG
IS (PASS
, FAIL
);
51 SUBTYPE LIST_A
IS LIST
('A'..'A');
52 SUBTYPE LIST_E
IS LIST
('E'..'E');
53 SUBTYPE LIST_AE
IS LIST
('A'..'E');
61 FUNCTION F1
RETURN T
IS
64 FAILED
("RESOLUTION INCORRECT FOR EXPRESSIONS " &
65 "IN ARRAY AGGREGATES");
70 FUNCTION F
IS NEW F1
(BOOLEAN, FALSE, FAIL
);
71 FUNCTION F
IS NEW F1
(YES
, TRUE, FAIL
);
72 FUNCTION F
IS NEW F1
(NO
, FALSE, FAIL
);
73 FUNCTION F
IS NEW F1
(BIT
, TRUE, PASS
);
75 FUNCTION G
IS NEW F1
(CHARACTER, 'A', PASS
);
76 FUNCTION G
IS NEW F1
(LETTER
, 'A', FAIL
);
77 FUNCTION G
IS NEW F1
(STR
, "A", FAIL
);
79 FUNCTION H
IS NEW F1
(CHARACTER, 'E', PASS
);
80 FUNCTION H
IS NEW F1
(LETTER
, 'E', FAIL
);
81 FUNCTION H
IS NEW F1
(STR
, "E", FAIL
);
84 TEST
("C87B31A", "OVERLOADED EXPRESSIONS IN ARRAY AGGREGATES");
87 L1
, L2
: LIST_A
:= (OTHERS => FALSE);
88 L3
, L4
: LIST_E
:= (OTHERS => FALSE);
89 L5
, L6
: LIST_AE
:= (OTHERS => FALSE);
90 L7
, L8
: LIST_AE
:= (OTHERS => FALSE);
97 L5
:= ('A'..'E' => F
);
99 L7
:= (F
,F
,F
, OTHERS => F
);
100 L8
:= LIST_AE
'('E
' => F, 'B
' => F, OTHERS => F);
102 IF L1 /= LIST_A'(OTHERS => TRUE) THEN
103 FAILED
("RESOLUTION INCORRECT FOR OVERLOADED" &
104 " EXPRESSIONS IN ARRAY AGGREGATES - L1");
106 IF L2
/= LIST_A
'(OTHERS => TRUE) THEN
107 FAILED ("RESOLUTION INCORRECT FOR OVERLOADED" &
108 " EXPRESSIONS IN ARRAY AGGREGATES - L2");
110 IF L3 /= LIST_E'(OTHERS => TRUE) THEN
111 FAILED
("RESOLUTION INCORRECT FOR OVERLOADED" &
112 " EXPRESSIONS IN ARRAY AGGREGATES - L3");
114 IF L4
/= LIST_E
'(OTHERS => TRUE) THEN
115 FAILED ("RESOLUTION INCORRECT FOR OVERLOADED" &
116 " EXPRESSIONS IN ARRAY AGGREGATES - L4");
118 IF L5 /= LIST_AE'(OTHERS => TRUE) THEN
119 FAILED
("RESOLUTION INCORRECT FOR OVERLOADED" &
120 " EXPRESSIONS IN ARRAY AGGREGATES - L5");
122 IF L6
/= LIST_AE
'(OTHERS => TRUE) THEN
123 FAILED ("RESOLUTION INCORRECT FOR OVERLOADED" &
124 " EXPRESSIONS IN ARRAY AGGREGATES - L6");
126 IF L7 /= LIST_AE'(OTHERS => TRUE) THEN
127 FAILED
("RESOLUTION INCORRECT FOR OVERLOADED" &
128 " EXPRESSIONS IN ARRAY AGGREGATES - L7");
130 IF L8
/= LIST_AE
'(OTHERS => TRUE) THEN
131 FAILED ("RESOLUTION INCORRECT FOR OVERLOADED" &
132 " EXPRESSIONS IN ARRAY AGGREGATES - L8");