-- C37213L.ADA
|
-- C37213L.ADA
|
|
|
-- Grant of Unlimited Rights
|
-- Grant of Unlimited Rights
|
--
|
--
|
-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
|
-- 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
|
-- 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 in the software and documentation contained herein.
|
-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
|
-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
|
-- this public release, the Government intends to confer upon all
|
-- this public release, the Government intends to confer upon all
|
-- recipients unlimited rights equal to those held by the Government.
|
-- recipients unlimited rights equal to those held by the Government.
|
-- These rights include rights to use, duplicate, release or disclose the
|
-- These rights include rights to use, duplicate, release or disclose the
|
-- released technical data and computer software in whole or in part, in
|
-- 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
|
-- any manner and for any purpose whatsoever, and to have or permit others
|
-- to do so.
|
-- to do so.
|
--
|
--
|
-- DISCLAIMER
|
-- DISCLAIMER
|
--
|
--
|
-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
|
-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
|
-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
|
-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
|
-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
|
-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
|
-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
|
-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
|
-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
|
-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
|
-- PARTICULAR PURPOSE OF SAID MATERIAL.
|
-- PARTICULAR PURPOSE OF SAID MATERIAL.
|
--*
|
--*
|
-- OBJECTIVE:
|
-- OBJECTIVE:
|
-- CHECK, FOR A GENERIC FORMAL TYPE - WHERE A DISCRIMINANT OR AN
|
-- CHECK, FOR A GENERIC FORMAL TYPE - WHERE A DISCRIMINANT OR AN
|
-- INDEX CONSTRAINT DEPENDS ON A RECORD DISCRIMINANT AND THE
|
-- INDEX CONSTRAINT DEPENDS ON A RECORD DISCRIMINANT AND THE
|
-- RECORD TYPE IS CONSTRAINED BY DEFAULT - USED TO DECLARE A
|
-- RECORD TYPE IS CONSTRAINED BY DEFAULT - USED TO DECLARE A
|
-- DERIVED OR AN ACCESS TYPE, THAT THE NON-DISCRIMINANT EXPRESSIONS
|
-- DERIVED OR AN ACCESS TYPE, THAT THE NON-DISCRIMINANT EXPRESSIONS
|
-- OF THE CONSTRAINT ARE CHECKED FOR COMPATIBILITY:
|
-- OF THE CONSTRAINT ARE CHECKED FOR COMPATIBILITY:
|
-- 1) ONLY IN AN OBJECT DECLARATION OR ALLOCATOR, AND
|
-- 1) ONLY IN AN OBJECT DECLARATION OR ALLOCATOR, AND
|
-- 2) ONLY IF THE DISCRIMINANT-DEPENDENT COMPONENT IS PRESENT
|
-- 2) ONLY IF THE DISCRIMINANT-DEPENDENT COMPONENT IS PRESENT
|
-- IN THE SUBTYPE.
|
-- IN THE SUBTYPE.
|
|
|
-- HISTORY:
|
-- HISTORY:
|
-- VCL 10/23/88 CREATED ORIGINAL TEST BY SPLITTING FROM C37213J.
|
-- VCL 10/23/88 CREATED ORIGINAL TEST BY SPLITTING FROM C37213J.
|
-- VCL 03/30/88 MODIFIED THE TEST DISCRIPTION TO MORE ACCURATELY
|
-- VCL 03/30/88 MODIFIED THE TEST DISCRIPTION TO MORE ACCURATELY
|
-- DESCRIBE THE OBJECTIVE; CHANGED THE FORMAL
|
-- DESCRIBE THE OBJECTIVE; CHANGED THE FORMAL
|
-- PARAMETERS TO THE GENERIC UNITS AND THE
|
-- PARAMETERS TO THE GENERIC UNITS AND THE
|
-- CORRESPONDING ACTUAL PARAMETERS; REORGANIZED THE
|
-- CORRESPONDING ACTUAL PARAMETERS; REORGANIZED THE
|
-- TEST SO THAT ALL OPERATIONS ON A SPECIFIC TYPE
|
-- TEST SO THAT ALL OPERATIONS ON A SPECIFIC TYPE
|
-- ARE TOGETHER; REWROTE ONE OF THE GENERIC
|
-- ARE TOGETHER; REWROTE ONE OF THE GENERIC
|
-- PACKAGES AS A GENERIC PROCEDURE TO BROADEN
|
-- PACKAGES AS A GENERIC PROCEDURE TO BROADEN
|
-- COVERAGE OF TEST.
|
-- COVERAGE OF TEST.
|
|
|
WITH REPORT; USE REPORT;
|
WITH REPORT; USE REPORT;
|
PROCEDURE C37213L IS
|
PROCEDURE C37213L IS
|
BEGIN
|
BEGIN
|
TEST ("C37213L", "THE NON-DISCRIMINANT VALUES OF A DISCRIMINANT " &
|
TEST ("C37213L", "THE NON-DISCRIMINANT VALUES OF A DISCRIMINANT " &
|
"OR AN INDEX CONSTRAINT THAT DEPEND ON A " &
|
"OR AN INDEX CONSTRAINT THAT DEPEND ON A " &
|
"DISCRIMINANT ARE PROPERLY CHECKED WHEN THE " &
|
"DISCRIMINANT ARE PROPERLY CHECKED WHEN THE " &
|
"RECORD TYPE IS CONSTRAINED BY DEFAULT AND " &
|
"RECORD TYPE IS CONSTRAINED BY DEFAULT AND " &
|
"USED AS THE ACTUAL PARAMETER TO A GENERIC " &
|
"USED AS THE ACTUAL PARAMETER TO A GENERIC " &
|
"FORMAL TYPE USED TO DECLARE A DERIVED OR AN " &
|
"FORMAL TYPE USED TO DECLARE A DERIVED OR AN " &
|
"ACCESS TYPE");
|
"ACCESS TYPE");
|
|
|
DECLARE
|
DECLARE
|
SUBTYPE SM IS INTEGER RANGE 1..10;
|
SUBTYPE SM IS INTEGER RANGE 1..10;
|
TYPE REC (D1, D2 : SM) IS
|
TYPE REC (D1, D2 : SM) IS
|
RECORD NULL; END RECORD;
|
RECORD NULL; END RECORD;
|
TYPE MY_ARR IS ARRAY (SM RANGE <>) OF INTEGER;
|
TYPE MY_ARR IS ARRAY (SM RANGE <>) OF INTEGER;
|
|
|
SEQUENCE_NUMBER : INTEGER;
|
SEQUENCE_NUMBER : INTEGER;
|
|
|
GENERIC
|
GENERIC
|
TYPE CONS IS PRIVATE;
|
TYPE CONS IS PRIVATE;
|
OBJ_XCP : BOOLEAN;
|
OBJ_XCP : BOOLEAN;
|
TAG : STRING;
|
TAG : STRING;
|
PACKAGE DER_CHK IS END DER_CHK;
|
PACKAGE DER_CHK IS END DER_CHK;
|
|
|
PACKAGE BODY DER_CHK IS
|
PACKAGE BODY DER_CHK IS
|
BEGIN
|
BEGIN
|
DECLARE
|
DECLARE
|
TYPE DREC IS NEW CONS;
|
TYPE DREC IS NEW CONS;
|
BEGIN
|
BEGIN
|
DECLARE
|
DECLARE
|
X : DREC;
|
X : DREC;
|
|
|
FUNCTION VALUE RETURN DREC IS
|
FUNCTION VALUE RETURN DREC IS
|
BEGIN
|
BEGIN
|
IF EQUAL (3,3) THEN
|
IF EQUAL (3,3) THEN
|
RETURN X;
|
RETURN X;
|
ELSE
|
ELSE
|
RETURN X;
|
RETURN X;
|
END IF;
|
END IF;
|
END VALUE;
|
END VALUE;
|
BEGIN
|
BEGIN
|
IF OBJ_XCP THEN
|
IF OBJ_XCP THEN
|
FAILED ("NO CHECK DURING DECLARATION " &
|
FAILED ("NO CHECK DURING DECLARATION " &
|
"OF OBJECT OF TYPE DREC - " &
|
"OF OBJECT OF TYPE DREC - " &
|
TAG);
|
TAG);
|
ELSIF X /= VALUE THEN
|
ELSIF X /= VALUE THEN
|
FAILED ("INCORRECT VALUE FOR OBJECT OF " &
|
FAILED ("INCORRECT VALUE FOR OBJECT OF " &
|
"TYPE DREC - " & TAG);
|
"TYPE DREC - " & TAG);
|
END IF;
|
END IF;
|
END;
|
END;
|
EXCEPTION
|
EXCEPTION
|
WHEN CONSTRAINT_ERROR =>
|
WHEN CONSTRAINT_ERROR =>
|
IF NOT OBJ_XCP THEN
|
IF NOT OBJ_XCP THEN
|
FAILED ("IMPROPER CONSTRAINT CHECKED " &
|
FAILED ("IMPROPER CONSTRAINT CHECKED " &
|
"DURING DECLARATION OF OBJECT " &
|
"DURING DECLARATION OF OBJECT " &
|
"OF TYPE DREC - " & TAG);
|
"OF TYPE DREC - " & TAG);
|
END IF;
|
END IF;
|
END;
|
END;
|
EXCEPTION
|
EXCEPTION
|
WHEN CONSTRAINT_ERROR =>
|
WHEN CONSTRAINT_ERROR =>
|
FAILED ("CONSTRAINT IMPROPERLY CHECKED " &
|
FAILED ("CONSTRAINT IMPROPERLY CHECKED " &
|
"DURING DECLARATION OF DREC - " & TAG);
|
"DURING DECLARATION OF DREC - " & TAG);
|
END;
|
END;
|
|
|
GENERIC
|
GENERIC
|
TYPE CONS IS PRIVATE;
|
TYPE CONS IS PRIVATE;
|
PROCEDURE ACC_CHK (OBJ_XCP : BOOLEAN;
|
PROCEDURE ACC_CHK (OBJ_XCP : BOOLEAN;
|
TAG : STRING);
|
TAG : STRING);
|
|
|
PROCEDURE ACC_CHK (OBJ_XCP : BOOLEAN;
|
PROCEDURE ACC_CHK (OBJ_XCP : BOOLEAN;
|
TAG : STRING) IS
|
TAG : STRING) IS
|
BEGIN
|
BEGIN
|
DECLARE
|
DECLARE
|
TYPE ACC_CONS IS ACCESS CONS;
|
TYPE ACC_CONS IS ACCESS CONS;
|
BEGIN
|
BEGIN
|
DECLARE
|
DECLARE
|
X : ACC_CONS;
|
X : ACC_CONS;
|
|
|
FUNCTION VALUE RETURN CONS IS
|
FUNCTION VALUE RETURN CONS IS
|
BEGIN
|
BEGIN
|
IF EQUAL (5, 5) THEN
|
IF EQUAL (5, 5) THEN
|
RETURN X.ALL;
|
RETURN X.ALL;
|
ELSE
|
ELSE
|
RETURN X.ALL;
|
RETURN X.ALL;
|
END IF;
|
END IF;
|
END VALUE;
|
END VALUE;
|
BEGIN
|
BEGIN
|
X := NEW CONS;
|
X := NEW CONS;
|
|
|
IF OBJ_XCP THEN
|
IF OBJ_XCP THEN
|
FAILED ("NO CHECK DURING ALLOCATION " &
|
FAILED ("NO CHECK DURING ALLOCATION " &
|
"OF OBJECT OF TYPE CONS - " &
|
"OF OBJECT OF TYPE CONS - " &
|
TAG);
|
TAG);
|
ELSIF X.ALL /= VALUE THEN
|
ELSIF X.ALL /= VALUE THEN
|
FAILED ("INCORRECT VALUE FOR OBJECT " &
|
FAILED ("INCORRECT VALUE FOR OBJECT " &
|
"OF TYPE CONS - " & TAG);
|
"OF TYPE CONS - " & TAG);
|
END IF;
|
END IF;
|
EXCEPTION
|
EXCEPTION
|
WHEN CONSTRAINT_ERROR =>
|
WHEN CONSTRAINT_ERROR =>
|
IF NOT OBJ_XCP THEN
|
IF NOT OBJ_XCP THEN
|
FAILED ("IMPROPER CONSTRAINT " &
|
FAILED ("IMPROPER CONSTRAINT " &
|
"CHECKED DURING " &
|
"CHECKED DURING " &
|
"ALLOCATION OF OBJECT " &
|
"ALLOCATION OF OBJECT " &
|
"OF TYPE CONS - " & TAG);
|
"OF TYPE CONS - " & TAG);
|
END IF;
|
END IF;
|
END;
|
END;
|
EXCEPTION
|
EXCEPTION
|
WHEN CONSTRAINT_ERROR =>
|
WHEN CONSTRAINT_ERROR =>
|
FAILED ("CONSTRAINT IMPROPERLY CHECKED " &
|
FAILED ("CONSTRAINT IMPROPERLY CHECKED " &
|
"DURING DECLARATION OF X - " & TAG);
|
"DURING DECLARATION OF X - " & TAG);
|
END;
|
END;
|
EXCEPTION
|
EXCEPTION
|
WHEN CONSTRAINT_ERROR =>
|
WHEN CONSTRAINT_ERROR =>
|
FAILED ("CONSTRAINT IMPROPERLY CHECKED " &
|
FAILED ("CONSTRAINT IMPROPERLY CHECKED " &
|
"DURING DECLARATION OF ACC_CONS - " & TAG);
|
"DURING DECLARATION OF ACC_CONS - " & TAG);
|
END ACC_CHK;
|
END ACC_CHK;
|
BEGIN
|
BEGIN
|
SEQUENCE_NUMBER := 1;
|
SEQUENCE_NUMBER := 1;
|
DECLARE
|
DECLARE
|
TYPE REC_DEF (D3 : INTEGER := 1) IS
|
TYPE REC_DEF (D3 : INTEGER := 1) IS
|
RECORD
|
RECORD
|
C1 : REC (D3, 0);
|
C1 : REC (D3, 0);
|
END RECORD;
|
END RECORD;
|
|
|
PACKAGE PACK1 IS NEW DER_CHK (REC_DEF,
|
PACKAGE PACK1 IS NEW DER_CHK (REC_DEF,
|
OBJ_XCP => TRUE,
|
OBJ_XCP => TRUE,
|
TAG => "PACK1");
|
TAG => "PACK1");
|
|
|
PROCEDURE PROC1 IS NEW ACC_CHK (REC_DEF);
|
PROCEDURE PROC1 IS NEW ACC_CHK (REC_DEF);
|
BEGIN
|
BEGIN
|
PROC1 (OBJ_XCP => TRUE, TAG => "PROC1");
|
PROC1 (OBJ_XCP => TRUE, TAG => "PROC1");
|
END;
|
END;
|
|
|
SEQUENCE_NUMBER := 2;
|
SEQUENCE_NUMBER := 2;
|
DECLARE
|
DECLARE
|
TYPE ARR_DEF (D3 : INTEGER := IDENT_INT(1)) IS
|
TYPE ARR_DEF (D3 : INTEGER := IDENT_INT(1)) IS
|
RECORD
|
RECORD
|
C1 : MY_ARR (0..D3);
|
C1 : MY_ARR (0..D3);
|
END RECORD;
|
END RECORD;
|
|
|
PACKAGE PACK2 IS NEW DER_CHK (ARR_DEF,
|
PACKAGE PACK2 IS NEW DER_CHK (ARR_DEF,
|
OBJ_XCP => TRUE,
|
OBJ_XCP => TRUE,
|
TAG => "PACK2");
|
TAG => "PACK2");
|
|
|
PROCEDURE PROC2 IS NEW ACC_CHK (ARR_DEF);
|
PROCEDURE PROC2 IS NEW ACC_CHK (ARR_DEF);
|
BEGIN
|
BEGIN
|
PROC2 (OBJ_XCP => TRUE, TAG => "PROC2");
|
PROC2 (OBJ_XCP => TRUE, TAG => "PROC2");
|
END;
|
END;
|
|
|
SEQUENCE_NUMBER := 3;
|
SEQUENCE_NUMBER := 3;
|
DECLARE
|
DECLARE
|
TYPE VAR_REC_DEF1 (D3 : INTEGER := 1) IS
|
TYPE VAR_REC_DEF1 (D3 : INTEGER := 1) IS
|
RECORD
|
RECORD
|
CASE D3 IS
|
CASE D3 IS
|
WHEN -5..10 =>
|
WHEN -5..10 =>
|
C1 : REC (D3, IDENT_INT(11));
|
C1 : REC (D3, IDENT_INT(11));
|
WHEN OTHERS =>
|
WHEN OTHERS =>
|
C2 : INTEGER := IDENT_INT(5);
|
C2 : INTEGER := IDENT_INT(5);
|
END CASE;
|
END CASE;
|
END RECORD;
|
END RECORD;
|
|
|
PACKAGE PACK3 IS NEW DER_CHK (VAR_REC_DEF1,
|
PACKAGE PACK3 IS NEW DER_CHK (VAR_REC_DEF1,
|
OBJ_XCP => TRUE,
|
OBJ_XCP => TRUE,
|
TAG => "PACK3");
|
TAG => "PACK3");
|
|
|
PROCEDURE PROC3 IS NEW ACC_CHK (VAR_REC_DEF1);
|
PROCEDURE PROC3 IS NEW ACC_CHK (VAR_REC_DEF1);
|
BEGIN
|
BEGIN
|
PROC3 (OBJ_XCP => TRUE, TAG => "PROC3");
|
PROC3 (OBJ_XCP => TRUE, TAG => "PROC3");
|
END;
|
END;
|
|
|
SEQUENCE_NUMBER := 4;
|
SEQUENCE_NUMBER := 4;
|
DECLARE
|
DECLARE
|
TYPE VAR_REC_DEF6 (D3 : INTEGER := IDENT_INT(-6)) IS
|
TYPE VAR_REC_DEF6 (D3 : INTEGER := IDENT_INT(-6)) IS
|
RECORD
|
RECORD
|
CASE D3 IS
|
CASE D3 IS
|
WHEN -5..10 =>
|
WHEN -5..10 =>
|
C1 : REC (D3, IDENT_INT(11));
|
C1 : REC (D3, IDENT_INT(11));
|
WHEN OTHERS =>
|
WHEN OTHERS =>
|
C2 : INTEGER := IDENT_INT(5);
|
C2 : INTEGER := IDENT_INT(5);
|
END CASE;
|
END CASE;
|
END RECORD;
|
END RECORD;
|
|
|
PACKAGE PACK4 IS NEW DER_CHK (VAR_REC_DEF6,
|
PACKAGE PACK4 IS NEW DER_CHK (VAR_REC_DEF6,
|
OBJ_XCP => FALSE,
|
OBJ_XCP => FALSE,
|
TAG => "PACK4");
|
TAG => "PACK4");
|
|
|
PROCEDURE PROC4 IS NEW ACC_CHK (VAR_REC_DEF6);
|
PROCEDURE PROC4 IS NEW ACC_CHK (VAR_REC_DEF6);
|
BEGIN
|
BEGIN
|
PROC4 (OBJ_XCP => FALSE, TAG => "PROC4");
|
PROC4 (OBJ_XCP => FALSE, TAG => "PROC4");
|
END;
|
END;
|
|
|
SEQUENCE_NUMBER := 5;
|
SEQUENCE_NUMBER := 5;
|
DECLARE
|
DECLARE
|
TYPE VAR_REC_DEF11 (D3 : INTEGER := 11) IS
|
TYPE VAR_REC_DEF11 (D3 : INTEGER := 11) IS
|
RECORD
|
RECORD
|
CASE D3 IS
|
CASE D3 IS
|
WHEN -5..10 =>
|
WHEN -5..10 =>
|
C1 : REC (D3, IDENT_INT(11));
|
C1 : REC (D3, IDENT_INT(11));
|
WHEN OTHERS =>
|
WHEN OTHERS =>
|
C2 : INTEGER := IDENT_INT(5);
|
C2 : INTEGER := IDENT_INT(5);
|
END CASE;
|
END CASE;
|
END RECORD;
|
END RECORD;
|
|
|
PACKAGE PACK5 IS NEW DER_CHK (VAR_REC_DEF11,
|
PACKAGE PACK5 IS NEW DER_CHK (VAR_REC_DEF11,
|
OBJ_XCP => FALSE,
|
OBJ_XCP => FALSE,
|
TAG => "PACK5");
|
TAG => "PACK5");
|
|
|
PROCEDURE PROC5 IS NEW ACC_CHK (VAR_REC_DEF11);
|
PROCEDURE PROC5 IS NEW ACC_CHK (VAR_REC_DEF11);
|
BEGIN
|
BEGIN
|
PROC5 (OBJ_XCP => FALSE, TAG => "PROC5");
|
PROC5 (OBJ_XCP => FALSE, TAG => "PROC5");
|
END;
|
END;
|
|
|
SEQUENCE_NUMBER := 6;
|
SEQUENCE_NUMBER := 6;
|
DECLARE
|
DECLARE
|
TYPE VAR_ARR_DEF1 (D3 : INTEGER := IDENT_INT(1)) IS
|
TYPE VAR_ARR_DEF1 (D3 : INTEGER := IDENT_INT(1)) IS
|
RECORD
|
RECORD
|
CASE D3 IS
|
CASE D3 IS
|
WHEN -5..10 =>
|
WHEN -5..10 =>
|
C1 : MY_ARR(D3..IDENT_INT(11));
|
C1 : MY_ARR(D3..IDENT_INT(11));
|
WHEN OTHERS =>
|
WHEN OTHERS =>
|
C2 : INTEGER := IDENT_INT(5);
|
C2 : INTEGER := IDENT_INT(5);
|
END CASE;
|
END CASE;
|
END RECORD;
|
END RECORD;
|
|
|
PACKAGE PACK6 IS NEW DER_CHK (VAR_ARR_DEF1,
|
PACKAGE PACK6 IS NEW DER_CHK (VAR_ARR_DEF1,
|
OBJ_XCP => TRUE,
|
OBJ_XCP => TRUE,
|
TAG => "PACK6");
|
TAG => "PACK6");
|
|
|
PROCEDURE PROC6 IS NEW ACC_CHK (VAR_ARR_DEF1);
|
PROCEDURE PROC6 IS NEW ACC_CHK (VAR_ARR_DEF1);
|
BEGIN
|
BEGIN
|
PROC6 (OBJ_XCP => TRUE, TAG => "PROC6");
|
PROC6 (OBJ_XCP => TRUE, TAG => "PROC6");
|
END;
|
END;
|
|
|
SEQUENCE_NUMBER := 7;
|
SEQUENCE_NUMBER := 7;
|
DECLARE
|
DECLARE
|
TYPE VAR_ARR_DEF6 (D3 : INTEGER := -6) IS
|
TYPE VAR_ARR_DEF6 (D3 : INTEGER := -6) IS
|
RECORD
|
RECORD
|
CASE D3 IS
|
CASE D3 IS
|
WHEN -5..10 =>
|
WHEN -5..10 =>
|
C1 : MY_ARR(D3..IDENT_INT(11));
|
C1 : MY_ARR(D3..IDENT_INT(11));
|
WHEN OTHERS =>
|
WHEN OTHERS =>
|
C2 : INTEGER := IDENT_INT(5);
|
C2 : INTEGER := IDENT_INT(5);
|
END CASE;
|
END CASE;
|
END RECORD;
|
END RECORD;
|
|
|
PACKAGE PACK7 IS NEW DER_CHK (VAR_ARR_DEF6,
|
PACKAGE PACK7 IS NEW DER_CHK (VAR_ARR_DEF6,
|
OBJ_XCP => FALSE,
|
OBJ_XCP => FALSE,
|
TAG => "PACK7");
|
TAG => "PACK7");
|
|
|
PROCEDURE PROC7 IS NEW ACC_CHK (VAR_ARR_DEF6);
|
PROCEDURE PROC7 IS NEW ACC_CHK (VAR_ARR_DEF6);
|
BEGIN
|
BEGIN
|
PROC7 (OBJ_XCP => FALSE, TAG => "PROC7");
|
PROC7 (OBJ_XCP => FALSE, TAG => "PROC7");
|
END;
|
END;
|
|
|
SEQUENCE_NUMBER := 8;
|
SEQUENCE_NUMBER := 8;
|
DECLARE
|
DECLARE
|
TYPE VAR_ARR_DEF11 (D3 : INTEGER := IDENT_INT(11)) IS
|
TYPE VAR_ARR_DEF11 (D3 : INTEGER := IDENT_INT(11)) IS
|
RECORD
|
RECORD
|
CASE D3 IS
|
CASE D3 IS
|
WHEN -5..10 =>
|
WHEN -5..10 =>
|
C1 : MY_ARR(D3..IDENT_INT(11));
|
C1 : MY_ARR(D3..IDENT_INT(11));
|
WHEN OTHERS =>
|
WHEN OTHERS =>
|
C2 : INTEGER := IDENT_INT(5);
|
C2 : INTEGER := IDENT_INT(5);
|
END CASE;
|
END CASE;
|
END RECORD;
|
END RECORD;
|
|
|
PACKAGE PACK8 IS NEW DER_CHK (VAR_ARR_DEF11,
|
PACKAGE PACK8 IS NEW DER_CHK (VAR_ARR_DEF11,
|
OBJ_XCP => FALSE,
|
OBJ_XCP => FALSE,
|
TAG => "PACK8");
|
TAG => "PACK8");
|
|
|
PROCEDURE PROC8 IS NEW ACC_CHK (VAR_ARR_DEF11);
|
PROCEDURE PROC8 IS NEW ACC_CHK (VAR_ARR_DEF11);
|
BEGIN
|
BEGIN
|
PROC8 (OBJ_XCP => FALSE, TAG => "PROC8");
|
PROC8 (OBJ_XCP => FALSE, TAG => "PROC8");
|
END;
|
END;
|
EXCEPTION
|
EXCEPTION
|
WHEN OTHERS =>
|
WHEN OTHERS =>
|
FAILED ("UNEXPECTED EXCEPTION RAISED DURING " &
|
FAILED ("UNEXPECTED EXCEPTION RAISED DURING " &
|
"DECLARATION / INSTANTIATION ELABORATION - " &
|
"DECLARATION / INSTANTIATION ELABORATION - " &
|
INTEGER'IMAGE (SEQUENCE_NUMBER));
|
INTEGER'IMAGE (SEQUENCE_NUMBER));
|
END;
|
END;
|
|
|
RESULT;
|
RESULT;
|
END C37213L;
|
END C37213L;
|
|
|