1-- C83029A.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 A LOOP PARAMETER HIDES AN OUTER DECLARATION OF A 27-- HOMOGRAPH. ALSO CHECK THAT THE OUTER DECLARATION IS DIRECTLY 28-- VISIBLE IN BOTH DECLARATIVE REGIONS BEFORE THE DECLARATION OF 29-- THE INNER HOMOGRAPH AND THE OUTER DECLARATION IS VISIBLE BY 30-- SELECTION AFTER THE INNER HOMOGRAPH DECLARATION. 31 32-- HISTORY: 33-- BCB 09/06/88 CREATED ORIGINAL TEST. 34 35WITH REPORT; USE REPORT; 36PROCEDURE C83029A IS 37 38 GENERIC 39 TYPE T IS PRIVATE; 40 X : T; 41 FUNCTION GEN_FUN RETURN T; 42 43 FUNCTION GEN_FUN RETURN T IS 44 BEGIN 45 RETURN X; 46 END GEN_FUN; 47 48BEGIN 49 TEST ("C83029A", "CHECK THAT A LOOP PARAMETER HIDES AN OUTER " & 50 "DECLARATION OF A HOMOGRAPH"); 51 52 ONE: 53 DECLARE 54 A : INTEGER := IDENT_INT(2); 55 B : INTEGER := A; 56 C : INTEGER; 57 58 BEGIN -- ONE 59 60 FOR A IN 1 .. 1 LOOP 61 C := A; 62 63 IF A /= IDENT_INT(1) THEN 64 FAILED ("INCORRECT VALUE FOR INNER HOMOGRAPH - 1"); 65 END IF; 66 67 IF ONE.A /= IDENT_INT(2) THEN 68 FAILED ("INCORRECT VALUE FOR OUTER HOMOGRAPH - 2"); 69 END IF; 70 71 IF ONE.B /= IDENT_INT(2) THEN 72 FAILED ("INCORRECT VALUE FOR OUTER VARIABLE - 3"); 73 END IF; 74 75 IF C /= IDENT_INT(1) THEN 76 FAILED ("INCORRECT VALUE FOR INNER VARIABLE - 4"); 77 END IF; 78 79 IF EQUAL(1,1) THEN 80 ONE.A := A; 81 END IF; 82 END LOOP; 83 84 IF A /= IDENT_INT(1) THEN 85 FAILED ("INCORRECT VALUE PASSED OUT - 6"); 86 END IF; 87 END ONE; 88 89 TWO: 90 DECLARE -- OVERLOADING OF FUNCTIONS. 91 92 OBJ : INTEGER := 1; 93 FLO : FLOAT := 5.0; 94 95 FUNCTION F IS NEW GEN_FUN (INTEGER, OBJ); 96 97 FUNCTION F IS NEW GEN_FUN (FLOAT, FLO); 98 99 BEGIN 100 FOR F IN 1 .. 1 LOOP 101 OBJ := INTEGER(F); 102 END LOOP; 103 104 IF OBJ /= IDENT_INT(1) THEN 105 FAILED ("INCORRECT VALUE RETURNED - 10"); 106 END IF; 107 END TWO; 108 109 RESULT; 110END C83029A; 111