Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / ada / acats / tests / c5 / c54a42b.ada
blobbcf1dcc9043a26b67880a693691ee40c26dd787b
1 -- C54A42B.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 A CASE_STATEMENT CORRECTLY HANDLES A SMALL RANGE OF
26 -- POTENTIAL VALUES GROUPED INTO A SMALL NUMBER OF ALTERNATIVES.
28 -- (OPTIMIZATION TEST -- JUMP TABLE.)
31 -- RM 03/26/81
32 -- PWN 11/30/94 SUBTYPE QUALIFIED LITERALS FOR ADA 9X.
35 WITH REPORT;
36 PROCEDURE C54A42B IS
38 USE REPORT ;
40 BEGIN
42 TEST( "C54A42B" , "TEST THAT A CASE_STATEMENT HANDLES CORRECTLY" &
43 " A SMALL NUMBER OF POTENTIAL VALUES GROUPED" &
44 " INTO A SMALL NUMBER OF ALTERNATIVES" );
46 DECLARE
48 STATCON : CONSTANT CHARACTER RANGE 'A'..'K' := 'J' ;
49 STATVAR : CHARACTER RANGE 'A'..'K' := 'A' ;
50 DYNCON : CONSTANT CHARACTER RANGE 'A'..'K' :=IDENT_CHAR('K');
51 DYNVAR : CHARACTER RANGE 'A'..'K' :=IDENT_CHAR('G');
53 BEGIN
55 CASE STATVAR IS
56 WHEN 'B' | 'E' => FAILED( "WRONG ALTERNATIVE A1" );
57 WHEN 'J' | 'C' => FAILED( "WRONG ALTERNATIVE A2" );
58 WHEN 'F' => FAILED( "WRONG ALTERNATIVE A3" );
59 WHEN 'D' | 'H'..'I' => FAILED( "WRONG ALTERNATIVE A4" );
60 WHEN 'G' => FAILED( "WRONG ALTERNATIVE A5" );
61 WHEN OTHERS => NULL ;
62 END CASE;
64 CASE CHARACTER'('B') IS
65 WHEN 'B' | 'E' => NULL ;
66 WHEN 'J' | 'C' => FAILED( "WRONG ALTERNATIVE B2" );
67 WHEN 'F' => FAILED( "WRONG ALTERNATIVE B3" );
68 WHEN 'D' | 'H'..'I' => FAILED( "WRONG ALTERNATIVE B4" );
69 WHEN 'G' => FAILED( "WRONG ALTERNATIVE B5" );
70 WHEN OTHERS => FAILED( "WRONG ALTERNATIVE B6" );
71 END CASE;
73 CASE DYNVAR IS
74 WHEN 'B' | 'E' => FAILED( "WRONG ALTERNATIVE C1" );
75 WHEN 'J' | 'C' => FAILED( "WRONG ALTERNATIVE C2" );
76 WHEN 'F' => FAILED( "WRONG ALTERNATIVE C3" );
77 WHEN 'D' | 'H'..'I' => FAILED( "WRONG ALTERNATIVE C4" );
78 WHEN 'G' => NULL ;
79 WHEN OTHERS => FAILED( "WRONG ALTERNATIVE C6" );
80 END CASE;
82 CASE IDENT_CHAR(STATCON) IS
83 WHEN 'B' | 'E' => FAILED( "WRONG ALTERNATIVE D1" );
84 WHEN 'J' | 'C' => NULL ;
85 WHEN 'F' => FAILED( "WRONG ALTERNATIVE D3" );
86 WHEN 'D' | 'H'..'I' => FAILED( "WRONG ALTERNATIVE D4" );
87 WHEN 'G' => FAILED( "WRONG ALTERNATIVE D5" );
88 WHEN OTHERS => FAILED( "WRONG ALTERNATIVE D6" );
89 END CASE;
91 CASE DYNCON IS
92 WHEN 'B' | 'E' => FAILED( "WRONG ALTERNATIVE E1" );
93 WHEN 'J' | 'C' => FAILED( "WRONG ALTERNATIVE E2" );
94 WHEN 'F' => FAILED( "WRONG ALTERNATIVE E3" );
95 WHEN 'D' | 'H'..'I' => FAILED( "WRONG ALTERNATIVE E4" );
96 WHEN 'G' => FAILED( "WRONG ALTERNATIVE E5" );
97 WHEN OTHERS => NULL ;
98 END CASE;
100 END ;
103 DECLARE
105 NUMBER : CONSTANT := 1 ;
106 LITEXPR : CONSTANT := NUMBER + 5 ;
107 STATCON : CONSTANT INTEGER RANGE 0..10 := 9 ;
108 DYNVAR : INTEGER RANGE 0..10 := IDENT_INT( 10 );
109 DYNCON : CONSTANT INTEGER RANGE 0..10 := IDENT_INT( 2 );
111 BEGIN
113 CASE INTEGER'(0) IS
114 WHEN 1 | 4 => FAILED("WRONG ALTERNATIVE F1");
115 WHEN 9 | 2 => FAILED("WRONG ALTERNATIVE F2");
116 WHEN 5 => FAILED("WRONG ALTERNATIVE F3");
117 WHEN 3 | 7..8 => FAILED("WRONG ALTERNATIVE F4");
118 WHEN 6 => FAILED("WRONG ALTERNATIVE F5");
119 WHEN OTHERS => NULL ;
120 END CASE;
122 CASE INTEGER'(NUMBER) IS
123 WHEN 1 | 4 => NULL ;
124 WHEN 9 | 2 => FAILED("WRONG ALTERNATIVE G2");
125 WHEN 5 => FAILED("WRONG ALTERNATIVE G3");
126 WHEN 3 | 7..8 => FAILED("WRONG ALTERNATIVE G4");
127 WHEN 6 => FAILED("WRONG ALTERNATIVE G5");
128 WHEN OTHERS => FAILED("WRONG ALTERNATIVE G6");
129 END CASE;
131 CASE IDENT_INT(LITEXPR) IS
132 WHEN 1 | 4 => FAILED("WRONG ALTERNATIVE H1");
133 WHEN 9 | 2 => FAILED("WRONG ALTERNATIVE H2");
134 WHEN 5 => FAILED("WRONG ALTERNATIVE H3");
135 WHEN 3 | 7..8 => FAILED("WRONG ALTERNATIVE H4");
136 WHEN 6 => NULL ;
137 WHEN OTHERS => FAILED("WRONG ALTERNATIVE H6");
138 END CASE;
140 CASE STATCON IS
141 WHEN 1 | 4 => FAILED("WRONG ALTERNATIVE I1");
142 WHEN 9 | 2 => NULL ;
143 WHEN 5 => FAILED("WRONG ALTERNATIVE I3");
144 WHEN 3 | 7..8 => FAILED("WRONG ALTERNATIVE I4");
145 WHEN 6 => FAILED("WRONG ALTERNATIVE I5");
146 WHEN OTHERS => FAILED("WRONG ALTERNATIVE I6");
147 END CASE;
149 CASE DYNVAR IS
150 WHEN 1 | 4 => FAILED("WRONG ALTERNATIVE J1");
151 WHEN 9 | 2 => FAILED("WRONG ALTERNATIVE J2");
152 WHEN 5 => FAILED("WRONG ALTERNATIVE J3");
153 WHEN 3 | 7..8 => FAILED("WRONG ALTERNATIVE J4");
154 WHEN 6 => FAILED("WRONG ALTERNATIVE J5");
155 WHEN OTHERS => NULL ;
156 END CASE;
158 CASE DYNCON IS
159 WHEN 1 | 4 => FAILED("WRONG ALTERNATIVE K1");
160 WHEN 9 | 2 => NULL ;
161 WHEN 5 => FAILED("WRONG ALTERNATIVE K3");
162 WHEN 3 | 7..8 => FAILED("WRONG ALTERNATIVE K4");
163 WHEN 6 => FAILED("WRONG ALTERNATIVE K5");
164 WHEN OTHERS => FAILED("WRONG ALTERNATIVE K6");
165 END CASE;
167 END ;
170 RESULT ;
173 END C54A42B ;