1-- C84009A.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 USE CLAUSE MAKES AN IMPLICITLY OR EXPLICITLY 27-- DECLARED OPERATOR DIRECTLY VISIBLE IF NO HOMOGRAPH OF THE 28-- OPERATOR IS ALREADY DIRECTLY VISIBLE. 29 30-- HISTORY: 31-- JET 03/10/88 CREATED ORIGINAL TEST. 32 33WITH REPORT; USE REPORT; 34PROCEDURE C84009A IS 35 36 TYPE INT IS NEW INTEGER RANGE -100 .. 100; 37 38 PACKAGE PACK IS 39 FUNCTION "+" (LEFT : INTEGER; RIGHT : INT) RETURN INTEGER; 40 FUNCTION "-" (LEFT, RIGHT : INT) RETURN INT; 41 FUNCTION "-" (RIGHT : INT) RETURN INTEGER; 42 FUNCTION "+" (RIGHT : INT) RETURN INTEGER; 43 END PACK; 44 45 FUNCTION "+" (RIGHT : INT) RETURN INTEGER IS 46 BEGIN 47 RETURN INTEGER'(1) + INTEGER(RIGHT); 48 END "+"; 49 50 PACKAGE BODY PACK IS 51 FUNCTION "+" (LEFT : INTEGER; RIGHT : INT) RETURN INTEGER IS 52 BEGIN 53 RETURN LEFT + INTEGER(RIGHT); 54 END "+"; 55 56 FUNCTION "-" (LEFT, RIGHT : INT) RETURN INT IS 57 BEGIN 58 FAILED ("BINARY ""-"" ALREADY VISIBLE FOR TYPE INT"); 59 RETURN LEFT + (-RIGHT); 60 END "-"; 61 62 FUNCTION "-" (RIGHT : INT) RETURN INTEGER IS 63 BEGIN 64 RETURN INTEGER'(0) - INTEGER(RIGHT); 65 END "-"; 66 67 FUNCTION "+" (RIGHT : INT) RETURN INTEGER IS 68 BEGIN 69 FAILED ("UNARY ""+"" ALREADY VISIBLE FOR TYPE INT"); 70 RETURN INTEGER'(0) + INTEGER(RIGHT); 71 END "+"; 72 END PACK; 73 74 USE PACK; 75 76BEGIN 77 TEST ("C84009A", "CHECK THAT A USE CLAUSE MAKES AN IMPLICITLY " & 78 "OR EXPLICITLY DECLARED OPERATOR DIRECTLY " & 79 "VISIBLE IF NO HOMOGRAPH OF THE OPERATOR IS " & 80 "ALREADY DIRECTLY VISIBLE"); 81 82 IF INTEGER'(10) + INT'(10) /= IDENT_INT(20) THEN 83 FAILED ("INCORRECT RESULT FROM BINARY ""+"""); 84 END IF; 85 86 IF INT'(5) - INT'(3) /= INT'(2) THEN 87 FAILED ("INCORRECT RESULT FROM BINARY ""-"""); 88 END IF; 89 90 IF -INT'(20) /= IDENT_INT(-INTEGER'(20)) THEN 91 FAILED ("INCORRECT RESULT FROM UNARY ""-"""); 92 END IF; 93 94 IF +INT'(20) /= IDENT_INT(+INTEGER'(21)) THEN 95 FAILED ("INCORRECT RESULT FROM UNARY ""+"""); 96 END IF; 97 98 RESULT; 99END C84009A; 100