annotate gcc/testsuite/ada/acats/tests/c6/c64106c.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 -- C64106C.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 -- CHECK THAT ASSIGNMENTS TO FORMAL PARAMETERS OF UNCONSTRAINED
kono
parents:
diff changeset
26 -- RECORD, PRIVATE, AND LIMITED PRIVATE TYPES WITH DEFAULT
kono
parents:
diff changeset
27 -- CONSTRAINTS RAISE CONSTRAINT_ERROR IF THE ACTUAL PARAMETER IS
kono
parents:
diff changeset
28 -- CONSTRAINED AND THE CONSTRAINT VALUES OF THE OBJECT BEING
kono
parents:
diff changeset
29 -- ASSIGNED TO DO NOT SATISFY THOSE OF THE ACTUAL PARAMETER.
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 -- SUBTESTS ARE:
kono
parents:
diff changeset
32 -- (A) CONSTRAINED ACTUAL PARAMETERS OF RECORD TYPE.
kono
parents:
diff changeset
33 -- (B) CONSTRAINED ACTUAL PARAMETERS OF PRIVATE TYPE.
kono
parents:
diff changeset
34 -- (C) CONSTRAINED ACTUAL PARAMETERS OF LIMITED PRIVATE TYPE.
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 -- DAS 1/16/81
kono
parents:
diff changeset
37 -- VKG 1/7/83
kono
parents:
diff changeset
38 -- CPP 8/9/84
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 WITH REPORT;
kono
parents:
diff changeset
41 PROCEDURE C64106C IS
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 USE REPORT;
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 BEGIN
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 TEST ("C64106C", "CHECK ASSIGNMENTS TO FORMAL PARAMETERS OF " &
kono
parents:
diff changeset
48 "UNCONSTRAINED TYPES (WITH DEFAULTS)");
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 --------------------------------------------------
kono
parents:
diff changeset
51
kono
parents:
diff changeset
52 DECLARE -- (A)
kono
parents:
diff changeset
53
kono
parents:
diff changeset
54 PACKAGE PKG IS
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 SUBTYPE INTRANGE IS INTEGER RANGE 0..31;
kono
parents:
diff changeset
57
kono
parents:
diff changeset
58 TYPE RECTYPE (CONSTRAINT : INTRANGE := 15) IS
kono
parents:
diff changeset
59 RECORD
kono
parents:
diff changeset
60 INTFLD : INTRANGE;
kono
parents:
diff changeset
61 STRFLD : STRING(1..CONSTRAINT);
kono
parents:
diff changeset
62 END RECORD;
kono
parents:
diff changeset
63
kono
parents:
diff changeset
64 REC91,REC92,REC93 : RECTYPE(9);
kono
parents:
diff changeset
65 REC_OOPS : RECTYPE(4);
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 PROCEDURE P (REC1 : IN RECTYPE; REC2 : IN OUT RECTYPE;
kono
parents:
diff changeset
68 REC3 : OUT RECTYPE);
kono
parents:
diff changeset
69 END PKG;
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 PACKAGE BODY PKG IS
kono
parents:
diff changeset
72
kono
parents:
diff changeset
73 PROCEDURE P (REC1 : IN RECTYPE; REC2 : IN OUT RECTYPE;
kono
parents:
diff changeset
74 REC3 : OUT RECTYPE) IS
kono
parents:
diff changeset
75
kono
parents:
diff changeset
76 PROCEDURE P1 (REC11 : IN RECTYPE;
kono
parents:
diff changeset
77 REC12 : IN OUT RECTYPE;
kono
parents:
diff changeset
78 REC13 : OUT RECTYPE) IS
kono
parents:
diff changeset
79 BEGIN
kono
parents:
diff changeset
80 IF (NOT REC11'CONSTRAINED) OR
kono
parents:
diff changeset
81 (REC11.CONSTRAINT /= IDENT_INT(9)) THEN
kono
parents:
diff changeset
82 FAILED ("CONSTRAINT ON RECORD " &
kono
parents:
diff changeset
83 "TYPE IN PARAMETER " &
kono
parents:
diff changeset
84 "NOT RECOGNIZED");
kono
parents:
diff changeset
85 END IF;
kono
parents:
diff changeset
86
kono
parents:
diff changeset
87 BEGIN -- ASSIGNMENT TO IN OUT PARAMETER
kono
parents:
diff changeset
88 REC12 := REC_OOPS;
kono
parents:
diff changeset
89 FAILED ("CONSTRAINT ERROR NOT RAISED - " &
kono
parents:
diff changeset
90 "A.1");
kono
parents:
diff changeset
91 EXCEPTION
kono
parents:
diff changeset
92 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
93 NULL;
kono
parents:
diff changeset
94 WHEN OTHERS =>
kono
parents:
diff changeset
95 FAILED ("WRONG EXCEPTION RAISED - " &
kono
parents:
diff changeset
96 "A.1");
kono
parents:
diff changeset
97 END;
kono
parents:
diff changeset
98
kono
parents:
diff changeset
99 BEGIN -- ASSIGNMENT TO OUT PARAMETER
kono
parents:
diff changeset
100 REC13 := REC_OOPS;
kono
parents:
diff changeset
101 FAILED ("CONSTRAINT_ERROR NOT RAISED - " &
kono
parents:
diff changeset
102 "A.2");
kono
parents:
diff changeset
103 EXCEPTION
kono
parents:
diff changeset
104 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
105 NULL;
kono
parents:
diff changeset
106 WHEN OTHERS =>
kono
parents:
diff changeset
107 FAILED ("WRONG EXCEPTION RAISED - " &
kono
parents:
diff changeset
108 "A.2");
kono
parents:
diff changeset
109 END;
kono
parents:
diff changeset
110 END P1;
kono
parents:
diff changeset
111
kono
parents:
diff changeset
112 BEGIN
kono
parents:
diff changeset
113 P1 (REC1, REC2, REC3);
kono
parents:
diff changeset
114 END P;
kono
parents:
diff changeset
115
kono
parents:
diff changeset
116 BEGIN
kono
parents:
diff changeset
117
kono
parents:
diff changeset
118 REC91 := (9, 9, "123456789");
kono
parents:
diff changeset
119 REC92 := REC91;
kono
parents:
diff changeset
120 REC93 := REC91;
kono
parents:
diff changeset
121
kono
parents:
diff changeset
122 REC_OOPS := (4, 4, "OOPS");
kono
parents:
diff changeset
123
kono
parents:
diff changeset
124 END PKG;
kono
parents:
diff changeset
125
kono
parents:
diff changeset
126 BEGIN -- (A)
kono
parents:
diff changeset
127
kono
parents:
diff changeset
128 PKG.P (PKG.REC91, PKG.REC92, PKG.REC93);
kono
parents:
diff changeset
129
kono
parents:
diff changeset
130 END; -- (A)
kono
parents:
diff changeset
131
kono
parents:
diff changeset
132 --------------------------------------------------
kono
parents:
diff changeset
133
kono
parents:
diff changeset
134 DECLARE -- (B)
kono
parents:
diff changeset
135
kono
parents:
diff changeset
136 PACKAGE PKG IS
kono
parents:
diff changeset
137
kono
parents:
diff changeset
138 SUBTYPE INTRANGE IS INTEGER RANGE 0..31;
kono
parents:
diff changeset
139
kono
parents:
diff changeset
140 TYPE RECTYPE (CONSTRAINT : INTRANGE := 15) IS PRIVATE;
kono
parents:
diff changeset
141
kono
parents:
diff changeset
142 PROCEDURE P (REC1 : IN RECTYPE; REC2 : IN OUT RECTYPE;
kono
parents:
diff changeset
143 REC3 : OUT RECTYPE);
kono
parents:
diff changeset
144
kono
parents:
diff changeset
145 PRIVATE
kono
parents:
diff changeset
146
kono
parents:
diff changeset
147 TYPE RECTYPE (CONSTRAINT : INTRANGE := 15) IS
kono
parents:
diff changeset
148 RECORD
kono
parents:
diff changeset
149 INTFLD : INTRANGE;
kono
parents:
diff changeset
150 STRFLD : STRING(1..CONSTRAINT);
kono
parents:
diff changeset
151 END RECORD;
kono
parents:
diff changeset
152 END PKG;
kono
parents:
diff changeset
153
kono
parents:
diff changeset
154 REC91, REC92, REC93 : PKG.RECTYPE(9);
kono
parents:
diff changeset
155 REC_OOPS : PKG.RECTYPE(4);
kono
parents:
diff changeset
156
kono
parents:
diff changeset
157 PACKAGE BODY PKG IS
kono
parents:
diff changeset
158
kono
parents:
diff changeset
159 PROCEDURE P (REC1 : IN RECTYPE; REC2 : IN OUT RECTYPE;
kono
parents:
diff changeset
160 REC3 : OUT RECTYPE) IS
kono
parents:
diff changeset
161
kono
parents:
diff changeset
162 PROCEDURE P1 (REC11 : IN RECTYPE;
kono
parents:
diff changeset
163 REC12 : IN OUT RECTYPE;
kono
parents:
diff changeset
164 REC13 : OUT RECTYPE) IS
kono
parents:
diff changeset
165 BEGIN
kono
parents:
diff changeset
166 IF (NOT REC11'CONSTRAINED) OR
kono
parents:
diff changeset
167 (REC11.CONSTRAINT /= IDENT_INT(9)) THEN
kono
parents:
diff changeset
168 FAILED ("CONSTRAINT ON PRIVATE " &
kono
parents:
diff changeset
169 "TYPE IN PARAMETER " &
kono
parents:
diff changeset
170 "NOT RECOGNIZED");
kono
parents:
diff changeset
171 END IF;
kono
parents:
diff changeset
172
kono
parents:
diff changeset
173 BEGIN -- ASSIGNMENT TO IN OUT PARAMETER
kono
parents:
diff changeset
174 REC12 := REC_OOPS;
kono
parents:
diff changeset
175 FAILED ("CONSTRAINT ERROR NOT RAISED - " &
kono
parents:
diff changeset
176 "B.1");
kono
parents:
diff changeset
177 EXCEPTION
kono
parents:
diff changeset
178 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
179 NULL;
kono
parents:
diff changeset
180 WHEN OTHERS =>
kono
parents:
diff changeset
181 FAILED ("WRONG EXCEPTION RAISED - " &
kono
parents:
diff changeset
182 "B.1");
kono
parents:
diff changeset
183 END;
kono
parents:
diff changeset
184
kono
parents:
diff changeset
185 BEGIN -- ASSIGNMENT TO OUT PARAMETER
kono
parents:
diff changeset
186 REC13 := REC_OOPS;
kono
parents:
diff changeset
187 FAILED ("CONSTRAINT_ERROR NOT RAISED - " &
kono
parents:
diff changeset
188 "B.2");
kono
parents:
diff changeset
189 EXCEPTION
kono
parents:
diff changeset
190 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
191 NULL;
kono
parents:
diff changeset
192 WHEN OTHERS =>
kono
parents:
diff changeset
193 FAILED ("WRONG EXCEPTION RAISED - " &
kono
parents:
diff changeset
194 "B.2");
kono
parents:
diff changeset
195 END;
kono
parents:
diff changeset
196 END P1;
kono
parents:
diff changeset
197
kono
parents:
diff changeset
198 BEGIN
kono
parents:
diff changeset
199 P1 (REC1, REC2, REC3);
kono
parents:
diff changeset
200 END P;
kono
parents:
diff changeset
201
kono
parents:
diff changeset
202 BEGIN
kono
parents:
diff changeset
203
kono
parents:
diff changeset
204 REC91 := (9, 9, "123456789");
kono
parents:
diff changeset
205 REC92 := REC91;
kono
parents:
diff changeset
206 REC93 := REC91;
kono
parents:
diff changeset
207
kono
parents:
diff changeset
208 REC_OOPS := (4, 4, "OOPS");
kono
parents:
diff changeset
209
kono
parents:
diff changeset
210 END PKG;
kono
parents:
diff changeset
211
kono
parents:
diff changeset
212 BEGIN -- (B)
kono
parents:
diff changeset
213
kono
parents:
diff changeset
214 PKG.P (REC91, REC92, REC93);
kono
parents:
diff changeset
215
kono
parents:
diff changeset
216 END; -- (B)
kono
parents:
diff changeset
217
kono
parents:
diff changeset
218 --------------------------------------------------
kono
parents:
diff changeset
219
kono
parents:
diff changeset
220 DECLARE -- (C)
kono
parents:
diff changeset
221
kono
parents:
diff changeset
222 PACKAGE PKG IS
kono
parents:
diff changeset
223
kono
parents:
diff changeset
224 SUBTYPE INTRANGE IS INTEGER RANGE 0..31;
kono
parents:
diff changeset
225
kono
parents:
diff changeset
226 TYPE RECTYPE (CONSTRAINT : INTRANGE := 15) IS
kono
parents:
diff changeset
227 LIMITED PRIVATE;
kono
parents:
diff changeset
228
kono
parents:
diff changeset
229 PROCEDURE P (REC1 : IN RECTYPE; REC2 : IN OUT RECTYPE;
kono
parents:
diff changeset
230 REC3 : OUT RECTYPE);
kono
parents:
diff changeset
231
kono
parents:
diff changeset
232 PRIVATE
kono
parents:
diff changeset
233
kono
parents:
diff changeset
234 TYPE RECTYPE (CONSTRAINT : INTRANGE := 15) IS
kono
parents:
diff changeset
235 RECORD
kono
parents:
diff changeset
236 INTFLD : INTRANGE;
kono
parents:
diff changeset
237 STRFLD : STRING(1..CONSTRAINT);
kono
parents:
diff changeset
238 END RECORD;
kono
parents:
diff changeset
239 END PKG;
kono
parents:
diff changeset
240
kono
parents:
diff changeset
241 REC91,REC92,REC93 : PKG.RECTYPE(9);
kono
parents:
diff changeset
242 REC_OOPS : PKG.RECTYPE(4);
kono
parents:
diff changeset
243
kono
parents:
diff changeset
244 PACKAGE BODY PKG IS
kono
parents:
diff changeset
245
kono
parents:
diff changeset
246 PROCEDURE P (REC1 : IN RECTYPE; REC2 : IN OUT RECTYPE;
kono
parents:
diff changeset
247 REC3 : OUT RECTYPE) IS
kono
parents:
diff changeset
248
kono
parents:
diff changeset
249 PROCEDURE P1 (REC11 : IN RECTYPE;
kono
parents:
diff changeset
250 REC12 : IN OUT RECTYPE;
kono
parents:
diff changeset
251 REC13 : OUT RECTYPE) IS
kono
parents:
diff changeset
252 BEGIN
kono
parents:
diff changeset
253 IF (NOT REC11'CONSTRAINED) OR
kono
parents:
diff changeset
254 (REC11.CONSTRAINT /= 9) THEN
kono
parents:
diff changeset
255 FAILED ("CONSTRAINT ON LIMITED PRIVATE " &
kono
parents:
diff changeset
256 "TYPE IN PARAMETER " &
kono
parents:
diff changeset
257 "NOT RECOGNIZED");
kono
parents:
diff changeset
258 END IF;
kono
parents:
diff changeset
259
kono
parents:
diff changeset
260 BEGIN -- ASSIGNMENT TO IN OUT PARAMETER
kono
parents:
diff changeset
261 REC12 := REC_OOPS;
kono
parents:
diff changeset
262 FAILED ("CONSTRAINT ERROR NOT RAISED - " &
kono
parents:
diff changeset
263 "C.1");
kono
parents:
diff changeset
264 EXCEPTION
kono
parents:
diff changeset
265 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
266 NULL;
kono
parents:
diff changeset
267 WHEN OTHERS =>
kono
parents:
diff changeset
268 FAILED ("WRONG EXCEPTION RAISED - " &
kono
parents:
diff changeset
269 "C.1");
kono
parents:
diff changeset
270 END;
kono
parents:
diff changeset
271
kono
parents:
diff changeset
272 BEGIN -- ASSIGNMENT TO OUT PARAMETER
kono
parents:
diff changeset
273 REC13 := REC_OOPS;
kono
parents:
diff changeset
274 FAILED ("CONSTRAINT_ERROR NOT RAISED - " &
kono
parents:
diff changeset
275 "C.2");
kono
parents:
diff changeset
276 EXCEPTION
kono
parents:
diff changeset
277 WHEN CONSTRAINT_ERROR =>
kono
parents:
diff changeset
278 NULL;
kono
parents:
diff changeset
279 WHEN OTHERS =>
kono
parents:
diff changeset
280 FAILED ("WRONG EXCEPTION RAISED - " &
kono
parents:
diff changeset
281 "C.2");
kono
parents:
diff changeset
282 END;
kono
parents:
diff changeset
283 END P1;
kono
parents:
diff changeset
284
kono
parents:
diff changeset
285 BEGIN
kono
parents:
diff changeset
286 P1 (REC1, REC2, REC3);
kono
parents:
diff changeset
287 END P;
kono
parents:
diff changeset
288
kono
parents:
diff changeset
289 BEGIN
kono
parents:
diff changeset
290
kono
parents:
diff changeset
291 REC91 := (9, 9, "123456789");
kono
parents:
diff changeset
292 REC92 := REC91;
kono
parents:
diff changeset
293 REC93 := REC91;
kono
parents:
diff changeset
294
kono
parents:
diff changeset
295 REC_OOPS := (4, 4, "OOPS");
kono
parents:
diff changeset
296
kono
parents:
diff changeset
297 END PKG;
kono
parents:
diff changeset
298
kono
parents:
diff changeset
299 BEGIN -- (C)
kono
parents:
diff changeset
300
kono
parents:
diff changeset
301 PKG.P (REC91, REC92, REC93);
kono
parents:
diff changeset
302
kono
parents:
diff changeset
303 END; -- (C)
kono
parents:
diff changeset
304
kono
parents:
diff changeset
305 --------------------------------------------------
kono
parents:
diff changeset
306
kono
parents:
diff changeset
307 RESULT;
kono
parents:
diff changeset
308
kono
parents:
diff changeset
309 END C64106C;