Dead
[official-gcc.git] / gomp-20050608-branch / gcc / testsuite / ada / acats / tests / cd / cd2a22e.ada
blob2ed878c5bf8799057cd173788d3cbed3b53a9aa1
1 -- CD2A22E.ADA
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.
16 -- DISCLAIMER
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:
27 -- CHECK THAT IF A SIZE CLAUSE SPECIFYING THE SMALLEST SIZE
28 -- APPROPRIATE FOR AN UNSIGNED REPRESENTATION IS GIVEN FOR AN
29 -- ENUMERATION TYPE, THEN OPERATIONS ON VALUES OF SUCH A TYPE
30 -- ARE NOT AFFECTED BY THE REPRESENTATION CLAUSE.
32 -- HISTORY:
33 -- JET 08/12/87 CREATED ORIGINAL TEST.
34 -- PWB 05/11/89 CHANGED EXTENSION FROM '.DEP' TO '.ADA'.
35 -- JRL 03/27/92 ELIMINATED REDUNDANT TESTING.
37 WITH REPORT; USE REPORT;
38 PROCEDURE CD2A22E IS
40 BASIC_SIZE : CONSTANT := 2;
42 TYPE CHECK_TYPE IS (ZERO, ONE, TWO);
44 FOR CHECK_TYPE'SIZE USE BASIC_SIZE;
46 C0 : CHECK_TYPE := ZERO;
47 C1 : CHECK_TYPE := ONE;
48 C2 : CHECK_TYPE := TWO;
50 TYPE ARRAY_TYPE IS ARRAY (0 .. 2) OF CHECK_TYPE;
51 CHARRAY : ARRAY_TYPE := (ZERO, ONE, TWO);
53 TYPE REC_TYPE IS RECORD
54 COMP0 : CHECK_TYPE := ZERO;
55 COMP1 : CHECK_TYPE := ONE;
56 COMP2 : CHECK_TYPE := TWO;
57 END RECORD;
59 CHREC : REC_TYPE;
61 FUNCTION IDENT (CH : CHECK_TYPE) RETURN CHECK_TYPE IS
62 BEGIN
63 IF EQUAL (3, 3) THEN
64 RETURN CH;
65 ELSE
66 RETURN ONE;
67 END IF;
68 END IDENT;
70 PROCEDURE PROC (CI0, CI2 : CHECK_TYPE;
71 CIO1, CIO2 : IN OUT CHECK_TYPE;
72 CO2 : OUT CHECK_TYPE) IS
73 BEGIN
74 IF CIO1'SIZE < IDENT_INT (BASIC_SIZE) THEN
75 FAILED ("INCORRECT VALUE FOR CIO1'SIZE");
76 END IF;
78 IF NOT ((IDENT (CIO1) IN CIO1 .. CIO2) AND
79 (CI0 NOT IN IDENT (ONE) .. CIO2)) THEN
80 FAILED ("INCORRECT RESULTS FOR MEMBERSHIP OPERATORS " &
81 "- 1");
82 END IF;
84 IF CHECK_TYPE'VAL (0) /= IDENT (CI0) OR
85 CHECK_TYPE'VAL (1) /= IDENT (CIO1) OR
86 CHECK_TYPE'VAL (2) /= IDENT (CIO2) THEN
87 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'VAL - 1");
88 END IF;
90 IF CHECK_TYPE'PRED (CIO1) /= IDENT (CI0) OR
91 CHECK_TYPE'PRED (CIO2) /= IDENT (CIO1) THEN
92 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'PRED - 1");
93 END IF;
95 IF CHECK_TYPE'VALUE ("ZERO") /= IDENT (CI0) OR
96 CHECK_TYPE'VALUE ("ONE") /= IDENT (CIO1) OR
97 CHECK_TYPE'VALUE ("TWO") /= IDENT (CIO2) THEN
98 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'VALUE - 1");
99 END IF;
101 CO2 := TWO;
103 END PROC;
105 BEGIN
106 TEST ("CD2A22E", "CHECK THAT IF A SIZE CLAUSE " &
107 "SPECIFYING THE SMALLEST SIZE APPROPRIATE " &
108 "FOR AN UNSIGNED REPRESENTATION IS GIVEN " &
109 "FOR AN ENUMERATION TYPE, THEN OPERATIONS " &
110 "ON VALUES OF SUCH A TYPE ARE NOT AFFECTED " &
111 "BY THE REPRESENTATION CLAUSE");
113 PROC (ZERO, TWO, C1, C2, C2);
115 IF CHECK_TYPE'SIZE /= IDENT_INT (BASIC_SIZE) THEN
116 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'SIZE");
117 END IF;
119 IF C0'SIZE < IDENT_INT (BASIC_SIZE) THEN
120 FAILED ("INCORRECT VALUE FOR C0'SIZE");
121 END IF;
123 IF NOT ((C0 < IDENT (ONE)) AND(IDENT (C2) > IDENT (C1)) AND
124 (C1 <= IDENT (ONE)) AND(IDENT (TWO) = C2)) THEN
125 FAILED ("INCORRECT RESULTS FOR RELATIONAL OPERATORS - 2");
126 END IF;
128 IF CHECK_TYPE'LAST /= IDENT (TWO) THEN
129 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'LAST - 2");
130 END IF;
132 IF CHECK_TYPE'POS (C0) /= IDENT_INT (0) OR
133 CHECK_TYPE'POS (C1) /= IDENT_INT (1) OR
134 CHECK_TYPE'POS (C2) /= IDENT_INT (2) THEN
135 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'POS - 2");
136 END IF;
138 IF CHECK_TYPE'SUCC (C0) /= IDENT (C1) OR
139 CHECK_TYPE'SUCC (C1) /= IDENT (C2) THEN
140 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'SUCC - 2");
141 END IF;
143 IF CHECK_TYPE'IMAGE (C0) /= IDENT_STR ("ZERO") OR
144 CHECK_TYPE'IMAGE (C1) /= IDENT_STR ("ONE") OR
145 CHECK_TYPE'IMAGE (C2) /= IDENT_STR ("TWO") THEN
146 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'IMAGE - 2");
147 END IF;
149 IF CHARRAY(1)'SIZE < IDENT_INT (BASIC_SIZE) THEN
150 FAILED ("INCORRECT VALUE FOR CHARRAY(1)'SIZE");
151 END IF;
153 IF NOT ((CHARRAY (0) < IDENT (ONE)) AND
154 (IDENT (CHARRAY (2)) > IDENT (CHARRAY (1))) AND
155 (CHARRAY (1) <= IDENT (ONE)) AND
156 (IDENT (TWO) = CHARRAY (2))) THEN
157 FAILED ("INCORRECT RESULTS FOR RELATIONAL OPERATORS - 3");
158 END IF;
160 IF NOT ((IDENT (CHARRAY (1)) IN CHARRAY (1) .. CHARRAY (2)) AND
161 (CHARRAY (0) NOT IN IDENT (ONE) .. CHARRAY (2))) THEN
162 FAILED ("INCORRECT RESULTS FOR MEMBERSHIP OPERATORS - 3");
163 END IF;
165 IF CHECK_TYPE'VAL (0) /= IDENT (CHARRAY (0)) OR
166 CHECK_TYPE'VAL (1) /= IDENT (CHARRAY (1)) OR
167 CHECK_TYPE'VAL (2) /= IDENT (CHARRAY (2)) THEN
168 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'VAL - 3");
169 END IF;
171 IF CHECK_TYPE'PRED (CHARRAY (1)) /= IDENT (CHARRAY (0)) OR
172 CHECK_TYPE'PRED (CHARRAY (2)) /= IDENT (CHARRAY (1)) THEN
173 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'PRED - 3");
174 END IF;
176 IF CHECK_TYPE'VALUE ("ZERO") /= IDENT (CHARRAY (0)) OR
177 CHECK_TYPE'VALUE ("ONE") /= IDENT (CHARRAY (1)) OR
178 CHECK_TYPE'VALUE ("TWO") /= IDENT (CHARRAY (2)) THEN
179 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'VALUE - 3");
180 END IF;
182 IF CHREC.COMP2'SIZE < IDENT_INT (BASIC_SIZE) THEN
183 FAILED ("INCORRECT VALUE FOR CHREC.COMP2'SIZE");
184 END IF;
186 IF NOT ((CHREC.COMP0 < IDENT (ONE)) AND
187 (IDENT (CHREC.COMP2) > IDENT (CHREC.COMP1)) AND
188 (CHREC.COMP1 <= IDENT (ONE)) AND
189 (IDENT (TWO) = CHREC.COMP2)) THEN
190 FAILED ("INCORRECT RESULTS FOR RELATIONAL OPERATORS - 4");
191 END IF;
193 IF NOT ((IDENT (CHREC.COMP1) IN CHREC.COMP1 .. CHREC.COMP2) AND
194 (CHREC.COMP0 NOT IN IDENT (ONE) .. CHREC.COMP2)) THEN
195 FAILED ("INCORRECT RESULTS FOR MEMBERSHIP OPERATORS - 4");
196 END IF;
198 IF CHECK_TYPE'POS (CHREC.COMP0) /= IDENT_INT (0) OR
199 CHECK_TYPE'POS (CHREC.COMP1) /= IDENT_INT (1) OR
200 CHECK_TYPE'POS (CHREC.COMP2) /= IDENT_INT (2) THEN
201 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'POS - 4");
202 END IF;
204 IF CHECK_TYPE'SUCC (CHREC.COMP0) /= IDENT (CHREC.COMP1) OR
205 CHECK_TYPE'SUCC (CHREC.COMP1) /= IDENT (CHREC.COMP2) THEN
206 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'SUCC - 4");
207 END IF;
209 IF CHECK_TYPE'IMAGE (CHREC.COMP0) /= IDENT_STR ("ZERO") OR
210 CHECK_TYPE'IMAGE (CHREC.COMP1) /= IDENT_STR ("ONE") OR
211 CHECK_TYPE'IMAGE (CHREC.COMP2) /= IDENT_STR ("TWO") THEN
212 FAILED ("INCORRECT VALUE FOR CHECK_TYPE'IMAGE - 4");
213 END IF;
215 RESULT;
216 END CD2A22E;