aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c45265a.ada
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c45265a.ada')
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c45265a.ada196
1 files changed, 196 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c45265a.ada b/gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c45265a.ada
new file mode 100644
index 000000000..711124358
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c45265a.ada
@@ -0,0 +1,196 @@
+-- C45265A.ADA
+
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+-- CHECK THAT MEMBERSHIP TESTS YIELD THE CORRECT RESULTS FOR ONE
+-- DIMENSIONAL AND MULTI-DIMENSIONAL ARRAY TYPES WHEN:
+-- A) THE SUBTYPE INDICATION DENOTES AN UNCONSTRAINED ARRAY.
+-- B) THE SUBTYPE INDICATION DENOTES A CONSTRAINED ARRAY.
+
+-- TBN 7/22/86
+
+WITH REPORT; USE REPORT;
+PROCEDURE C45265A IS
+
+ PACKAGE P IS
+ TYPE KEY IS LIMITED PRIVATE;
+ PRIVATE
+ TYPE KEY IS NEW NATURAL;
+ END P;
+
+ SUBTYPE INT IS INTEGER RANGE 1 .. 20;
+ TYPE ARRAY_TYPE_1 IS ARRAY (INT RANGE <>) OF INTEGER;
+ TYPE ARRAY_TYPE_2 IS ARRAY (INT RANGE <>, INT RANGE <>) OF INTEGER;
+ TYPE ARRAY_TYPE_3 IS ARRAY (INT RANGE <>, INT RANGE <>,
+ INT RANGE <>) OF INTEGER;
+ TYPE ARRAY_TYPE_4 IS ARRAY (INT RANGE <>) OF P.KEY;
+ TYPE ARRAY_TYPE_5 IS ARRAY (INT RANGE <>, INT RANGE <>) OF P.KEY;
+
+ SUBTYPE ARRAY_SUB1 IS ARRAY_TYPE_1;
+ SUBTYPE ARRAY_SUB2 IS ARRAY_TYPE_2;
+ SUBTYPE ARRAY_SUB3 IS ARRAY_TYPE_3;
+ SUBTYPE ARRAY_SUB4 IS ARRAY_TYPE_4;
+ SUBTYPE ARRAY_SUB5 IS ARRAY_TYPE_5;
+ SUBTYPE CON_ARRAY1 IS ARRAY_TYPE_1 (1..5);
+ SUBTYPE CON_ARRAY2 IS ARRAY_TYPE_2 (1..2, 1..2);
+ SUBTYPE CON_ARRAY3 IS ARRAY_TYPE_3 (1..2, 1..3, 1..4);
+ SUBTYPE CON_ARRAY4 IS ARRAY_TYPE_4 (1..4);
+ SUBTYPE CON_ARRAY5 IS ARRAY_TYPE_5 (1..2, 1..3);
+ SUBTYPE NULL_ARRAY1 IS ARRAY_TYPE_1 (2 .. 1);
+
+ ARRAY1 : ARRAY_TYPE_1 (1..10);
+ ARRAY2 : ARRAY_SUB1 (11..20);
+ ARRAY3 : ARRAY_TYPE_2 (1..4, 1..3);
+ ARRAY4 : ARRAY_SUB2 (5..7, 5..8);
+ ARRAY5 : ARRAY_TYPE_3 (1..2, 1..3, 1..4);
+ ARRAY6 : ARRAY_SUB3 (1..3, 1..2, 1..4);
+ NULL_ARRAY_1 : ARRAY_TYPE_1 (3..2);
+ NULL_ARRAY_2 : ARRAY_SUB1 (2..1);
+ ARRAY7 : ARRAY_TYPE_1 (1..10) := (1..10 => 7);
+ ARRAY8 : CON_ARRAY1 := (1..5 => 8);
+ ARRAY9 : ARRAY_TYPE_2 (1..10, 1..10) := (1..10 => (1..10 => 9));
+ ARRAY10 : CON_ARRAY2 := (1..2 => (1..2 => 10));
+ ARRAY11 : ARRAY_TYPE_3 (1..10, 1..10, 1..10) := (1..10 =>
+ (1..10 => (1..10 => 11)));
+ ARRAY12 : CON_ARRAY3 := (1..2 => (1..3 => (1..4 => 12)));
+ ARRAY13 : ARRAY_TYPE_4 (1..2);
+ ARRAY14 : ARRAY_SUB4 (1..5);
+ ARRAY15 : ARRAY_TYPE_4 (1..6);
+ ARRAY16 : CON_ARRAY4;
+ ARRAY17 : ARRAY_TYPE_5 (1..3, 1..2);
+ ARRAY18 : ARRAY_SUB5 (1..2, 1..3);
+ ARRAY19 : ARRAY_TYPE_5 (1..4, 1..3);
+ ARRAY20 : CON_ARRAY5;
+
+BEGIN
+ TEST ("C45265A", "CHECK THAT MEMBERSHIP TESTS YIELD THE CORRECT " &
+ "RESULTS FOR ONE DIMENSIONAL AND MULTI-" &
+ "DIMENSIONAL ARRAY TYPES");
+
+ ARRAY1 := (ARRAY1'RANGE => 1);
+ ARRAY2 := (ARRAY2'RANGE => 2);
+ ARRAY3 := (ARRAY3'RANGE(1) => (ARRAY3'RANGE(2) => 3));
+ ARRAY4 := (ARRAY4'RANGE(1) => (ARRAY4'RANGE(2) => 4));
+ ARRAY5 := (ARRAY5'RANGE(1) => (ARRAY5'RANGE(2) =>
+ (ARRAY5'RANGE(3) => 5)));
+ ARRAY6 := (ARRAY6'RANGE(1) => (ARRAY6'RANGE(2) =>
+ (ARRAY6'RANGE(3) => 6)));
+
+ IF ARRAY1 IN ARRAY_SUB1 THEN
+ NULL;
+ ELSE
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 1");
+ END IF;
+ IF ARRAY2 NOT IN ARRAY_SUB1 THEN
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 2");
+ END IF;
+
+ IF ARRAY3 IN ARRAY_SUB2 THEN
+ NULL;
+ ELSE
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 3");
+ END IF;
+ IF ARRAY4 NOT IN ARRAY_SUB2 THEN
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 4");
+ END IF;
+
+ IF ARRAY5 IN ARRAY_SUB3 THEN
+ NULL;
+ ELSE
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 5");
+ END IF;
+ IF ARRAY6 NOT IN ARRAY_SUB3 THEN
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 6");
+ END IF;
+
+ IF NULL_ARRAY_1 IN ARRAY_SUB1 THEN
+ NULL;
+ ELSE
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 7");
+ END IF;
+ IF NULL_ARRAY_2 NOT IN ARRAY_SUB1 THEN
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 8");
+ END IF;
+
+ IF ARRAY7 IN CON_ARRAY1 THEN
+ FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 9");
+ END IF;
+ IF ARRAY8 NOT IN CON_ARRAY1 THEN
+ FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 10");
+ END IF;
+
+ IF ARRAY9 IN CON_ARRAY2 THEN
+ FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 11");
+ END IF;
+ IF ARRAY10 NOT IN CON_ARRAY2 THEN
+ FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 12");
+ END IF;
+
+ IF ARRAY11 IN CON_ARRAY3 THEN
+ FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 13");
+ END IF;
+ IF ARRAY12 NOT IN CON_ARRAY3 THEN
+ FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 14");
+ END IF;
+
+ IF ARRAY13 IN ARRAY_SUB4 THEN
+ NULL;
+ ELSE
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 15");
+ END IF;
+ IF ARRAY14 NOT IN ARRAY_SUB4 THEN
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 16");
+ END IF;
+
+ IF ARRAY15 IN CON_ARRAY4 THEN
+ FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 17");
+ END IF;
+ IF ARRAY16 NOT IN CON_ARRAY4 THEN
+ FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 18");
+ END IF;
+
+ IF ARRAY17 IN ARRAY_SUB5 THEN
+ NULL;
+ ELSE
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 19");
+ END IF;
+ IF ARRAY18 NOT IN ARRAY_SUB5 THEN
+ FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 20");
+ END IF;
+
+ IF ARRAY19 IN CON_ARRAY5 THEN
+ FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 21");
+ END IF;
+ IF ARRAY20 NOT IN CON_ARRAY5 THEN
+ FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 22");
+ END IF;
+
+ IF NULL_ARRAY_1 IN NULL_ARRAY1 THEN
+ FAILED ("INCORRECT RESULTS FOR NULL ARRAYS - 23");
+ END IF;
+ IF NULL_ARRAY_2 NOT IN NULL_ARRAY1 THEN
+ FAILED ("INCORRECT RESULTS FOR NULL ARRAYS - 24");
+ END IF;
+
+ RESULT;
+END C45265A;