1-- C85014A.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 THE NUMBER OF FORMAL PARAMETERS IS USED TO DETERMINE 27-- WHICH SUBPROGRAM OR ENTRY IS BEING RENAMED. 28 29-- HISTORY: 30-- JET 03/24/88 CREATED ORIGINAL TEST. 31-- BCB 04/18/90 CORRECTED ERROR MESSAGE FOR ENTRY2. 32 33WITH REPORT; USE REPORT; 34PROCEDURE C85014A IS 35 36 TASK TYPE T1 IS 37 ENTRY ENTER (I1: IN OUT INTEGER); 38 ENTRY STOP; 39 END T1; 40 41 TASK TYPE T2 IS 42 ENTRY ENTER (I1, I2: IN OUT INTEGER); 43 ENTRY STOP; 44 END T2; 45 46 TASK1 : T1; 47 TASK2 : T2; 48 49 FUNCTION F RETURN T1 IS 50 BEGIN 51 RETURN TASK1; 52 END F; 53 54 FUNCTION F RETURN T2 IS 55 BEGIN 56 RETURN TASK2; 57 END F; 58 59 PROCEDURE PROC (I1: IN OUT INTEGER) IS 60 BEGIN 61 I1 := I1 + 1; 62 END PROC; 63 64 PROCEDURE PROC (I1, I2: IN OUT INTEGER) IS 65 BEGIN 66 I1 := I1 + 2; 67 I2 := I2 + 2; 68 END PROC; 69 70 TASK BODY T1 IS 71 ACCEPTING_ENTRIES : BOOLEAN := TRUE; 72 BEGIN 73 WHILE ACCEPTING_ENTRIES LOOP 74 SELECT 75 ACCEPT ENTER (I1 : IN OUT INTEGER) DO 76 I1 := I1 + 1; 77 END ENTER; 78 OR 79 ACCEPT STOP DO 80 ACCEPTING_ENTRIES := FALSE; 81 END STOP; 82 END SELECT; 83 END LOOP; 84 END T1; 85 86 TASK BODY T2 IS 87 ACCEPTING_ENTRIES : BOOLEAN := TRUE; 88 BEGIN 89 WHILE ACCEPTING_ENTRIES LOOP 90 SELECT 91 ACCEPT ENTER (I1, I2 : IN OUT INTEGER) DO 92 I1 := I1 + 2; 93 I2 := I2 + 2; 94 END ENTER; 95 OR 96 ACCEPT STOP DO 97 ACCEPTING_ENTRIES := FALSE; 98 END STOP; 99 END SELECT; 100 END LOOP; 101 END T2; 102 103BEGIN 104 TEST ("C85014A", "CHECK THAT THE NUMBER OF FORMAL PARAMETERS IS " & 105 "USED TO DETERMINE WHICH SUBPROGRAM OR ENTRY " & 106 "IS BEING RENAMED"); 107 108 DECLARE 109 PROCEDURE PROC1 (J1: IN OUT INTEGER) RENAMES PROC; 110 PROCEDURE PROC2 (J1, J2: IN OUT INTEGER) RENAMES PROC; 111 112 PROCEDURE ENTRY1 (J1: IN OUT INTEGER) RENAMES F.ENTER; 113 PROCEDURE ENTRY2 (J1, J2: IN OUT INTEGER) RENAMES F.ENTER; 114 115 K1, K2 : INTEGER := 0; 116 BEGIN 117 PROC1(K1); 118 IF K1 /= IDENT_INT(1) THEN 119 FAILED("INCORRECT RETURN VALUE FROM PROC1"); 120 END IF; 121 122 ENTRY1(K2); 123 IF K2 /= IDENT_INT(1) THEN 124 FAILED("INCORRECT RETURN VALUE FROM ENTRY1"); 125 END IF; 126 127 PROC2(K1, K2); 128 IF K1 /= IDENT_INT(3) OR K2 /= IDENT_INT(3) THEN 129 FAILED("INCORRECT RETURN VALUE FROM PROC2"); 130 END IF; 131 132 ENTRY2(K1, K2); 133 IF K1 /= IDENT_INT(5) OR K2 /= IDENT_INT(5) THEN 134 FAILED("INCORRECT RETURN VALUE FROM ENTRY2"); 135 END IF; 136 END; 137 138 TASK1.STOP; 139 TASK2.STOP; 140 141 RESULT; 142END C85014A; 143