-- C74407B.ADA
|
-- C74407B.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 LIMITED PRIVATE TYPE, THAT PRE-DEFINED EQUALITY AND
|
-- CHECK, FOR A LIMITED PRIVATE TYPE, THAT PRE-DEFINED EQUALITY AND
|
-- ASSIGNMENT ARE DEFINED AND AVAILABLE WITHIN THE PRIVATE PART AND
|
-- ASSIGNMENT ARE DEFINED AND AVAILABLE WITHIN THE PRIVATE PART AND
|
-- THE BODY OF A PACKAGE, AFTER THE FULL DECLARATION, IF THE FULL
|
-- THE BODY OF A PACKAGE, AFTER THE FULL DECLARATION, IF THE FULL
|
-- DECLARATION IS NOT LIMITED.
|
-- DECLARATION IS NOT LIMITED.
|
|
|
-- HISTORY:
|
-- HISTORY:
|
-- BCB 07/15/88 CREATED ORIGINAL TEST.
|
-- BCB 07/15/88 CREATED ORIGINAL TEST.
|
|
|
WITH REPORT; USE REPORT;
|
WITH REPORT; USE REPORT;
|
|
|
PROCEDURE C74407B IS
|
PROCEDURE C74407B IS
|
|
|
PACKAGE PP IS
|
PACKAGE PP IS
|
TYPE PRIV IS PRIVATE;
|
TYPE PRIV IS PRIVATE;
|
C1 : CONSTANT PRIV;
|
C1 : CONSTANT PRIV;
|
C2 : CONSTANT PRIV;
|
C2 : CONSTANT PRIV;
|
PRIVATE
|
PRIVATE
|
TYPE PRIV IS (ONE, TWO, THREE, FOUR, FIVE, SIX);
|
TYPE PRIV IS (ONE, TWO, THREE, FOUR, FIVE, SIX);
|
C1 : CONSTANT PRIV := ONE;
|
C1 : CONSTANT PRIV := ONE;
|
C2 : CONSTANT PRIV := TWO;
|
C2 : CONSTANT PRIV := TWO;
|
END PP;
|
END PP;
|
|
|
USE PP;
|
USE PP;
|
|
|
PACKAGE P IS
|
PACKAGE P IS
|
TYPE INT IS LIMITED PRIVATE;
|
TYPE INT IS LIMITED PRIVATE;
|
TYPE COMP IS LIMITED PRIVATE;
|
TYPE COMP IS LIMITED PRIVATE;
|
TYPE DER IS LIMITED PRIVATE;
|
TYPE DER IS LIMITED PRIVATE;
|
PRIVATE
|
PRIVATE
|
TYPE INT IS RANGE 1 .. 100;
|
TYPE INT IS RANGE 1 .. 100;
|
TYPE COMP IS ARRAY(1..5) OF INTEGER;
|
TYPE COMP IS ARRAY(1..5) OF INTEGER;
|
TYPE DER IS NEW PRIV;
|
TYPE DER IS NEW PRIV;
|
D, E : INT := 10;
|
D, E : INT := 10;
|
F : INT := 20;
|
F : INT := 20;
|
CONS_INT1 : CONSTANT INT := 30;
|
CONS_INT1 : CONSTANT INT := 30;
|
G : BOOLEAN := D = E;
|
G : BOOLEAN := D = E;
|
H : BOOLEAN := D /= F;
|
H : BOOLEAN := D /= F;
|
CONS_BOOL1 : CONSTANT BOOLEAN := D = E;
|
CONS_BOOL1 : CONSTANT BOOLEAN := D = E;
|
CONS_BOOL2 : CONSTANT BOOLEAN := D /= F;
|
CONS_BOOL2 : CONSTANT BOOLEAN := D /= F;
|
I : COMP := (1,2,3,4,5);
|
I : COMP := (1,2,3,4,5);
|
CONS_COMP1 : CONSTANT COMP := (6,7,8,9,10);
|
CONS_COMP1 : CONSTANT COMP := (6,7,8,9,10);
|
J : DER := DER(C1);
|
J : DER := DER(C1);
|
CONS_DER1 : CONSTANT DER := DER(C2);
|
CONS_DER1 : CONSTANT DER := DER(C2);
|
END P;
|
END P;
|
|
|
PACKAGE BODY P IS
|
PACKAGE BODY P IS
|
A, B, C : INT;
|
A, B, C : INT;
|
X, Y, Z : COMP;
|
X, Y, Z : COMP;
|
L, M, N : DER;
|
L, M, N : DER;
|
CONS_INT2 : CONSTANT INT := 10;
|
CONS_INT2 : CONSTANT INT := 10;
|
CONS_COMP2 : CONSTANT COMP := (1,2,3,4,5);
|
CONS_COMP2 : CONSTANT COMP := (1,2,3,4,5);
|
CONS_DER2 : CONSTANT DER := DER(C1);
|
CONS_DER2 : CONSTANT DER := DER(C1);
|
BEGIN
|
BEGIN
|
TEST ("C74407B", "CHECK, FOR A LIMITED PRIVATE TYPE, THAT " &
|
TEST ("C74407B", "CHECK, FOR A LIMITED PRIVATE TYPE, THAT " &
|
"PRE-DEFINED EQUALITY AND ASSIGNMENT ARE " &
|
"PRE-DEFINED EQUALITY AND ASSIGNMENT ARE " &
|
"DEFINED AND AVAILABLE WITHIN THE PRIVATE " &
|
"DEFINED AND AVAILABLE WITHIN THE PRIVATE " &
|
"PART AND THE BODY OF A PACKAGE, AFTER " &
|
"PART AND THE BODY OF A PACKAGE, AFTER " &
|
"THE FULL DECLARATION, IF THE FULL " &
|
"THE FULL DECLARATION, IF THE FULL " &
|
"DECLARATION IS NOT LIMITED");
|
"DECLARATION IS NOT LIMITED");
|
|
|
A := 10;
|
A := 10;
|
|
|
B := 10;
|
B := 10;
|
|
|
C := 20;
|
C := 20;
|
|
|
IF A = C THEN
|
IF A = C THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 1");
|
"OPERATION WITHIN THE PACKAGE BODY - 1");
|
END IF;
|
END IF;
|
|
|
IF A /= B THEN
|
IF A /= B THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 1");
|
"OPERATION WITHIN THE PACKAGE BODY - 1");
|
END IF;
|
END IF;
|
|
|
IF CONS_INT2 = C THEN
|
IF CONS_INT2 = C THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 2");
|
"OPERATION WITHIN THE PACKAGE BODY - 2");
|
END IF;
|
END IF;
|
|
|
IF CONS_INT2 /= B THEN
|
IF CONS_INT2 /= B THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 2");
|
"OPERATION WITHIN THE PACKAGE BODY - 2");
|
END IF;
|
END IF;
|
|
|
IF NOT G THEN
|
IF NOT G THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
"OPERATION WITHIN THE PRIVATE PART OF THE " &
|
"OPERATION WITHIN THE PRIVATE PART OF THE " &
|
"PACKAGE - 1");
|
"PACKAGE - 1");
|
END IF;
|
END IF;
|
|
|
IF NOT H THEN
|
IF NOT H THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
"OPERATION WITHIN THE PRIVATE PART OF THE " &
|
"OPERATION WITHIN THE PRIVATE PART OF THE " &
|
"PACKAGE - 1");
|
"PACKAGE - 1");
|
END IF;
|
END IF;
|
|
|
IF NOT CONS_BOOL1 THEN
|
IF NOT CONS_BOOL1 THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
"OPERATION WITHIN THE PRIVATE PART OF THE " &
|
"OPERATION WITHIN THE PRIVATE PART OF THE " &
|
"PACKAGE - 2");
|
"PACKAGE - 2");
|
END IF;
|
END IF;
|
|
|
IF NOT CONS_BOOL2 THEN
|
IF NOT CONS_BOOL2 THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
"OPERATION WITHIN THE PRIVATE PART OF THE " &
|
"OPERATION WITHIN THE PRIVATE PART OF THE " &
|
"PACKAGE - 2");
|
"PACKAGE - 2");
|
END IF;
|
END IF;
|
|
|
X := (1,2,3,4,5);
|
X := (1,2,3,4,5);
|
|
|
Y := (1,2,3,4,5);
|
Y := (1,2,3,4,5);
|
|
|
Z := (5,4,3,2,1);
|
Z := (5,4,3,2,1);
|
|
|
IF X = Z THEN
|
IF X = Z THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 3");
|
"OPERATION WITHIN THE PACKAGE BODY - 3");
|
END IF;
|
END IF;
|
|
|
IF X /= Y THEN
|
IF X /= Y THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 3");
|
"OPERATION WITHIN THE PACKAGE BODY - 3");
|
END IF;
|
END IF;
|
|
|
IF CONS_COMP2 = Z THEN
|
IF CONS_COMP2 = Z THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 4");
|
"OPERATION WITHIN THE PACKAGE BODY - 4");
|
END IF;
|
END IF;
|
|
|
IF CONS_COMP2 /= Y THEN
|
IF CONS_COMP2 /= Y THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 4");
|
"OPERATION WITHIN THE PACKAGE BODY - 4");
|
END IF;
|
END IF;
|
|
|
L := DER(C1);
|
L := DER(C1);
|
|
|
M := DER(C1);
|
M := DER(C1);
|
|
|
N := DER(C2);
|
N := DER(C2);
|
|
|
IF L = N THEN
|
IF L = N THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 5");
|
"OPERATION WITHIN THE PACKAGE BODY - 5");
|
END IF;
|
END IF;
|
|
|
IF L /= M THEN
|
IF L /= M THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 5");
|
"OPERATION WITHIN THE PACKAGE BODY - 5");
|
END IF;
|
END IF;
|
|
|
IF CONS_DER2 = N THEN
|
IF CONS_DER2 = N THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED EQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 6");
|
"OPERATION WITHIN THE PACKAGE BODY - 6");
|
END IF;
|
END IF;
|
|
|
IF CONS_DER2 /= M THEN
|
IF CONS_DER2 /= M THEN
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
FAILED ("IMPROPER RESULT FROM PRE-DEFINED INEQUALITY " &
|
"OPERATION WITHIN THE PACKAGE BODY - 6");
|
"OPERATION WITHIN THE PACKAGE BODY - 6");
|
END IF;
|
END IF;
|
|
|
RESULT;
|
RESULT;
|
END P;
|
END P;
|
|
|
USE P;
|
USE P;
|
|
|
BEGIN
|
BEGIN
|
NULL;
|
NULL;
|
END C74407B;
|
END C74407B;
|
|
|