aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c46044b.ada
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c46044b.ada')
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c46044b.ada235
1 files changed, 235 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c46044b.ada b/gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c46044b.ada
new file mode 100644
index 000000000..90ea0e494
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/tests/c4/c46044b.ada
@@ -0,0 +1,235 @@
+-- C46044B.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 CONSTRAINT ERROR IS RAISED FOR CONVERSION TO A
+-- CONSTRAINED ARRAY TYPE IF THE TARGET TYPE IS NON-NULL AND
+-- CORRESPONDING DIMENSIONS OF THE TARGET AND OPERAND DO NOT HAVE
+-- THE SAME LENGTH. ALSO, CHECK THAT CONSTRAINT_ERROR IS RAISED IF
+-- THE TARGET TYPE IS NULL AND THE OPERAND TYPE IS NON-NULL.
+
+-- R.WILLIAMS 9/8/86
+
+WITH REPORT; USE REPORT;
+PROCEDURE C46044B IS
+
+ TYPE ARR1 IS ARRAY (INTEGER RANGE <>) OF INTEGER;
+
+ SUBTYPE CARR1A IS ARR1 (IDENT_INT (1) .. IDENT_INT (6));
+ C1A : CARR1A := (CARR1A'RANGE => 0);
+
+ SUBTYPE CARR1B IS ARR1 (IDENT_INT (2) .. IDENT_INT (5));
+ C1B : CARR1B := (CARR1B'RANGE => 0);
+
+ SUBTYPE CARR1N IS ARR1 (IDENT_INT (1) .. IDENT_INT (0));
+ C1N : CARR1N := (CARR1N'RANGE => 0);
+
+ TYPE ARR2 IS ARRAY (INTEGER RANGE <>, INTEGER RANGE <>) OF
+ INTEGER;
+
+ SUBTYPE CARR2A IS ARR2 (IDENT_INT (1) .. IDENT_INT (2),
+ IDENT_INT (1) .. IDENT_INT (2));
+ C2A : CARR2A := (CARR2A'RANGE (1) => (CARR2A'RANGE (2) => 0));
+
+ SUBTYPE CARR2B IS ARR2 (IDENT_INT (0) .. IDENT_INT (2),
+ IDENT_INT (0) .. IDENT_INT (2));
+ C2B : CARR2B := (CARR2B'RANGE (1) => (CARR2B'RANGE (2) => 0));
+
+ SUBTYPE CARR2N IS ARR2 (IDENT_INT (2) .. IDENT_INT (1),
+ IDENT_INT (1) .. IDENT_INT (2));
+ C2N : CARR2N := (CARR2N'RANGE (1) => (CARR2N'RANGE (2) => 0));
+
+ PROCEDURE CHECK1 (A : ARR1; STR : STRING) IS
+ BEGIN
+ FAILED ( "NO EXCEPTION RAISED - " & STR );
+ END CHECK1;
+
+ PROCEDURE CHECK2 (A : ARR2; STR : STRING) IS
+ BEGIN
+ FAILED ( "NO EXCEPTION RAISED - " & STR );
+ END CHECK2;
+
+BEGIN
+ TEST ( "C46044B", "CHECK THAT CONSTRAINT ERROR IS RAISED FOR " &
+ "CONVERSION TO A CONSTRAINED ARRAY TYPE " &
+ "IF THE TARGET TYPE IS NON-NULL AND " &
+ "CORRESPONDING DIMENSIONS OF THE TARGET AND " &
+ "OPERAND DO NOT HAVE THE SAME LENGTH. " &
+ "ALSO, CHECK THAT CONSTRAINT_ERROR IS " &
+ "RAISED IF THE TARGET TYPE IS NULL AND " &
+ "THE OPERAND TYPE IS NON-NULL" );
+
+ BEGIN -- (A).
+ C1A := C1B;
+ CHECK1 (C1A, "(A)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (A)" );
+ END;
+
+ BEGIN -- (B).
+ CHECK1 (CARR1A (C1B), "(B)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (B)" );
+ END;
+
+ BEGIN -- (C).
+ C1B := C1A;
+ CHECK1 (C1B, "(C)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (C)" );
+ END;
+
+ BEGIN -- (D).
+ CHECK1 (CARR1B (C1A), "(D)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (D)" );
+ END;
+
+ BEGIN -- (E).
+ C1A := C1N;
+ CHECK1 (C1A, "(E)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (E)" );
+ END;
+
+ BEGIN -- (F).
+ CHECK1 (CARR1A (C1N), "(F)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (F)" );
+ END;
+
+ BEGIN -- (G).
+ C2A := C2B;
+ CHECK2 (C2A, "(G)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (G)" );
+ END;
+
+ BEGIN -- (H).
+ CHECK2 (CARR2A (C2B), "(H)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (H)" );
+ END;
+
+ BEGIN -- (I).
+ C2B := C2A;
+ CHECK2 (C2B, "(I)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (I)" );
+ END;
+
+ BEGIN -- (J).
+ CHECK2 (CARR2A (C2B), "(J)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (J)" );
+ END;
+
+ BEGIN -- (K).
+ C2A := C2N;
+ CHECK2 (C2A, "(K)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (K)" );
+ END;
+
+ BEGIN -- (L).
+ CHECK2 (CARR2A (C2N), "(L)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (L)" );
+ END;
+
+ BEGIN -- (M).
+ C1N := C1A;
+ CHECK1 (C1N, "(M)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (M)" );
+ END;
+
+ BEGIN -- (N).
+ CHECK1 (CARR1N (C1A), "(N)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (N)" );
+ END;
+
+ BEGIN -- (O).
+ C2N := C2A;
+ CHECK2 (C2N, "(O)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (O)" );
+ END;
+
+ BEGIN -- (P).
+ CHECK2 (CARR2N (C2A), "(P)");
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ NULL;
+ WHEN OTHERS =>
+ FAILED ( "WRONG EXCEPTION RAISED - (P)" );
+ END;
+
+ RESULT;
+END C46044B;