comparison gcc/testsuite/ada/acats/tests/c7/c74407b.ada @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 -- C74407B.ADA
2
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.
15 --
16 -- DISCLAIMER
17 --
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 -- OBJECTIVE:
26 -- CHECK, FOR A LIMITED PRIVATE TYPE, THAT PRE-DEFINED EQUALITY AND
27 -- ASSIGNMENT ARE DEFINED AND AVAILABLE WITHIN THE PRIVATE PART AND
28 -- THE BODY OF A PACKAGE, AFTER THE FULL DECLARATION, IF THE FULL
29 -- DECLARATION IS NOT LIMITED.
30
31 -- HISTORY:
32 -- BCB 07/15/88 CREATED ORIGINAL TEST.
33
34 WITH REPORT; USE REPORT;
35
36 PROCEDURE C74407B IS
37
38 PACKAGE PP IS
39 TYPE PRIV IS PRIVATE;
40 C1 : CONSTANT PRIV;
41 C2 : CONSTANT PRIV;
42 PRIVATE
43 TYPE PRIV IS (ONE, TWO, THREE, FOUR, FIVE, SIX);
44 C1 : CONSTANT PRIV := ONE;
45 C2 : CONSTANT PRIV := TWO;
46 END PP;
47
48 USE PP;
49
50 PACKAGE P IS
51 TYPE INT IS LIMITED PRIVATE;
52 TYPE COMP IS LIMITED PRIVATE;
53 TYPE DER IS LIMITED PRIVATE;
54 PRIVATE
55 TYPE INT IS RANGE 1 .. 100;
56 TYPE COMP IS ARRAY(1..5) OF INTEGER;
57 TYPE DER IS NEW PRIV;
58 D, E : INT := 10;
59 F : INT := 20;
60 CONS_INT1 : CONSTANT INT := 30;
61 G : BOOLEAN := D = E;
62 H : BOOLEAN := D /= F;
63 CONS_BOOL1 : CONSTANT BOOLEAN := D = E;
64 CONS_BOOL2 : CONSTANT BOOLEAN := D /= F;
65 I : COMP := (1,2,3,4,5);
66 CONS_COMP1 : CONSTANT COMP := (6,7,8,9,10);
67 J : DER := DER(C1);
68 CONS_DER1 : CONSTANT DER := DER(C2);
69 END P;
70
71 PACKAGE BODY P IS
72 A, B, C : INT;
73 X, Y, Z : COMP;
74 L, M, N : DER;
75 CONS_INT2 : CONSTANT INT := 10;
76 CONS_COMP2 : CONSTANT COMP := (1,2,3,4,5);
77 CONS_DER2 : CONSTANT DER := DER(C1);
78 BEGIN
79 TEST ("C74407B", "CHECK, FOR A LIMITED PRIVATE TYPE, THAT " &
80 "PRE-DEFINED EQUALITY AND ASSIGNMENT ARE " &
81 "DEFINED AND AVAILABLE WITHIN THE PRIVATE " &
82 "PART AND THE BODY OF A PACKAGE, AFTER " &
83 "THE FULL DECLARATION, IF THE FULL " &
84 "DECLARATION IS NOT LIMITED");
85
86 A := 10;
87
88 B := 10;
89
90 C := 20;
91
92 IF A = C THEN
93 FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
94 "OPERATION WITHIN THE PACKAGE BODY - 1");
95 END IF;
96
97 IF A /= B THEN
98 FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
99 "OPERATION WITHIN THE PACKAGE BODY - 1");
100 END IF;
101
102 IF CONS_INT2 = C THEN
103 FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
104 "OPERATION WITHIN THE PACKAGE BODY - 2");
105 END IF;
106
107 IF CONS_INT2 /= B THEN
108 FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
109 "OPERATION WITHIN THE PACKAGE BODY - 2");
110 END IF;
111
112 IF NOT G THEN
113 FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
114 "OPERATION WITHIN THE PRIVATE PART OF THE " &
115 "PACKAGE - 1");
116 END IF;
117
118 IF NOT H THEN
119 FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
120 "OPERATION WITHIN THE PRIVATE PART OF THE " &
121 "PACKAGE - 1");
122 END IF;
123
124 IF NOT CONS_BOOL1 THEN
125 FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
126 "OPERATION WITHIN THE PRIVATE PART OF THE " &
127 "PACKAGE - 2");
128 END IF;
129
130 IF NOT CONS_BOOL2 THEN
131 FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
132 "OPERATION WITHIN THE PRIVATE PART OF THE " &
133 "PACKAGE - 2");
134 END IF;
135
136 X := (1,2,3,4,5);
137
138 Y := (1,2,3,4,5);
139
140 Z := (5,4,3,2,1);
141
142 IF X = Z THEN
143 FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
144 "OPERATION WITHIN THE PACKAGE BODY - 3");
145 END IF;
146
147 IF X /= Y THEN
148 FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
149 "OPERATION WITHIN THE PACKAGE BODY - 3");
150 END IF;
151
152 IF CONS_COMP2 = Z THEN
153 FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
154 "OPERATION WITHIN THE PACKAGE BODY - 4");
155 END IF;
156
157 IF CONS_COMP2 /= Y THEN
158 FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
159 "OPERATION WITHIN THE PACKAGE BODY - 4");
160 END IF;
161
162 L := DER(C1);
163
164 M := DER(C1);
165
166 N := DER(C2);
167
168 IF L = N THEN
169 FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
170 "OPERATION WITHIN THE PACKAGE BODY - 5");
171 END IF;
172
173 IF L /= M THEN
174 FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
175 "OPERATION WITHIN THE PACKAGE BODY - 5");
176 END IF;
177
178 IF CONS_DER2 = N THEN
179 FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
180 "OPERATION WITHIN THE PACKAGE BODY - 6");
181 END IF;
182
183 IF CONS_DER2 /= M THEN
184 FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
185 "OPERATION WITHIN THE PACKAGE BODY - 6");
186 END IF;
187
188 RESULT;
189 END P;
190
191 USE P;
192
193 BEGIN
194 NULL;
195 END C74407B;