1-- C36204B.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-- OBJECTIVE: 26-- CHECK THAT EACH ARRAY ATTRIBUTE YIELDS THE CORRECT VALUES WITH 27-- ACCESS VALUES AND FUNCTION CALLS AS THE PREFIXES. 28 29-- HISTORY: 30-- L.BROWN 08/05/86 31-- DWC 07/24/87 DELETED BLANK AT END OF TEST DESCRIPTION. 32 33WITH REPORT; USE REPORT; 34 35PROCEDURE C36204B IS 36 37 BEGIN 38 TEST("C36204B", "ARRAY ATTRIBUTES RETURN CORRECT VALUES " & 39 "FOR ACCESS VALUES AND FUNCTION CALLS AS " & 40 "PREFIXES"); 41 DECLARE 42 TYPE ARR1 IS ARRAY (INTEGER RANGE IDENT_INT(1) .. 43 IDENT_INT(10)) OF INTEGER ; 44 TYPE ARR2 IS ARRAY (BOOLEAN, 45 INTEGER RANGE IDENT_INT(1) .. 46 IDENT_INT(3)) OF INTEGER ; 47 48 TYPE PTR1 IS ACCESS ARR1; 49 TYPE PTR2 IS ACCESS ARR2; 50 51 PT1 : PTR1 := NEW ARR1'(ARR1'RANGE => 0); 52 PT2 : PTR2 := NEW ARR2'(ARR2'RANGE(1) => 53 (ARR2'RANGE(2) => 0)); 54 SUBTYPE ARR1_RANGE IS INTEGER RANGE PT1'RANGE; 55 BEGIN 56 IF PT1'FIRST /= IDENT_INT(1) THEN 57 FAILED("INCORRECT ATTRIBUTE VALUE FOR ONE-DIM " & 58 "ARRAY USING ACCESS TYPES AS PREFIXES 1"); 59 END IF; 60 61 IF PT2'FIRST(2) /= IDENT_INT(1) THEN 62 FAILED("INCORRECT ATTRIBUTE VALUE FOR TWO-DIM " & 63 "ARRAY USING ACCESS TYPES AS PREFIXES 1"); 64 END IF; 65 66 IF ARR1_RANGE'FIRST /= IDENT_INT(1) THEN 67 FAILED("INCORRECT ATTRIBUTE VALUE FOR ONE-DIM " & 68 "ARRAY USING ACCESS TYPES AS PREFIXES 2"); 69 END IF; 70 71 IF PT1'LAST /= IDENT_INT(10) THEN 72 FAILED("INCORRECT ATTRIBUTE VALUE FOR ONE-DIM " & 73 "ARRAY USING ACCESS TYPES AS PREFIXES 3"); 74 END IF; 75 76 IF PT2'LAST(2) /= IDENT_INT(3) THEN 77 FAILED("INCORRECT ATTRIBUTE VALUE FOR TWO-DIM " & 78 "ARRAY USING ACCESS TYPES AS PREFIXES 2"); 79 END IF; 80 81 IF ARR1_RANGE'LAST /= IDENT_INT(10) THEN 82 FAILED("INCORRECT ATTRIBUTE VALUE FOR ONE-DIM " & 83 "ARRAY USING ACCESS TYPES AS PREFIXES 4"); 84 END IF; 85 86 IF PT1'LENGTH /= IDENT_INT(10) THEN 87 FAILED("INCORRECT ATTRIBUTE VALUE FOR ONE-DIM " & 88 "ARRAY USING ACCESS TYPES AS PREFIXES 5"); 89 END IF; 90 91 IF PT2'LENGTH(2) /= IDENT_INT(3) THEN 92 FAILED("INCORRECT ATTRIBUTE VALUE FOR TWO-DIM " & 93 "ARRAY USING ACCESS TYPES AS PREFIXES 3"); 94 END IF; 95 96 END; 97 98 DECLARE 99 100 TYPE UNCON IS ARRAY (INTEGER RANGE <>) OF INTEGER ; 101 TYPE UNCON2 IS ARRAY (INTEGER RANGE <>, 102 INTEGER RANGE <>) OF INTEGER ; 103 104 ARY1 : STRING(IDENT_INT(5) .. IDENT_INT(8)); 105 F : INTEGER := IDENT_INT(1); 106 L : INTEGER := IDENT_INT(3); 107 108 FUNCTION FUN( LO,HI : INTEGER ) RETURN UNCON IS 109 ARR : UNCON(IDENT_INT(LO) .. IDENT_INT(HI)); 110 BEGIN 111 ARR := (ARR'RANGE => 0); 112 RETURN ARR; 113 END FUN; 114 115 FUNCTION FUN2( LO,HI : INTEGER ) RETURN UNCON2 IS 116 AR2 : UNCON2(IDENT_INT(LO) .. IDENT_INT(HI), 117 IDENT_INT(LO) .. IDENT_INT(HI)); 118 BEGIN 119 AR2 := (AR2'RANGE(1) =>(AR2'RANGE(2) => 0)); 120 RETURN AR2; 121 END FUN2; 122 BEGIN 123 124 ARY1 := (ARY1'RANGE => 'A'); 125 126 IF FUN(F,L)'FIRST /= IDENT_INT(1) THEN 127 FAILED("INCORRECT ATTRIBUTE VALUE FOR ONE-DIM " & 128 "ARRAY USING FUNCTION RESULTS AS " & 129 "PREFIXES 1"); 130 END IF; 131 132 IF FUN2(F,L)'FIRST(2) /= IDENT_INT(1) THEN 133 FAILED("INCORRECT ATTRIBUTE VALUE FOR TWO-DIM " & 134 "ARRAY USING FUNCTION RESULTS AS " & 135 "PREFIXES 1"); 136 END IF; 137 138 IF "&"(ARY1,"XX")'FIRST /= IDENT_INT(5) THEN 139 FAILED("INCORRECT ATTRIBUTE VALUE FOR ONE-DIM " & 140 "ARRAY USING FUNCTION RESULTS AS " & 141 "PREFIXES 2"); 142 END IF; 143 144 IF FUN(F,L)'LAST /= IDENT_INT(3) THEN 145 FAILED("INCORRECT ATTRIBUTE VALUE FOR ONE-DIM " & 146 "ARRAY USING FUNCTION RESULTS AS " & 147 "PREFIXES 3"); 148 END IF; 149 150 IF FUN2(F,L)'LAST(2) /= IDENT_INT(3) THEN 151 FAILED("INCORRECT ATTRIBUTE VALUE FOR TWO-DIM " & 152 "ARRAY USING FUNCTION RESULTS AS " & 153 "PREFIXES 2"); 154 END IF; 155 156 IF "&"(ARY1,"YY")'LAST /= IDENT_INT(10) THEN 157 FAILED("INCORRECT ATTRIBUTE VALUE FOR ONE-DIM " & 158 "ARRAY USING FUNCTION RESULTS AS " & 159 "PREFIXES 4"); 160 END IF; 161 162 IF FUN(F,L)'LENGTH /= IDENT_INT(3) THEN 163 FAILED("INCORRECT ATTRIBUTE VALUE FOR ONE-DIM " & 164 "ARRAY USING FUNCTION RESULTS AS " & 165 "PREFIXES 5"); 166 END IF; 167 168 IF FUN2(F,L)'LENGTH(2) /= IDENT_INT(3) THEN 169 FAILED("INCORRECT ATTRIBUTE VALUE FOR TWO-DIM " & 170 "ARRAY USING FUNCTION RESULTS AS " & 171 "PREFIXES 3"); 172 END IF; 173 174 IF "&"(ARY1,"XX")'LENGTH /= IDENT_INT(6) THEN 175 FAILED("INCORRECT ATTRIBUTE VALUE FOR ONE-DIM " & 176 "ARRAY USING FUNCTION RESULTS AS " & 177 "PREFIXES 6"); 178 END IF; 179 180 DECLARE 181 182 SUBTYPE SMIN IS INTEGER RANGE FUN(F,L)'RANGE; 183 SUBTYPE SMIN2 IS INTEGER RANGE FUN2(F,L)'RANGE(2); 184 SUBTYPE SMIN3 IS INTEGER RANGE "&"(ARY1,"YY")'RANGE; 185 186 BEGIN 187 IF SMIN'FIRST /= IDENT_INT(1) THEN 188 FAILED("INCORRECT ATTRIBUTE VALUE FOR " & 189 "ONE-DIM ARRAY USING FUNCTION " & 190 "RESULTS AS PREFIXES 7"); 191 END IF; 192 193 IF SMIN2'FIRST /= IDENT_INT(1) THEN 194 FAILED("INCORRECT ATTRIBUTE VALUE FOR " & 195 "TWO-DIM ARRAY USING FUNCTION " & 196 "RESULTS AS PREFIXES 4"); 197 END IF; 198 199 IF SMIN3'FIRST /= IDENT_INT(5) THEN 200 FAILED("INCORRECT ATTRIBUTE VALUE FOR " & 201 "ONE-DIM ARRAY USING FUNCTION " & 202 "RESULTS AS PREFIXES 8"); 203 END IF; 204 205 IF SMIN'LAST /= IDENT_INT(3) THEN 206 FAILED("INCORRECT ATTRIBUTE VALUE FOR " & 207 "ONE-DIM ARRAY USING FUNCTION " & 208 "RESULTS AS PREFIXES 9"); 209 END IF; 210 211 IF SMIN2'LAST /= IDENT_INT(3) THEN 212 FAILED("INCORRECT ATTRIBUTE VALUE FOR " & 213 "TWO-DIM ARRAY USING FUNCTION " & 214 "RESULTS AS PREFIXES 5"); 215 END IF; 216 217 IF SMIN3'LAST /= IDENT_INT(10) THEN 218 FAILED("INCORRECT ATTRIBUTE VALUE FOR " & 219 "ONE-DIM ARRAY USING FUNCTION " & 220 "RESULTS AS PREFIXES 10"); 221 END IF; 222 223 END; 224 225 END; 226 227 RESULT; 228 229 END C36204B; 230