Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/ada/acats/tests/c4/c45271a.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 -- C45271A.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 -- CHECK THAT EQUALITY AND INEQUALITY ARE EVALUATED CORRECTLY FOR | |
26 -- RECORDS WHOSE COMPONENTS DO NOT HAVE CHANGEABLE DISCRIMINANTS. | |
27 | |
28 -- TBN 8/6/86 | |
29 | |
30 WITH REPORT; USE REPORT; | |
31 PROCEDURE C45271A IS | |
32 | |
33 SUBTYPE INT IS INTEGER RANGE 1 .. 20; | |
34 TYPE ARRAY_BOOL IS ARRAY (1 .. 5) OF BOOLEAN; | |
35 | |
36 TYPE REC_TYPE1 IS | |
37 RECORD | |
38 BOOL : ARRAY_BOOL; | |
39 A : INTEGER; | |
40 END RECORD; | |
41 | |
42 TYPE REC_TYPE2 (LEN : INT := 3) IS | |
43 RECORD | |
44 A : STRING (1 .. LEN); | |
45 END RECORD; | |
46 | |
47 TYPE REC_TYPE3 (NUM : INT := 1) IS | |
48 RECORD | |
49 A : REC_TYPE1; | |
50 END RECORD; | |
51 | |
52 REC1, REC2 : REC_TYPE1 := (A => 2, OTHERS => (OTHERS => TRUE)); | |
53 REC3, REC4 : REC_TYPE2 (5) := (5, "WHERE"); | |
54 REC5, REC6 : REC_TYPE2; | |
55 REC7, REC8 : REC_TYPE3; | |
56 REC9, REC10 : REC_TYPE3 (3) := (NUM => 3, A => | |
57 (A => 5, BOOL => (OTHERS => FALSE))); | |
58 | |
59 BEGIN | |
60 TEST ("C45271A", "CHECK THAT EQUALITY AND INEQUALITY ARE " & | |
61 "EVALUATED CORRECTLY FOR RECORDS WHOSE " & | |
62 "COMPONENTS DO NOT HAVE CHANGEABLE " & | |
63 "DISCRIMINANTS"); | |
64 | |
65 IF "/=" (LEFT => REC1, RIGHT => REC2) THEN | |
66 FAILED ("INCORRECT RESULTS FOR RECORDS - 1"); | |
67 END IF; | |
68 REC1.A := IDENT_INT(1); | |
69 IF "=" (LEFT => REC2, RIGHT => REC1) THEN | |
70 FAILED ("INCORRECT RESULTS FOR RECORDS - 2"); | |
71 END IF; | |
72 | |
73 IF REC3 /= REC4 THEN | |
74 FAILED ("INCORRECT RESULTS FOR RECORDS - 3"); | |
75 END IF; | |
76 REC4.A := IDENT_STR("12345"); | |
77 IF REC3 = REC4 THEN | |
78 FAILED ("INCORRECT RESULTS FOR RECORDS - 4"); | |
79 END IF; | |
80 | |
81 REC5.A := IDENT_STR("WHO"); | |
82 REC6.A := IDENT_STR("WHY"); | |
83 IF REC5 = REC6 THEN | |
84 FAILED ("INCORRECT RESULTS FOR RECORDS - 5"); | |
85 END IF; | |
86 REC5.A := "WHY"; | |
87 IF REC6 /= REC5 THEN | |
88 FAILED ("INCORRECT RESULTS FOR RECORDS - 6"); | |
89 END IF; | |
90 | |
91 REC7.A.A := IDENT_INT(1); | |
92 REC7.A.BOOL := (OTHERS => IDENT_BOOL(TRUE)); | |
93 REC8.A.A := 1; | |
94 REC8.A.BOOL := (OTHERS => TRUE); | |
95 IF REC7 /= REC8 THEN | |
96 FAILED ("INCORRECT RESULTS FOR RECORDS - 7"); | |
97 END IF; | |
98 REC8.A.BOOL := (OTHERS => IDENT_BOOL(FALSE)); | |
99 IF REC8 = REC7 THEN | |
100 FAILED ("INCORRECT RESULTS FOR RECORDS - 8"); | |
101 END IF; | |
102 | |
103 IF "/=" (LEFT => REC9, RIGHT => REC10) THEN | |
104 FAILED ("INCORRECT RESULTS FOR RECORDS - 9"); | |
105 END IF; | |
106 REC9.A.A := IDENT_INT(1); | |
107 IF "=" (LEFT => REC9, RIGHT => REC10) THEN | |
108 FAILED ("INCORRECT RESULTS FOR RECORDS - 10"); | |
109 END IF; | |
110 | |
111 RESULT; | |
112 END C45271A; |