Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / ada / acats / tests / c3 / c35507b.ada
blobb50c4c0dc462e7faeb55a828a162838a28e0e552
1 -- C35507B.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 THE ATTRIBUTE 'WIDTH' YIELDS THE CORRECT RESULTS
26 -- WHEN THE PREFIX IS FORMAL DISCRETE TYPE WHOSE ACTUAL PARAMETER IS
27 -- A CHARACTER TYPE.
29 -- RJW 5/29/86
31 WITH REPORT; USE REPORT;
33 PROCEDURE C35507B IS
35 GENERIC
36 TYPE CH IS (<>);
37 PROCEDURE P ( STR : STRING; W : INTEGER );
39 PROCEDURE P ( STR : STRING; W : INTEGER ) IS
41 SUBTYPE NOCHAR IS CH RANGE CH'VAL (1) .. CH'VAL(0);
42 BEGIN
43 IF CH'WIDTH /= W THEN
44 FAILED( "INCORRECT WIDTH FOR " & STR );
45 END IF;
47 IF NOCHAR'WIDTH /= 0 THEN
48 FAILED( "INCORRECT WIDTH FOR NOCHAR WITH " & STR );
49 END IF;
50 END P;
53 BEGIN
55 TEST( "C35507B" , "CHECK THAT THE ATTRIBUTE 'WIDTH' YIELDS " &
56 "THE CORRECT RESULTS WHEN THE PREFIX " &
57 "IS A FORMAL DISCRETE TYPE WHOSE ACTUAL " &
58 "PARAMETER IS A CHARACTER TYPE" );
60 DECLARE
61 TYPE CHAR1 IS (A, 'A');
63 SUBTYPE CHAR2 IS CHARACTER RANGE 'A' .. 'Z';
65 TYPE NEWCHAR IS NEW CHARACTER
66 RANGE 'A' .. 'Z';
68 PROCEDURE P1 IS NEW P (CHAR1);
69 PROCEDURE P2 IS NEW P (CHAR2);
70 PROCEDURE P3 IS NEW P (NEWCHAR);
71 BEGIN
72 P1 ("CHAR1", 3);
73 P2 ("CHAR2", 3);
74 P3 ("NEWCHAR", 3);
75 END;
77 DECLARE
78 SUBTYPE NONGRAPH IS CHARACTER
79 RANGE CHARACTER'VAL (0) .. CHARACTER'VAL (31);
81 MAX : INTEGER := 0;
83 PROCEDURE PN IS NEW P (NONGRAPH);
84 BEGIN
85 FOR CH IN NONGRAPH
86 LOOP
87 IF CHARACTER'IMAGE (CH)'LENGTH > MAX THEN
88 MAX := CHARACTER'IMAGE (CH)'LENGTH;
89 END IF;
90 END LOOP;
92 PN ("NONGRAPH", MAX);
93 END;
95 RESULT;
96 END C35507B;