1-- C43205G.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 THE BOUNDS OF A POSITIONAL AGGREGATE ARE DETERMINED 26-- CORRECTLY. IN PARTICULAR, CHECK THAT THE LOWER BOUND IS GIVEN BY 27-- THE LOWER BOUND OF THE APPLICABLE INDEX CONSTRAINT WHEN THE 28-- POSITIONAL AGGREGATE IS USED AS: 29 30-- AN ACTUAL PARAMETER IN A SUBPROGRAM, AND THE 31-- FORMAL PARAMETER IS CONSTRAINED. 32 33-- EG 01/27/84 34 35WITH REPORT; 36 37PROCEDURE C43205G IS 38 39 USE REPORT; 40 41BEGIN 42 43 TEST("C43205G", "SUBPROGRAM WITH CONSTRAINED " & 44 "ONE-DIMENSIONAL ARRAY FORMAL PARAMETER"); 45 46 BEGIN 47 48CASE_G : BEGIN 49 50 CASE_G1 : DECLARE 51 52 TYPE TA IS ARRAY (IDENT_INT(11) .. 15) OF INTEGER; 53 54 PROCEDURE PROC1 (A : TA) IS 55 BEGIN 56 IF A'FIRST /= 11 THEN 57 FAILED ("CASE A1 : LOWER BOUND " & 58 "INCORRECT"); 59 ELSIF A'LAST /= 15 THEN 60 FAILED ("CASE A1 : UPPER BOUND " & 61 "INCORRECT"); 62 ELSIF A /= (6, 7, 8, 9, 10) THEN 63 FAILED ("CASE A1 : ARRAY DOES NOT " & 64 "CONTAIN THE CORRECT VALUES"); 65 END IF; 66 END; 67 68 BEGIN 69 70 PROC1 ((6, 7, 8, IDENT_INT(9), 10)); 71 72 END CASE_G1; 73 74 CASE_G2 : DECLARE 75 76 TYPE TA IS ARRAY (11 .. 12, 77 IDENT_INT(10) .. 11) OF INTEGER; 78 79 PROCEDURE PROC1 (A : TA) IS 80 BEGIN 81 IF A'FIRST(1) /= 11 OR A'FIRST(2) /= 10 THEN 82 FAILED ("CASE A2 : LOWER BOUND " & 83 "INCORRECT"); 84 ELSIF A'LAST(1) /= 12 OR A'LAST(2) /= 11 THEN 85 FAILED ("CASE A2 : UPPER BOUND " & 86 "INCORRECT"); 87 ELSIF A /= ((1, 2), (3, 4)) THEN 88 FAILED ("CASE A2 : ARRAY DOES NOT " & 89 "CONTAIN THE CORRECT VALUES"); 90 END IF; 91 END; 92 93 BEGIN 94 95 PROC1 (((1, 2), (3, 4))); 96 97 END CASE_G2; 98 99 END CASE_G; 100 101 END; 102 103 RESULT; 104 105END C43205G; 106