comparison gcc/testsuite/ada/acats/tests/a/ad7203b.ada @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 -- AD7203B.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 PREFIX OF THE 'SIZE' ATTRIBUTE CAN BE AN OBJECT,
27 -- A TYPE, OR A SUBTYPE.
28
29 -- HISTORY:
30 -- BCB 09/27/88 CREATED ORIGINAL TEST BY MODIFYING AND RENAMING
31 -- CD7203B.ADA.
32
33 WITH SYSTEM;
34 WITH REPORT; USE REPORT;
35 PROCEDURE AD7203B IS
36
37 TYPE I_REC IS
38 RECORD
39 I1, I2 : INTEGER;
40 END RECORD;
41
42 I : INTEGER;
43 I_A : ARRAY (1 ..5) OF INTEGER;
44 I_R : I_REC;
45
46 I_SIZE : INTEGER := I'SIZE;
47 I_A_SIZE : INTEGER := I_A'SIZE;
48 I_R_SIZE : INTEGER := I_R'SIZE;
49 I_A_1_SIZE : INTEGER := I_A(1)'SIZE;
50 I_R_I1_SIZE : INTEGER := I_R.I1'SIZE;
51
52 TYPE FIXED IS DELTA 0.01 RANGE -1.0 .. 1.0;
53 TYPE FXD_REC IS
54 RECORD
55 FXD1, FXD2 : FIXED;
56 END RECORD;
57
58 FXD : FIXED;
59 FXD_A : ARRAY (1 .. 5) OF FIXED;
60 FXD_R : FXD_REC;
61
62 FXD_SIZE : INTEGER := FXD'SIZE;
63 FXD_A_SIZE : INTEGER := FXD_A'SIZE;
64 FXD_R_SIZE : INTEGER := FXD_R'SIZE;
65 FXD_A_1_SIZE : INTEGER := FXD_A(1)'SIZE;
66 FXD_R_FXD1_SIZE : INTEGER := FXD_R.FXD1'SIZE;
67
68 TYPE FLT_REC IS
69 RECORD
70 FLT1, FLT2 : FLOAT;
71 END RECORD;
72
73 FLT : FLOAT;
74 FLT_A : ARRAY (1 .. 5) OF FLOAT;
75 FLT_R : FLT_REC;
76
77 FLT_SIZE : INTEGER := FLT'SIZE;
78 FLT_A_SIZE : INTEGER := FLT_A'SIZE;
79 FLT_R_SIZE : INTEGER := FLT_R'SIZE;
80 FLT_A_1_SIZE : INTEGER := FLT_A(1)'SIZE;
81 FLT_R_FLT1_SIZE : INTEGER := FLT_R.FLT1'SIZE;
82
83 SUBTYPE TINY_INT IS INTEGER RANGE 0 .. 255;
84 TYPE TI_REC IS
85 RECORD
86 TI1, TI2 : TINY_INT;
87 END RECORD;
88
89 TI : TINY_INT;
90 TI_A : ARRAY (1 .. 5) OF TINY_INT;
91 TI_R : TI_REC;
92
93 TINY_INT_SIZE : INTEGER := TINY_INT'SIZE;
94 TI_SIZE : INTEGER := TI'SIZE;
95 TI_A_SIZE : INTEGER := TI_A'SIZE;
96 TI_R_SIZE : INTEGER := TI_R'SIZE;
97 TI_A_1_SIZE : INTEGER := TI_A(1)'SIZE;
98 TI_R_TI1_SIZE : INTEGER := TI_R.TI1'SIZE;
99
100 TYPE STR IS ARRAY (TINY_INT RANGE <>) OF CHARACTER;
101 TYPE STR_2 IS ARRAY (1 .. 127) OF CHARACTER;
102 TYPE STR_REC IS
103 RECORD
104 S1, S2 : STR (TINY_INT'FIRST .. TINY_INT'LAST);
105 END RECORD;
106
107 S : STR (TINY_INT'FIRST .. TINY_INT'LAST);
108 S_A : ARRAY (1 .. 5) OF STR (TINY_INT'FIRST .. TINY_INT'LAST);
109 S_R : STR_REC;
110
111 STR_2_SIZE : INTEGER := STR_2'SIZE;
112 S_SIZE : INTEGER := S'SIZE;
113 S_A_SIZE : INTEGER := S_A'SIZE;
114 S_R_SIZE : INTEGER := S_R'SIZE;
115 S_A_1_SIZE : INTEGER := S_A(1)'SIZE;
116 S_R_S1_SIZE : INTEGER := S_R.S1'SIZE;
117
118 TYPE C_REC IS
119 RECORD
120 C1, C2 : CHARACTER;
121 END RECORD;
122
123 C : CHARACTER;
124 C_A : ARRAY (1 .. 5) OF CHARACTER;
125 C_R : C_REC;
126
127 C_SIZE : INTEGER := C'SIZE;
128 C_A_SIZE : INTEGER := C_A'SIZE;
129 C_R_SIZE : INTEGER := C_R'SIZE;
130 C_A_1_SIZE : INTEGER := C_A(1)'SIZE;
131 C_R_C1_SIZE : INTEGER := C_R.C1'SIZE;
132
133 TYPE B_REC IS
134 RECORD
135 B1, B2 : BOOLEAN;
136 END RECORD;
137
138 B : BOOLEAN;
139 B_A : ARRAY (1 .. 5) OF BOOLEAN;
140 B_R : B_REC;
141
142 B_SIZE : INTEGER := B'SIZE;
143 B_A_SIZE : INTEGER := B_A'SIZE;
144 B_R_SIZE : INTEGER := B_R'SIZE;
145 B_A_1_SIZE : INTEGER := B_A(1)'SIZE;
146 B_R_B1_SIZE : INTEGER := B_R.B1'SIZE;
147
148 TYPE DISCR IS RANGE 1 .. 2;
149 TYPE DISCR_REC (D : DISCR := 1) IS
150 RECORD
151 CASE D IS
152 WHEN 1 =>
153 C1_I : INTEGER;
154 WHEN 2 =>
155 C2_I1 : INTEGER;
156 C2_I2 : INTEGER;
157 END CASE;
158 END RECORD;
159
160 DR_UC : DISCR_REC;
161 DR_C : DISCR_REC (2);
162 DR_A : ARRAY (1 .. 5) OF DISCR_REC;
163
164 DR_UC_SIZE : INTEGER := DR_UC'SIZE;
165 DR_C_SIZE : INTEGER := DR_C'SIZE;
166 DR_A_SIZE : INTEGER := DR_A'SIZE;
167 DR_UC_C1_I_SIZE : INTEGER := DR_UC.C1_I'SIZE;
168 DR_A_1_SIZE : INTEGER := DR_A(1)'SIZE;
169
170 TYPE ENUM IS (E1, E2, E3, E4);
171 TYPE ENUM_REC IS
172 RECORD
173 E1, E2 : ENUM;
174 END RECORD;
175
176 E : ENUM;
177 E_A : ARRAY (1 .. 5) OF ENUM;
178 E_R : ENUM_REC;
179
180 E_SIZE : INTEGER := E'SIZE;
181 E_A_SIZE : INTEGER := E_A'SIZE;
182 E_R_SIZE : INTEGER := E_R'SIZE;
183 E_A_1_SIZE : INTEGER := E_A(1)'SIZE;
184 E_R_E1_SIZE : INTEGER := E_R.E1'SIZE;
185
186 TASK TYPE TSK IS END TSK;
187 TYPE TSK_REC IS
188 RECORD
189 TSK1, TSK2 : TSK;
190 END RECORD;
191
192 T : TSK;
193 T_A : ARRAY (1 .. 5) OF TSK;
194 T_R : TSK_REC;
195
196 T_SIZE : INTEGER := T'SIZE;
197 T_A_SIZE : INTEGER := T_A'SIZE;
198 T_R_SIZE : INTEGER := T_R'SIZE;
199 T_A_1_SIZE : INTEGER := T_A(1)'SIZE;
200 T_R_TSK1_SIZE : INTEGER := T_R.TSK1'SIZE;
201
202 TYPE ACC IS ACCESS INTEGER;
203 TYPE ACC_REC IS
204 RECORD
205 A1, A2 : ACC;
206 END RECORD;
207
208 A : ACC;
209 A_A : ARRAY (1 .. 5) OF ACC;
210 A_R : ACC_REC;
211
212 A_SIZE : INTEGER := A'SIZE;
213 A_A_SIZE : INTEGER := A_A'SIZE;
214 A_R_SIZE : INTEGER := A_R'SIZE;
215 A_A_1_SIZE : INTEGER := A_A(1)'SIZE;
216 A_R_A1_SIZE : INTEGER := A_R.A1'SIZE;
217
218 PACKAGE PK IS
219 TYPE PRV IS PRIVATE;
220 TYPE PRV_REC IS
221 RECORD
222 P1, P2 : PRV;
223 END RECORD;
224
225 TYPE LPRV IS LIMITED PRIVATE;
226 TYPE LPRV_REC IS
227 RECORD
228 LP1, LP2 : LPRV;
229 END RECORD;
230 PRIVATE
231 TYPE PRV IS NEW INTEGER;
232
233 TYPE LPRV IS NEW INTEGER;
234 END PK;
235 USE PK;
236
237 P : PRV;
238 P_A : ARRAY (1 .. 5) OF PRV;
239 P_R : PRV_REC;
240
241 P_SIZE : INTEGER := P'SIZE;
242 P_A_SIZE : INTEGER := P_A'SIZE;
243 P_R_SIZE : INTEGER := P_R'SIZE;
244 P_A_1_SIZE : INTEGER := P_A(1)'SIZE;
245 P_R_P1_SIZE : INTEGER := P_R.P1'SIZE;
246
247 LP : LPRV;
248 LP_A : ARRAY (1 .. 5) OF LPRV;
249 LP_R : LPRV_REC;
250
251 LP_SIZE : INTEGER := LP'SIZE;
252 LP_A_SIZE : INTEGER := LP_A'SIZE;
253 LP_R_SIZE : INTEGER := LP_R'SIZE;
254 LP_A_1_SIZE : INTEGER := LP_A(1)'SIZE;
255 LP_R_LP1_SIZE : INTEGER := LP_R.LP1'SIZE;
256
257 TASK BODY TSK IS
258 BEGIN
259 NULL;
260 END TSK;
261
262 BEGIN
263 TEST ("AD7203B", "CHECK THAT THE PREFIX OF THE 'SIZE' ATTRIBUTE " &
264 "CAN BE AN OBJECT, A TYPE, OR A SUBTYPE");
265
266 RESULT;
267 END AD7203B;