3 -- Grant of Unlimited Rights
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
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.
26 -- FOR AN ENUMERATION TYPE OTHER THAN BOOLEAN OR CHARACTER TYPE,
27 -- CHECK THAT THE RESULTS AND TYPE PRODUCED BY THE ATTRIBUTES
30 -- CHECK THAT 'FIRST AND 'LAST YIELD CORRECT RESULTS WHEN THE
31 -- PREFIX DENOTES A NULL SUBTYPE.
34 -- RJW 05/05/86 CREATED ORIGINAL TEST.
35 -- CJJ 06/09/87 CHANGED "=" COMPARISONS IN GENERIC
36 -- PROCEDURE Q TO "/=".
39 WITH REPORT
; USE REPORT
;
45 TEST
( "C35502P" , "CHECK THAT THE ATTRIBUTES 'FIRST' AND " &
46 "'LAST' YIELD THE CORRECT RESULTS WHEN THE " &
47 "PREFIX IS A GENERIC FORMAL DISCRETE TYPE " &
48 "WHOSE ACTUAL PARAMETER IS AN ENUMERATION " &
49 "TYPE OTHER THAN A CHARACTER OR A BOOLEAN " &
53 -- FOR THESE DECLARATIONS, 'FIRST AND 'LAST REFER TO THE
54 -- SUBTYPE VALUES, BUT 'VAL AND 'POS ARE INHERITED FROM THE
57 TYPE ENUM
IS (A
, BC
, ABC
, A_B_C
, ABCD
);
58 SUBTYPE SUBENUM
IS ENUM
RANGE A
.. ABC
;
60 TYPE NEWENUM
IS NEW ENUM
RANGE BC
.. A_B_C
;
61 TYPE NONEWENUM
IS NEW ENUM
RANGE ABCD
.. A
;
65 PROCEDURE P
(STR
: STRING);
67 PROCEDURE P
(STR
: STRING) IS
68 SUBTYPE NOENUM
IS E
RANGE
69 E
'VAL (IDENT_INT
(2)) .. E
'VAL (IDENT_INT
(1));
72 FAILED
( "INCORRECT E'FIRST FOR " & STR
);
74 IF NOENUM
'FIRST /= E
'VAL (2) THEN
75 FAILED
( "INCORRECT NOENUM'FIRST FOR " & STR
);
79 FAILED
( "INCORRECT E'LAST FOR " & STR
);
81 IF NOENUM
'LAST /= E
'VAL (1) THEN
82 FAILED
( "INCORRECT NOENUM'LAST FOR " & STR
);
91 SUBTYPE NOENUM
IS E
RANGE
92 E
'VAL (IDENT_INT
(2)) .. E
'VAL (IDENT_INT
(1));
94 IF E
'FIRST /= E
'VAL (IDENT_INT
(4)) THEN
95 FAILED
( "INCORRECT E'FIRST FOR NONEWENUM" );
97 IF NOENUM
'FIRST /= E
'VAL (2) THEN
98 FAILED
( "INCORRECT NOENUM'FIRST FOR NONEWENUM");
101 IF E
'LAST /= E
'VAL (IDENT_INT
(0)) THEN
102 FAILED
( "INCORRECT E'LAST FOR NONEWENUM");
104 IF NOENUM
'LAST /= E
'VAL (1) THEN
105 FAILED
( "INCORRECT NOENUM'LAST FOR NONEWENUM");
109 PROCEDURE PROC1
IS NEW P
(ENUM
, A
, ABCD
);
110 PROCEDURE PROC2
IS NEW P
(SUBENUM
, A
, ABC
);
111 PROCEDURE PROC3
IS NEW P
(NEWENUM
, BC
, A_B_C
);
112 PROCEDURE PROC4
IS NEW Q
(NONEWENUM
);