Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / ada / acats / tests / c5 / c52103k.ada
blobf0d593be48a66dba484533b7bab8c98f4e866aae
1 -- C52103K.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 -- CHECK THAT LENGTHS MUST MATCH IN ARRAY AND SLICE ASSIGNMENTS.
26 -- MORE SPECIFICALLY, TEST THAT ARRAY ASSIGNMENTS WITH MATCHING
27 -- LENGTHS DO NOT CAUSE CONSTRAINT_ERROR TO BE RAISED AND
28 -- ARE PERFORMED CORRECTLY.
29 -- (OVERLAPS BETWEEN THE OPERANDS OF THE ASSIGNMENT STATEMENT
30 -- ARE TREATED ELSEWHERE.)
32 -- DIVISION C : NON-NULL ARRAYS WHOSE LENGTHS ARE NOT DETERMINABLE
33 -- STATICALLY.
36 -- RM 07/20/81
37 -- SPS 3/22/83
40 WITH REPORT;
41 PROCEDURE C52103K IS
43 USE REPORT ;
45 BEGIN
47 TEST( "C52103K" , "CHECK THAT IN ARRAY ASSIGNMENTS AND IN SLICE" &
48 " ASSIGNMENTS THE LENGTHS MUST MATCH" );
51 -- IN THIS TEST WE CAN'T USE AGGREGATE ASSIGNMENT (EXCEPT WHEN
52 -- THE AGGREGATES ARE STRING LITERALS); THEREFORE:
54 -- (1) ARRAYS WILL BE INITIALIZED BY INDIVIDUAL ASSIGNMENTS;
55 -- (2) CAN'T USE NON-NULL CONSTANT ARRAYS.
58 -- WE ASSUME THAT IN AN ARRAY_TYPE_DEFINITION THE INDEX PORTION
59 -- AND THE COMPONENT_TYPE PORTION ARE FUNCTIONALLY ORTHOGONAL
60 -- ALSO AT THE IMPLEMENTATION LEVEL, I.E. THAT THE CORRECTNESS
61 -- OF THE ACCESSING MECHANISM FOR ARRAYS DOES NOT DEPEND ON
62 -- COMPONENT_TYPE. ACCORDINGLY WE ARE TESTING FOR SOME BUT
63 -- NOT ALL KINDS OF COMPONENT_TYPE. (COMPONENT_TYPES INCLUDED:
64 -- INTEGER , CHARACTER , BOOLEAN .)
67 -- CASES DISTINGUISHED: ( 8 SELECTED CASES ARE IMPLEMENTED)
69 -- ( THE SELECTIONS ARE 7 , 8 , 9 ,
70 -- AND PRECISELY 5 CASES FROM THE
71 -- TWO 5-CASE SERIES 2-3-4-5-6 AND
72 -- 10-11-12-13-14)
74 -- ( IN THE CURRENT DIVISION, THE 5
75 -- FLOATING SELECTIONS ARE 2-11-4-
76 -- -13-6 ; THUS THE 8 SELECTIONS ARE
77 -- 2-11-4-13-6-7-8-9 (IN THIS ORDER)
78 -- .)
81 -- ( EACH DIVISION COMPRISES 3 FILES,
82 -- COVERING RESPECTIVELY THE FIRST
83 -- 3 , NEXT 2 , AND LAST 3 OF THE 8
84 -- SELECTIONS FOR THE DIVISION.)
87 -- (1) ARRAY OBJECTS DECLARED IN THE SAME DECLARATION.
88 -- (TWO-DIMENSIONAL; NON-CONSTRAINABLE TYPEMARK.)
90 -- (THIS WILL BE THE ONLY CASE INVOLVING OBJECTS DECLARED
91 -- IN THE SAME DECLARATION.)
94 -- (2) MULTIDIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS WERE
95 -- DEFINED WITHOUT EVER USING THE "BOX" COMPOUND SYMBOL.
96 -- (TWO-DIMENSIONAL ARRAYS OF INTEGERS.)
98 -- (SLICING IS ILLEGAL; SINCE IN THIS TEST WE ARE NEVER
99 -- USING AGGREGATES
100 -- (EXCEPT FOR ONE-DIMENSIONAL ARRAYS OF CHARACTERS;
101 -- SEE (5) )
102 -- AND WE ARE NOT USING CONVERSION-TO-CONSTRAINED-TYPEMARKS
103 -- (AS IN T1(ARR) , WHERE ARR IS AN ARRAY
104 -- OBJECT AND T1 IS AN ARRAY TYPEMARK SIMILAR
105 -- -- AS MORE PRECISELY SPECIFIED IN RM 4.6(B) --
106 -- TO THE TYPEMARK OF ARR ),
107 -- THE ARRAY ASSIGNMENT CANNOT INVOLVE ANY SLIDING,
108 -- AND THE TYPEMARKS ARE ESSENTIALLY THE SAME.)
111 -- (3) UNSLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
112 -- WERE DEFINED WITHOUT EVER USING THE "BOX" SYMBOL
113 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
114 -- ((ONE-DIMENSIONAL) ARRAYS OF INTEGERS.)
116 -- (SINCE WE ARE NOT USING AGGREGATES
117 -- AND WE ARE NOT USING CONVERSION-TO-CONSTRAINED-TYPEMARKS,
118 -- THE ARRAY ASSIGNMENT CANNOT INVOLVE ANY SLIDING,
119 -- AND THE TYPEMARKS ARE ESSENTIALLY THE SAME.)
122 -- (4) SLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
123 -- WERE DEFINED WITHOUT EVER USING THE "BOX" SYMBOL
124 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
125 -- ((ONE-DIMENSIONAL) ARRAYS OF INTEGERS.)
127 -- (THE ASSIGNMENT MAY REQUIRE SLIDING.)
129 -- (MOST SUBSEQUENT SUBCASES IN THIS TEST (OTHER THAN NULL
130 -- ASSIGNMENTS) WILL INVOLVE SLIDING; WE ASSUME THAT
131 -- SUBCASES WHICH WORK IN CONJUNCTION WITH SLIDING WORK
132 -- ALSO WHEN NO SLIDING IS INVOLVED.)
135 -- (5) UNSLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
136 -- WERE DEFINED WITHOUT EVER USING THE "BOX" SYMBOL
137 -- AND FOR WHICH THE COMPONENT TYPE IS 'CHARACTER' .
139 -- (STRING LITERALS ARE THE ONLY AGGREGATES WE ARE USING
140 -- IN THIS TEST. TO FORCE SLIDING, THE LOWER LIMIT IMPLIED
141 -- BY THE TYPEMARK WILL NOT BE 1 .)
144 -- (6) SLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
145 -- WERE DEFINED WITHOUT EVER USING THE "BOX" SYMBOL
146 -- AND FOR WHICH THE COMPONENT TYPE IS 'CHARACTER' .
149 -- (7) UNSLICED OBJECTS OF THE PREDEFINED TYPE 'STRING' (BY
150 -- THEMSELVES).
153 -- (8) SLICED OBJECTS OF THE PREDEFINED TYPE 'STRING' , WITH
154 -- STRING LITERALS.
157 -- (9) SLICED OBJECTS OF THE PREDEFINED TYPE 'STRING' (BY
158 -- THEMSELVES).
161 -- (-) CONSTRAINABLE TYPES: ONLY SUBTESTS 2, 3, 4, 5, 6
162 -- WILL BE REPLICATED -- AS SUBTESTS 10, 11, 12, 13, 14 .
165 -- (10) MULTIDIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS WERE
166 -- DEFINED USING THE "BOX" COMPOUND SYMBOL.
167 -- (TWO-DIMENSIONAL ARRAYS OF INTEGERS.)
170 -- (11) UNSLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
171 -- WERE DEFINED USING THE "BOX" SYMBOL
172 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
173 -- ((ONE-DIMENSIONAL) ARRAYS OF INTEGERS.)
176 -- (12) SLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
177 -- WERE DEFINED USING THE "BOX" SYMBOL
178 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
179 -- ((ONE-DIMENSIONAL) ARRAYS OF BOOLEANS.)
182 -- (13) UNSLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
183 -- WERE DEFINED USING THE "BOX" SYMBOL
184 -- AND FOR WHICH THE COMPONENT TYPE IS 'CHARACTER' .
186 -- (STRING LITERALS ARE THE ONLY AGGREGATES WE ARE USING
187 -- IN THIS TEST. TO FORCE SLIDING, THE LOWER LIMIT IMPLIED
188 -- BY THE TYPEMARK WILL NOT BE 1 .)
191 -- (14) SLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
192 -- WERE DEFINED USING THE "BOX" SYMBOL
193 -- AND FOR WHICH THE COMPONENT TYPE IS 'CHARACTER' .
197 -- (-) SPECIAL CASES: NULL ARRAYS....... TREATED IN DIVISION B.
198 -- SUPERLONG ARRAYS.. (TREATED FOR DYNAMIC
199 -- ARRAYS ONLY,
200 -- DIVISIONS C AND D .)
203 -- (-) THE DYNAMIC-ARRAY COUNTERPARTS OF THESE TESTS ARE IN DI-
204 -- VISIONS C (FOR NON-NULL ARRAYS) AND D (FOR NULL ARRAYS).
209 -------------------------------------------------------------------
211 -- (2) MULTIDIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS WERE
212 -- DEFINED WITHOUT EVER USING THE "BOX" COMPOUND SYMBOL.
213 -- (TWO-DIMENSIONAL ARRAYS OF INTEGERS.)
215 DECLARE
217 TYPE TA21 IS ARRAY(
218 INTEGER RANGE IDENT_INT(1)..IDENT_INT(5) ,
219 INTEGER RANGE IDENT_INT(0)..IDENT_INT(7)
220 ) OF INTEGER ;
222 SUBTYPE TA22 IS TA21 ;
224 ARR21 : TA21 ;
225 ARR22 : TA22 ;
227 BEGIN
229 -- INITIALIZATION OF RHS ARRAY:
231 FOR I IN IDENT_INT(1)..IDENT_INT(5) LOOP
233 FOR J IN IDENT_INT(0)..IDENT_INT(7) LOOP
234 ARR21( I , J ) := I * I * J ;
235 END LOOP;
237 END LOOP;
240 -- ARRAY ASSIGNMENT:
242 ARR22 := ARR21 ;
244 -- CHECKING THE VALUES AFTER THE ARRAY ASSIGNMENT:
246 FOR I IN IDENT_INT(1)..IDENT_INT(5) LOOP
248 FOR J IN IDENT_INT(0)..IDENT_INT(7) LOOP
250 IF ARR22( I , J ) /= ( I-0 ) * ( I-0 ) * ( J-0 )
251 THEN
252 FAILED( "ARRAY ASSIGNMENT NOT CORRECT" );
253 END IF;
255 END LOOP;
257 END LOOP;
260 EXCEPTION
262 WHEN OTHERS =>
263 FAILED( "EXCEPTION RAISED - SUBTEST 2" );
265 END ;
268 -------------------------------------------------------------------
270 -- (11) UNSLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
271 -- WERE DEFINED USING THE "BOX" SYMBOL
272 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
273 -- ((ONE-DIMENSIONAL) ARRAYS OF INTEGERS.)
275 DECLARE
277 TYPE TABOX1 IS ARRAY( INTEGER RANGE <> ) OF INTEGER ;
279 SUBTYPE TABOX11 IS TABOX1( IDENT_INT(1)..IDENT_INT(5) ) ;
281 ARRX11 : TABOX11 ;
282 ARRX12 : TABOX1( IDENT_INT(5)..IDENT_INT(9) );
284 BEGIN
286 -- INITIALIZATION OF RHS ARRAY:
288 FOR I IN IDENT_INT(1)..IDENT_INT(5) LOOP
289 ARRX11( I ) := I * I ;
290 END LOOP;
293 -- ARRAY ASSIGNMENT:
295 ARRX12 := ARRX11 ;
297 -- CHECKING THE VALUES AFTER THE ARRAY ASSIGNMENT:
299 FOR I IN IDENT_INT(5)..IDENT_INT(9) LOOP
301 IF ARRX12( I ) /= ( I-4 ) * ( I-4 )
302 THEN
303 FAILED( "ARRAY ASSIGNMENT NOT CORRECT (11)" );
304 END IF;
306 END LOOP;
309 EXCEPTION
311 WHEN OTHERS =>
312 FAILED( "EXCEPTION RAISED - SUBTEST 11" );
314 END ;
317 -------------------------------------------------------------------
319 -- (4) SLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
320 -- WERE DEFINED WITHOUT EVER USING THE "BOX" SYMBOL
321 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
322 -- ((ONE-DIMENSIONAL) ARRAYS OF BOOLEANS.)
324 DECLARE
326 TYPE TA42 IS ARRAY(
327 INTEGER RANGE IDENT_INT(1)..IDENT_INT(5)
328 ) OF BOOLEAN ;
330 SUBTYPE TA41 IS TA42 ;
332 ARR41 : TA41 ;
333 ARR42 : TA42 ;
335 BEGIN
337 -- INITIALIZATION OF RHS ARRAY:
339 FOR I IN IDENT_INT(1)..IDENT_INT(5) LOOP
340 ARR41( I ) := FALSE ; -- VALUES WILL BE: F T F F T
341 END LOOP;
343 ARR41(2) := TRUE ;
345 ARR41(5) := TRUE ; -- RHS VALUES ARE: F T F F T
348 -- INITIALIZATION OF UNUSED COMPONENT OF LHS ARRAY:
350 ARR42( 1 ) := TRUE ;
353 -- SLICE ASSIGNMENT:
355 ARR42( IDENT_INT(2)..IDENT_INT(5) ) :=
356 ARR41(
357 IDENT_INT(1)..IDENT_INT(4) ) ;
360 -- CHECKING THE VALUES AFTER THE SLICE ASSIGNMENT:
362 FOR I IN IDENT_INT(2)..IDENT_INT(5) LOOP
364 IF ARR42( I ) /= FALSE AND I /= 3
365 THEN
366 FAILED( "SLICE ASSIGNMENT NOT CORRECT (VALUES)" );
367 ELSIF ARR42( I ) /= TRUE AND I = 3
368 THEN
369 FAILED( "SLICE ASSIGNMENT NOT CORRECT (VALUES)" );
370 END IF;
372 END LOOP;
374 IF ARR42( 1 ) /= TRUE
375 THEN
376 FAILED( "SLICE ASSIGNMENT NOT CORRECT (SLIDING)" );
377 END IF;
379 EXCEPTION
381 WHEN OTHERS =>
382 FAILED( "EXCEPTION RAISED - SUBTEST 4" );
384 END ;
387 -------------------------------------------------------------------
390 RESULT ;
393 END C52103K;