2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / ada / acats / tests / c4 / c45347c.ada
blob0ad23a7a6a95990b810ed0dbd6199f47289f7d9c
1 -- C45347C.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 PRIVATE TYPES AS COMPONENT
26 -- TYPES.
28 -- JWC 11/15/85
30 WITH REPORT; USE REPORT;
32 PROCEDURE C45347C IS
34 BEGIN
36 TEST ("C45347C", "CHECK THAT CATENATION IS DEFINED " &
37 "FOR PRIVATE TYPES AS COMPONENT TYPES");
39 DECLARE
41 PACKAGE PKG IS
42 TYPE PRIV IS PRIVATE;
43 ONE : CONSTANT PRIV;
44 TWO : CONSTANT PRIV;
45 THREE : CONSTANT PRIV;
46 FOUR : CONSTANT PRIV;
47 PRIVATE
48 TYPE PRIV IS NEW INTEGER;
49 ONE : CONSTANT PRIV := 1;
50 TWO : CONSTANT PRIV := 2;
51 THREE : CONSTANT PRIV := 3;
52 FOUR : CONSTANT PRIV := 4;
53 END PKG;
55 USE PKG;
57 SUBTYPE INT IS INTEGER RANGE 1 .. 4;
58 TYPE A IS ARRAY ( INT RANGE <>) OF PRIV;
60 P1 : PRIV := FOUR;
61 P2 : PRIV := ONE;
63 A1 : A(1 .. 2) := (ONE, TWO);
64 A2 : A(1 .. 2) := (THREE, FOUR);
65 A3 : A(1 .. 4) := (ONE, TWO, THREE, FOUR);
66 A4 : A(1 .. 4);
67 A5 : A(1 .. 4) := (FOUR, THREE, TWO, ONE);
69 BEGIN
71 A4 := A1 & A2;
73 IF A3 /= A4 THEN
74 FAILED ("INCORRECT CATENATION FOR TWO ARRAYS OF " &
75 "PRIVATE");
76 END IF;
78 A4 := A5;
80 A4 := A1 & A2(1) & P1;
82 IF A3 /= A4 THEN
83 FAILED ("INCORRECT CATENATION FOR ARRAY OF PRIVATE, " &
84 "AND PRIVATE");
85 END IF;
87 A4 := A5;
89 A4 := P2 & (A1(2) & A2);
91 IF A3 /= A4 THEN
92 FAILED ("INCORRECT CATENATION FOR PRIVATE, AND ARRAY " &
93 "OF PRIVATE");
94 END IF;
96 A4 := A5;
98 A4 := P2 & A1(2) & (A2(1) & P1);
100 IF A3 /= A4 THEN
101 FAILED ("INCORRECT CATENATION FOR PRIVATE");
102 END IF;
104 END;
106 RESULT;
108 END C45347C;