2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / ada / acats / tests / c4 / c45347a.ada
bloba93ae875ee3a81f23184bfed6be18718a534e7bc
1 -- C45347A.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 CATENATION IS DEFINED FOR RECORD TYPES AS COMPONENT TYPES.
27 -- JWC 11/15/85
29 WITH REPORT; USE REPORT;
31 PROCEDURE C45347A IS
33 BEGIN
35 TEST ("C45347A", "CHECK THAT CATENATION IS DEFINED " &
36 "FOR RECORD TYPES AS COMPONENT TYPES");
38 DECLARE
40 TYPE REC IS
41 RECORD
42 X : INTEGER;
43 END RECORD;
45 SUBTYPE INT IS INTEGER RANGE 1 .. 4;
46 TYPE A IS ARRAY ( INT RANGE <>) OF REC;
48 R1 : REC := (X => 4);
49 R2 : REC := (X => 1);
51 A1 : A(1 .. 2) := ((X => 1), (X => 2));
52 A2 : A(1 .. 2) := ((X => 3), (X => 4));
53 A3 : A(1 .. 4) := ((X => 1), (X => 2), (X => 3), (X => 4));
54 A4 : A(1 .. 4);
55 A5 : A(1 .. 4) := ((X => 4), (X => 3), (X => 2), (X => 1));
57 BEGIN
59 A4 := A1 & A2;
61 IF A3 /= A4 THEN
62 FAILED ("INCORRECT CATENATION FOR TWO ARRAYS OF " &
63 "RECORDS");
64 END IF;
66 A4 := A5;
68 A4 := A1 & A2(1) & R1;
70 IF A3 /= A4 THEN
71 FAILED ("INCORRECT CATENATION FOR ARRAY OF RECORD, " &
72 "AND RECORDS");
73 END IF;
75 A4 := A5;
77 A4 := R2 & (A1(2) & A2);
79 IF A3 /= A4 THEN
80 FAILED ("INCORRECT CATENATION FOR RECORDS, " &
81 "AND ARRAY OF RECORDS");
82 END IF;
84 A4 := A5;
86 A4 := R2 & A1(2) & (A2(1) & R1);
88 IF A3 /= A4 THEN
89 FAILED ("INCORRECT CATENATION FOR RECORDS");
90 END IF;
92 END;
94 RESULT;
96 END C45347A;