annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 -- AD7203B.ADA
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 -- Grant of Unlimited Rights
kono
parents:
diff changeset
4 --
kono
parents:
diff changeset
5 -- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
kono
parents:
diff changeset
6 -- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
kono
parents:
diff changeset
7 -- unlimited rights in the software and documentation contained herein.
kono
parents:
diff changeset
8 -- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
kono
parents:
diff changeset
9 -- this public release, the Government intends to confer upon all
kono
parents:
diff changeset
10 -- recipients unlimited rights equal to those held by the Government.
kono
parents:
diff changeset
11 -- These rights include rights to use, duplicate, release or disclose the
kono
parents:
diff changeset
12 -- released technical data and computer software in whole or in part, in
kono
parents:
diff changeset
13 -- any manner and for any purpose whatsoever, and to have or permit others
kono
parents:
diff changeset
14 -- to do so.
kono
parents:
diff changeset
15 --
kono
parents:
diff changeset
16 -- DISCLAIMER
kono
parents:
diff changeset
17 --
kono
parents:
diff changeset
18 -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
kono
parents:
diff changeset
19 -- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
kono
parents:
diff changeset
20 -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
kono
parents:
diff changeset
21 -- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
kono
parents:
diff changeset
22 -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
kono
parents:
diff changeset
23 -- PARTICULAR PURPOSE OF SAID MATERIAL.
kono
parents:
diff changeset
24 --*
kono
parents:
diff changeset
25 -- OBJECTIVE:
kono
parents:
diff changeset
26 -- CHECK THAT THE PREFIX OF THE 'SIZE' ATTRIBUTE CAN BE AN OBJECT,
kono
parents:
diff changeset
27 -- A TYPE, OR A SUBTYPE.
kono
parents:
diff changeset
28
kono
parents:
diff changeset
29 -- HISTORY:
kono
parents:
diff changeset
30 -- BCB 09/27/88 CREATED ORIGINAL TEST BY MODIFYING AND RENAMING
kono
parents:
diff changeset
31 -- CD7203B.ADA.
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 WITH SYSTEM;
kono
parents:
diff changeset
34 WITH REPORT; USE REPORT;
kono
parents:
diff changeset
35 PROCEDURE AD7203B IS
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 TYPE I_REC IS
kono
parents:
diff changeset
38 RECORD
kono
parents:
diff changeset
39 I1, I2 : INTEGER;
kono
parents:
diff changeset
40 END RECORD;
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 I : INTEGER;
kono
parents:
diff changeset
43 I_A : ARRAY (1 ..5) OF INTEGER;
kono
parents:
diff changeset
44 I_R : I_REC;
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 I_SIZE : INTEGER := I'SIZE;
kono
parents:
diff changeset
47 I_A_SIZE : INTEGER := I_A'SIZE;
kono
parents:
diff changeset
48 I_R_SIZE : INTEGER := I_R'SIZE;
kono
parents:
diff changeset
49 I_A_1_SIZE : INTEGER := I_A(1)'SIZE;
kono
parents:
diff changeset
50 I_R_I1_SIZE : INTEGER := I_R.I1'SIZE;
kono
parents:
diff changeset
51
kono
parents:
diff changeset
52 TYPE FIXED IS DELTA 0.01 RANGE -1.0 .. 1.0;
kono
parents:
diff changeset
53 TYPE FXD_REC IS
kono
parents:
diff changeset
54 RECORD
kono
parents:
diff changeset
55 FXD1, FXD2 : FIXED;
kono
parents:
diff changeset
56 END RECORD;
kono
parents:
diff changeset
57
kono
parents:
diff changeset
58 FXD : FIXED;
kono
parents:
diff changeset
59 FXD_A : ARRAY (1 .. 5) OF FIXED;
kono
parents:
diff changeset
60 FXD_R : FXD_REC;
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62 FXD_SIZE : INTEGER := FXD'SIZE;
kono
parents:
diff changeset
63 FXD_A_SIZE : INTEGER := FXD_A'SIZE;
kono
parents:
diff changeset
64 FXD_R_SIZE : INTEGER := FXD_R'SIZE;
kono
parents:
diff changeset
65 FXD_A_1_SIZE : INTEGER := FXD_A(1)'SIZE;
kono
parents:
diff changeset
66 FXD_R_FXD1_SIZE : INTEGER := FXD_R.FXD1'SIZE;
kono
parents:
diff changeset
67
kono
parents:
diff changeset
68 TYPE FLT_REC IS
kono
parents:
diff changeset
69 RECORD
kono
parents:
diff changeset
70 FLT1, FLT2 : FLOAT;
kono
parents:
diff changeset
71 END RECORD;
kono
parents:
diff changeset
72
kono
parents:
diff changeset
73 FLT : FLOAT;
kono
parents:
diff changeset
74 FLT_A : ARRAY (1 .. 5) OF FLOAT;
kono
parents:
diff changeset
75 FLT_R : FLT_REC;
kono
parents:
diff changeset
76
kono
parents:
diff changeset
77 FLT_SIZE : INTEGER := FLT'SIZE;
kono
parents:
diff changeset
78 FLT_A_SIZE : INTEGER := FLT_A'SIZE;
kono
parents:
diff changeset
79 FLT_R_SIZE : INTEGER := FLT_R'SIZE;
kono
parents:
diff changeset
80 FLT_A_1_SIZE : INTEGER := FLT_A(1)'SIZE;
kono
parents:
diff changeset
81 FLT_R_FLT1_SIZE : INTEGER := FLT_R.FLT1'SIZE;
kono
parents:
diff changeset
82
kono
parents:
diff changeset
83 SUBTYPE TINY_INT IS INTEGER RANGE 0 .. 255;
kono
parents:
diff changeset
84 TYPE TI_REC IS
kono
parents:
diff changeset
85 RECORD
kono
parents:
diff changeset
86 TI1, TI2 : TINY_INT;
kono
parents:
diff changeset
87 END RECORD;
kono
parents:
diff changeset
88
kono
parents:
diff changeset
89 TI : TINY_INT;
kono
parents:
diff changeset
90 TI_A : ARRAY (1 .. 5) OF TINY_INT;
kono
parents:
diff changeset
91 TI_R : TI_REC;
kono
parents:
diff changeset
92
kono
parents:
diff changeset
93 TINY_INT_SIZE : INTEGER := TINY_INT'SIZE;
kono
parents:
diff changeset
94 TI_SIZE : INTEGER := TI'SIZE;
kono
parents:
diff changeset
95 TI_A_SIZE : INTEGER := TI_A'SIZE;
kono
parents:
diff changeset
96 TI_R_SIZE : INTEGER := TI_R'SIZE;
kono
parents:
diff changeset
97 TI_A_1_SIZE : INTEGER := TI_A(1)'SIZE;
kono
parents:
diff changeset
98 TI_R_TI1_SIZE : INTEGER := TI_R.TI1'SIZE;
kono
parents:
diff changeset
99
kono
parents:
diff changeset
100 TYPE STR IS ARRAY (TINY_INT RANGE <>) OF CHARACTER;
kono
parents:
diff changeset
101 TYPE STR_2 IS ARRAY (1 .. 127) OF CHARACTER;
kono
parents:
diff changeset
102 TYPE STR_REC IS
kono
parents:
diff changeset
103 RECORD
kono
parents:
diff changeset
104 S1, S2 : STR (TINY_INT'FIRST .. TINY_INT'LAST);
kono
parents:
diff changeset
105 END RECORD;
kono
parents:
diff changeset
106
kono
parents:
diff changeset
107 S : STR (TINY_INT'FIRST .. TINY_INT'LAST);
kono
parents:
diff changeset
108 S_A : ARRAY (1 .. 5) OF STR (TINY_INT'FIRST .. TINY_INT'LAST);
kono
parents:
diff changeset
109 S_R : STR_REC;
kono
parents:
diff changeset
110
kono
parents:
diff changeset
111 STR_2_SIZE : INTEGER := STR_2'SIZE;
kono
parents:
diff changeset
112 S_SIZE : INTEGER := S'SIZE;
kono
parents:
diff changeset
113 S_A_SIZE : INTEGER := S_A'SIZE;
kono
parents:
diff changeset
114 S_R_SIZE : INTEGER := S_R'SIZE;
kono
parents:
diff changeset
115 S_A_1_SIZE : INTEGER := S_A(1)'SIZE;
kono
parents:
diff changeset
116 S_R_S1_SIZE : INTEGER := S_R.S1'SIZE;
kono
parents:
diff changeset
117
kono
parents:
diff changeset
118 TYPE C_REC IS
kono
parents:
diff changeset
119 RECORD
kono
parents:
diff changeset
120 C1, C2 : CHARACTER;
kono
parents:
diff changeset
121 END RECORD;
kono
parents:
diff changeset
122
kono
parents:
diff changeset
123 C : CHARACTER;
kono
parents:
diff changeset
124 C_A : ARRAY (1 .. 5) OF CHARACTER;
kono
parents:
diff changeset
125 C_R : C_REC;
kono
parents:
diff changeset
126
kono
parents:
diff changeset
127 C_SIZE : INTEGER := C'SIZE;
kono
parents:
diff changeset
128 C_A_SIZE : INTEGER := C_A'SIZE;
kono
parents:
diff changeset
129 C_R_SIZE : INTEGER := C_R'SIZE;
kono
parents:
diff changeset
130 C_A_1_SIZE : INTEGER := C_A(1)'SIZE;
kono
parents:
diff changeset
131 C_R_C1_SIZE : INTEGER := C_R.C1'SIZE;
kono
parents:
diff changeset
132
kono
parents:
diff changeset
133 TYPE B_REC IS
kono
parents:
diff changeset
134 RECORD
kono
parents:
diff changeset
135 B1, B2 : BOOLEAN;
kono
parents:
diff changeset
136 END RECORD;
kono
parents:
diff changeset
137
kono
parents:
diff changeset
138 B : BOOLEAN;
kono
parents:
diff changeset
139 B_A : ARRAY (1 .. 5) OF BOOLEAN;
kono
parents:
diff changeset
140 B_R : B_REC;
kono
parents:
diff changeset
141
kono
parents:
diff changeset
142 B_SIZE : INTEGER := B'SIZE;
kono
parents:
diff changeset
143 B_A_SIZE : INTEGER := B_A'SIZE;
kono
parents:
diff changeset
144 B_R_SIZE : INTEGER := B_R'SIZE;
kono
parents:
diff changeset
145 B_A_1_SIZE : INTEGER := B_A(1)'SIZE;
kono
parents:
diff changeset
146 B_R_B1_SIZE : INTEGER := B_R.B1'SIZE;
kono
parents:
diff changeset
147
kono
parents:
diff changeset
148 TYPE DISCR IS RANGE 1 .. 2;
kono
parents:
diff changeset
149 TYPE DISCR_REC (D : DISCR := 1) IS
kono
parents:
diff changeset
150 RECORD
kono
parents:
diff changeset
151 CASE D IS
kono
parents:
diff changeset
152 WHEN 1 =>
kono
parents:
diff changeset
153 C1_I : INTEGER;
kono
parents:
diff changeset
154 WHEN 2 =>
kono
parents:
diff changeset
155 C2_I1 : INTEGER;
kono
parents:
diff changeset
156 C2_I2 : INTEGER;
kono
parents:
diff changeset
157 END CASE;
kono
parents:
diff changeset
158 END RECORD;
kono
parents:
diff changeset
159
kono
parents:
diff changeset
160 DR_UC : DISCR_REC;
kono
parents:
diff changeset
161 DR_C : DISCR_REC (2);
kono
parents:
diff changeset
162 DR_A : ARRAY (1 .. 5) OF DISCR_REC;
kono
parents:
diff changeset
163
kono
parents:
diff changeset
164 DR_UC_SIZE : INTEGER := DR_UC'SIZE;
kono
parents:
diff changeset
165 DR_C_SIZE : INTEGER := DR_C'SIZE;
kono
parents:
diff changeset
166 DR_A_SIZE : INTEGER := DR_A'SIZE;
kono
parents:
diff changeset
167 DR_UC_C1_I_SIZE : INTEGER := DR_UC.C1_I'SIZE;
kono
parents:
diff changeset
168 DR_A_1_SIZE : INTEGER := DR_A(1)'SIZE;
kono
parents:
diff changeset
169
kono
parents:
diff changeset
170 TYPE ENUM IS (E1, E2, E3, E4);
kono
parents:
diff changeset
171 TYPE ENUM_REC IS
kono
parents:
diff changeset
172 RECORD
kono
parents:
diff changeset
173 E1, E2 : ENUM;
kono
parents:
diff changeset
174 END RECORD;
kono
parents:
diff changeset
175
kono
parents:
diff changeset
176 E : ENUM;
kono
parents:
diff changeset
177 E_A : ARRAY (1 .. 5) OF ENUM;
kono
parents:
diff changeset
178 E_R : ENUM_REC;
kono
parents:
diff changeset
179
kono
parents:
diff changeset
180 E_SIZE : INTEGER := E'SIZE;
kono
parents:
diff changeset
181 E_A_SIZE : INTEGER := E_A'SIZE;
kono
parents:
diff changeset
182 E_R_SIZE : INTEGER := E_R'SIZE;
kono
parents:
diff changeset
183 E_A_1_SIZE : INTEGER := E_A(1)'SIZE;
kono
parents:
diff changeset
184 E_R_E1_SIZE : INTEGER := E_R.E1'SIZE;
kono
parents:
diff changeset
185
kono
parents:
diff changeset
186 TASK TYPE TSK IS END TSK;
kono
parents:
diff changeset
187 TYPE TSK_REC IS
kono
parents:
diff changeset
188 RECORD
kono
parents:
diff changeset
189 TSK1, TSK2 : TSK;
kono
parents:
diff changeset
190 END RECORD;
kono
parents:
diff changeset
191
kono
parents:
diff changeset
192 T : TSK;
kono
parents:
diff changeset
193 T_A : ARRAY (1 .. 5) OF TSK;
kono
parents:
diff changeset
194 T_R : TSK_REC;
kono
parents:
diff changeset
195
kono
parents:
diff changeset
196 T_SIZE : INTEGER := T'SIZE;
kono
parents:
diff changeset
197 T_A_SIZE : INTEGER := T_A'SIZE;
kono
parents:
diff changeset
198 T_R_SIZE : INTEGER := T_R'SIZE;
kono
parents:
diff changeset
199 T_A_1_SIZE : INTEGER := T_A(1)'SIZE;
kono
parents:
diff changeset
200 T_R_TSK1_SIZE : INTEGER := T_R.TSK1'SIZE;
kono
parents:
diff changeset
201
kono
parents:
diff changeset
202 TYPE ACC IS ACCESS INTEGER;
kono
parents:
diff changeset
203 TYPE ACC_REC IS
kono
parents:
diff changeset
204 RECORD
kono
parents:
diff changeset
205 A1, A2 : ACC;
kono
parents:
diff changeset
206 END RECORD;
kono
parents:
diff changeset
207
kono
parents:
diff changeset
208 A : ACC;
kono
parents:
diff changeset
209 A_A : ARRAY (1 .. 5) OF ACC;
kono
parents:
diff changeset
210 A_R : ACC_REC;
kono
parents:
diff changeset
211
kono
parents:
diff changeset
212 A_SIZE : INTEGER := A'SIZE;
kono
parents:
diff changeset
213 A_A_SIZE : INTEGER := A_A'SIZE;
kono
parents:
diff changeset
214 A_R_SIZE : INTEGER := A_R'SIZE;
kono
parents:
diff changeset
215 A_A_1_SIZE : INTEGER := A_A(1)'SIZE;
kono
parents:
diff changeset
216 A_R_A1_SIZE : INTEGER := A_R.A1'SIZE;
kono
parents:
diff changeset
217
kono
parents:
diff changeset
218 PACKAGE PK IS
kono
parents:
diff changeset
219 TYPE PRV IS PRIVATE;
kono
parents:
diff changeset
220 TYPE PRV_REC IS
kono
parents:
diff changeset
221 RECORD
kono
parents:
diff changeset
222 P1, P2 : PRV;
kono
parents:
diff changeset
223 END RECORD;
kono
parents:
diff changeset
224
kono
parents:
diff changeset
225 TYPE LPRV IS LIMITED PRIVATE;
kono
parents:
diff changeset
226 TYPE LPRV_REC IS
kono
parents:
diff changeset
227 RECORD
kono
parents:
diff changeset
228 LP1, LP2 : LPRV;
kono
parents:
diff changeset
229 END RECORD;
kono
parents:
diff changeset
230 PRIVATE
kono
parents:
diff changeset
231 TYPE PRV IS NEW INTEGER;
kono
parents:
diff changeset
232
kono
parents:
diff changeset
233 TYPE LPRV IS NEW INTEGER;
kono
parents:
diff changeset
234 END PK;
kono
parents:
diff changeset
235 USE PK;
kono
parents:
diff changeset
236
kono
parents:
diff changeset
237 P : PRV;
kono
parents:
diff changeset
238 P_A : ARRAY (1 .. 5) OF PRV;
kono
parents:
diff changeset
239 P_R : PRV_REC;
kono
parents:
diff changeset
240
kono
parents:
diff changeset
241 P_SIZE : INTEGER := P'SIZE;
kono
parents:
diff changeset
242 P_A_SIZE : INTEGER := P_A'SIZE;
kono
parents:
diff changeset
243 P_R_SIZE : INTEGER := P_R'SIZE;
kono
parents:
diff changeset
244 P_A_1_SIZE : INTEGER := P_A(1)'SIZE;
kono
parents:
diff changeset
245 P_R_P1_SIZE : INTEGER := P_R.P1'SIZE;
kono
parents:
diff changeset
246
kono
parents:
diff changeset
247 LP : LPRV;
kono
parents:
diff changeset
248 LP_A : ARRAY (1 .. 5) OF LPRV;
kono
parents:
diff changeset
249 LP_R : LPRV_REC;
kono
parents:
diff changeset
250
kono
parents:
diff changeset
251 LP_SIZE : INTEGER := LP'SIZE;
kono
parents:
diff changeset
252 LP_A_SIZE : INTEGER := LP_A'SIZE;
kono
parents:
diff changeset
253 LP_R_SIZE : INTEGER := LP_R'SIZE;
kono
parents:
diff changeset
254 LP_A_1_SIZE : INTEGER := LP_A(1)'SIZE;
kono
parents:
diff changeset
255 LP_R_LP1_SIZE : INTEGER := LP_R.LP1'SIZE;
kono
parents:
diff changeset
256
kono
parents:
diff changeset
257 TASK BODY TSK IS
kono
parents:
diff changeset
258 BEGIN
kono
parents:
diff changeset
259 NULL;
kono
parents:
diff changeset
260 END TSK;
kono
parents:
diff changeset
261
kono
parents:
diff changeset
262 BEGIN
kono
parents:
diff changeset
263 TEST ("AD7203B", "CHECK THAT THE PREFIX OF THE 'SIZE' ATTRIBUTE " &
kono
parents:
diff changeset
264 "CAN BE AN OBJECT, A TYPE, OR A SUBTYPE");
kono
parents:
diff changeset
265
kono
parents:
diff changeset
266 RESULT;
kono
parents:
diff changeset
267 END AD7203B;