1-- C41328A.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 IMPLICITLY DECLARED DERIVED SUBPROGRAMS CAN BE SELECTED 26-- FROM OUTSIDE A PACKAGE USING AN EXPANDED NAME, FOR A DERIVED TYPE. 27 28-- TBN 7/21/86 29 30WITH REPORT; USE REPORT; 31PROCEDURE C41328A IS 32 33 PACKAGE P IS 34 PACKAGE Q IS 35 TYPE PAIR IS ARRAY (1..2) OF INTEGER; 36 FUNCTION INIT (INT : INTEGER) RETURN PAIR; 37 PROCEDURE SWAP (TWO : IN OUT PAIR); 38 END Q; 39 TYPE COUPLE IS NEW Q.PAIR; 40 END P; 41 42 VAR_1 : P.COUPLE; 43 VAR_2 : P.COUPLE; 44 45 PACKAGE BODY P IS 46 47 PACKAGE BODY Q IS 48 49 FUNCTION INIT (INT : INTEGER) RETURN PAIR IS 50 A : PAIR; 51 BEGIN 52 A (1) := INT; 53 A (2) := INT + 1; 54 RETURN (A); 55 END INIT; 56 57 PROCEDURE SWAP (TWO : IN OUT PAIR) IS 58 TEMP : INTEGER; 59 BEGIN 60 TEMP := TWO (1); 61 TWO (1) := TWO (2); 62 TWO (2) := TEMP; 63 END SWAP; 64 65 BEGIN 66 NULL; 67 END Q; 68 69 BEGIN 70 NULL; 71 END P; 72 73BEGIN 74 TEST ("C41328A", "CHECK THAT IMPLICITLY DECLARED DERIVED " & 75 "SUBPROGRAMS CAN BE SELECTED FROM OUTSIDE A " & 76 "PACKAGE USING AN EXPANDED NAME, FOR A DERIVED " & 77 "TYPE"); 78 79 VAR_1 := P.INIT (IDENT_INT(1)); 80 IF P."/=" (VAR_1, P.COUPLE'(1 => 1, 2 => 2)) THEN 81 FAILED ("INCORRECT RESULTS FROM DERIVED SUBPROGRAM - 1"); 82 END IF; 83 84 VAR_2 := P.INIT (IDENT_INT(2)); 85 IF P."=" (VAR_2, P.COUPLE'(1 => 1, 2 => 2)) THEN 86 FAILED ("INCORRECT RESULTS FROM DERIVED SUBPROGRAM - 2"); 87 END IF; 88 89 P.SWAP (VAR_1); 90 IF P."=" (VAR_1, P.COUPLE'(1 => 1, 2 => 2)) THEN 91 FAILED ("INCORRECT RESULTS FROM DERIVED SUBPROGRAM - 3"); 92 END IF; 93 94 P.SWAP (VAR_2); 95 IF P."/=" (VAR_2, P.COUPLE'(1 => 3, 2 => 2)) THEN 96 FAILED ("INCORRECT RESULTS FROM DERIVED SUBPROGRAM - 4"); 97 END IF; 98 99 RESULT; 100END C41328A; 101