1-- C87B07B.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 OVERLOADING RESOLUTION USES THE RULE THAT: 26-- 27-- FOR THE ATTRIBUTE OF THE FORM T'VAL (X), THE OPERAND X MAY 28-- BE OF ANY INTEGER TYPE. THE RESULT IS OF TYPE T. 29 30-- TRH 15 SEPT 82 31-- DSJ 06 JUNE 83 32-- PWN 01/31/95 REMOVED INCONSISTENCIES WITH ADA 9X. 33 34WITH REPORT; USE REPORT; 35 36PROCEDURE C87B07B IS 37 38 TYPE NEW_INT IS NEW INTEGER; 39 TYPE WHOLE IS NEW INTEGER RANGE 0 .. INTEGER'LAST; 40 TYPE FLAG IS (PASS, FAIL); 41 42 FUNCTION "+" (X, Y : NEW_INT) RETURN NEW_INT 43 RENAMES "-"; 44 FUNCTION "+" (X, Y : WHOLE) RETURN WHOLE 45 RENAMES "*"; 46 47 GENERIC 48 TYPE T IS PRIVATE; 49 ARG : IN T; 50 STAT : IN FLAG; 51 FUNCTION F1 RETURN T; 52 53 FUNCTION F1 RETURN T IS 54 BEGIN 55 IF STAT = FAIL THEN 56 FAILED ("THE 'VAL' ATTRIBUTE TAKES AN OPERAND " & 57 "OF AN INTEGER TYPE"); 58 END IF; 59 RETURN ARG; 60 END F1; 61 62 FUNCTION F IS NEW F1 (CHARACTER, '1', FAIL); 63 FUNCTION F IS NEW F1 (DURATION, 1.0, FAIL); 64 FUNCTION F IS NEW F1 (FLOAT, 1.0, FAIL); 65 FUNCTION F IS NEW F1 (NEW_INT, 1, PASS); 66 67BEGIN 68 TEST ("C87B07B","OVERLOADED OPERANDS TO THE 'VAL' ATTRIBUTE"); 69 70 IF (INTEGER'VAL (F) /= 1) THEN 71 FAILED ("RESOLUTION INCORRECT - THE 'VAL' ATTRIBUTE " & 72 "MUST RETURN A VALUE OF TYPE T - 1"); 73 END IF; 74 75 IF (INTEGER'VAL (3 + 3) + 1 /= 7) THEN 76 FAILED ("RESOLUTION INCORRECT - THE 'VAL' ATTRIBUTE " & 77 "MUST RETURN A VALUE OF TYPE T - 2"); 78 END IF; 79 80 IF (NEW_INT'VAL (F) /= 1) THEN 81 FAILED ("RESOLUTION INCORRECT - THE 'VAL' ATTRIBUTE " & 82 "MUST RETURN A VALUE OF TYPE T - 3"); 83 END IF; 84 85 IF (NEW_INT'VAL (3 + 3) + 1 /= 5) THEN 86 FAILED ("RESOLUTION INCORRECT - THE 'VAL' ATTRIBUTE " & 87 "MUST RETURN A VALUE OF TYPE T - 4"); 88 END IF; 89 90 IF (WHOLE'VAL (F) /= 1) THEN 91 FAILED ("RESOLUTION INCORRECT - THE 'VAL' ATTRIBUTE " & 92 "MUST RETURN A VALUE OF TYPE T - 5"); 93 END IF; 94 95 IF (WHOLE'VAL (3 + 3) + 1 /= 6) THEN 96 FAILED ("RESOLUTION INCORRECT - THE 'VAL' ATTRIBUTE " & 97 "MUST RETURN A VALUE OF TYPE T - 6"); 98 END IF; 99 100 RESULT; 101END C87B07B; 102