OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [ada/] [acats/] [tests/] [c7/] [c74206a.ada] - Diff between revs 149 and 154

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 149 Rev 154
-- C74206A.ADA
-- C74206A.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.
--*
--*
-- CHECK THAT IF A COMPOSITE TYPE IS DECLARED IN THE PACKAGE AS A
-- CHECK THAT IF A COMPOSITE TYPE IS DECLARED IN THE PACKAGE AS A
-- PRIVATE TYPE AND CONTAINS A COMPONENT OF THE PRIVATE TYPE, OPERATIONS
-- PRIVATE TYPE AND CONTAINS A COMPONENT OF THE PRIVATE TYPE, OPERATIONS
-- OF THE COMPOSITE TYPE WHICH DO NOT DEPEND ON CHARACTERISTICS OF THE
-- OF THE COMPOSITE TYPE WHICH DO NOT DEPEND ON CHARACTERISTICS OF THE
-- PRIVATE TYPE ARE AVAILABLE AFTER THE FULL DECLARATION OF THE PRIVATE
-- PRIVATE TYPE ARE AVAILABLE AFTER THE FULL DECLARATION OF THE PRIVATE
-- TYPE, BUT BEFORE THE EARLIEST PLACE WITHIN THE IMMEDIATE SCOPE OF THE
-- TYPE, BUT BEFORE THE EARLIEST PLACE WITHIN THE IMMEDIATE SCOPE OF THE
-- DECLARATION OF THE COMPOSITE TYPE THAT IS AFTER THE FULL DECLARATION
-- DECLARATION OF THE COMPOSITE TYPE THAT IS AFTER THE FULL DECLARATION
-- OF THE PRIVATE TYPE.  IN PARTICULAR, CHECK FOR THE FOLLOWING :
-- OF THE PRIVATE TYPE.  IN PARTICULAR, CHECK FOR THE FOLLOWING :
 
 
--   'FIRST, 'LAST, 'RANGE, AND 'LENGTH FOR ARRAY TYPES
--   'FIRST, 'LAST, 'RANGE, AND 'LENGTH FOR ARRAY TYPES
--   SELECTED COMPONENTS FOR DISCRIMINANTS AND COMPONENTS OF RECORDS
--   SELECTED COMPONENTS FOR DISCRIMINANTS AND COMPONENTS OF RECORDS
--   INDEXED COMPONENTS AND SLICES FOR ARRAYS
--   INDEXED COMPONENTS AND SLICES FOR ARRAYS
 
 
-- DSJ 5/5/83
-- DSJ 5/5/83
-- JBG 3/8/84
-- JBG 3/8/84
 
 
WITH REPORT;
WITH REPORT;
PROCEDURE C74206A IS
PROCEDURE C74206A IS
 
 
     USE REPORT;
     USE REPORT;
 
 
BEGIN
BEGIN
 
 
     TEST("C74206A", "CHECK THAT ADDITIONAL OPERATIONS FOR "
     TEST("C74206A", "CHECK THAT ADDITIONAL OPERATIONS FOR "
                   & "COMPOSITE TYPES OF PRIVATE TYPES ARE "
                   & "COMPOSITE TYPES OF PRIVATE TYPES ARE "
                   & "AVAILABLE AT THE EARLIEST PLACE AFTER THE "
                   & "AVAILABLE AT THE EARLIEST PLACE AFTER THE "
                   & "FULL DECLARATION OF THE PRIVATE TYPE EVEN "
                   & "FULL DECLARATION OF THE PRIVATE TYPE EVEN "
                   & "IF BEFORE THE EARLIEST PLACE WITHIN THE "
                   & "IF BEFORE THE EARLIEST PLACE WITHIN THE "
                   & "IMMEDIATE SCOPE OF THE COMPOSITE TYPE");
                   & "IMMEDIATE SCOPE OF THE COMPOSITE TYPE");
 
 
     DECLARE
     DECLARE
 
 
          PACKAGE PACK1 IS
          PACKAGE PACK1 IS
               TYPE P1  IS PRIVATE;
               TYPE P1  IS PRIVATE;
               TYPE LP1 IS LIMITED PRIVATE;
               TYPE LP1 IS LIMITED PRIVATE;
 
 
               PACKAGE PACK_LP IS
               PACKAGE PACK_LP IS
                    TYPE LP_ARR IS ARRAY (1 .. 2) OF LP1;
                    TYPE LP_ARR IS ARRAY (1 .. 2) OF LP1;
                    TYPE LP_REC (D : INTEGER) IS
                    TYPE LP_REC (D : INTEGER) IS
                         RECORD
                         RECORD
                              C1, C2 : LP1;
                              C1, C2 : LP1;
                         END RECORD;
                         END RECORD;
               END PACK_LP;
               END PACK_LP;
 
 
               PACKAGE PACK2 IS
               PACKAGE PACK2 IS
                    TYPE ARR IS ARRAY ( 1 .. 2 ) OF P1;
                    TYPE ARR IS ARRAY ( 1 .. 2 ) OF P1;
                    TYPE REC (D : INTEGER) IS
                    TYPE REC (D : INTEGER) IS
                         RECORD
                         RECORD
                              C1, C2 : P1;
                              C1, C2 : P1;
                         END RECORD;
                         END RECORD;
               END PACK2;
               END PACK2;
          PRIVATE
          PRIVATE
               TYPE P1  IS NEW BOOLEAN;
               TYPE P1  IS NEW BOOLEAN;
               TYPE LP1 IS NEW BOOLEAN;
               TYPE LP1 IS NEW BOOLEAN;
          END PACK1;
          END PACK1;
 
 
          PACKAGE BODY PACK1 IS
          PACKAGE BODY PACK1 IS
 
 
               USE PACK_LP;
               USE PACK_LP;
               USE PACK2;
               USE PACK2;
 
 
               A1 : ARR;
               A1 : ARR;
               L1 : LP_ARR;
               L1 : LP_ARR;
 
 
               N1 : INTEGER := ARR'FIRST;           -- LEGAL
               N1 : INTEGER := ARR'FIRST;           -- LEGAL
               N2 : INTEGER := ARR'LAST;            -- LEGAL
               N2 : INTEGER := ARR'LAST;            -- LEGAL
               N3 : INTEGER := A1'LENGTH;           -- LEGAL
               N3 : INTEGER := A1'LENGTH;           -- LEGAL
               N4 : INTEGER := LP_ARR'FIRST;        -- LEGAL
               N4 : INTEGER := LP_ARR'FIRST;        -- LEGAL
               N5 : INTEGER := LP_ARR'LAST;         -- LEGAL
               N5 : INTEGER := LP_ARR'LAST;         -- LEGAL
               N6 : INTEGER := L1'LENGTH;           -- LEGAL
               N6 : INTEGER := L1'LENGTH;           -- LEGAL
               B1 : BOOLEAN := 1 IN ARR'RANGE;      -- LEGAL
               B1 : BOOLEAN := 1 IN ARR'RANGE;      -- LEGAL
               B2 : BOOLEAN := 5 IN LP_ARR'RANGE;   -- LEGAL
               B2 : BOOLEAN := 5 IN LP_ARR'RANGE;   -- LEGAL
 
 
               N7 : INTEGER := A1(1)'SIZE;          -- LEGAL: A1(1)
               N7 : INTEGER := A1(1)'SIZE;          -- LEGAL: A1(1)
               N8 : INTEGER := L1(2)'SIZE;          -- LEGAL: L1(2)
               N8 : INTEGER := L1(2)'SIZE;          -- LEGAL: L1(2)
 
 
               R1 : REC(1);
               R1 : REC(1);
               Q1 : LP_REC(1);
               Q1 : LP_REC(1);
 
 
               K1 : INTEGER := R1.D'SIZE;           -- LEGAL: R1.D
               K1 : INTEGER := R1.D'SIZE;           -- LEGAL: R1.D
               K2 : INTEGER := R1.C1'SIZE;          -- LEGAL: R1.C1
               K2 : INTEGER := R1.C1'SIZE;          -- LEGAL: R1.C1
               K3 : INTEGER := Q1.D'SIZE;           -- LEGAL: Q1.D
               K3 : INTEGER := Q1.D'SIZE;           -- LEGAL: Q1.D
               K4 : INTEGER := Q1.C2'SIZE;          -- LEGAL: Q1.C2
               K4 : INTEGER := Q1.C2'SIZE;          -- LEGAL: Q1.C2
 
 
          BEGIN
          BEGIN
 
 
               IF N1 /= 1 OR N4 /= 1 THEN
               IF N1 /= 1 OR N4 /= 1 THEN
                    FAILED ("WRONG VALUE FOR 'FIRST");
                    FAILED ("WRONG VALUE FOR 'FIRST");
               END IF;
               END IF;
 
 
               IF N2 /= 2 OR N5 /= 2 THEN
               IF N2 /= 2 OR N5 /= 2 THEN
                    FAILED ("WRONG VALUE FOR 'LAST");
                    FAILED ("WRONG VALUE FOR 'LAST");
               END IF;
               END IF;
 
 
               IF N3 /= 2 OR N6 /= 2 THEN
               IF N3 /= 2 OR N6 /= 2 THEN
                    FAILED ("WRONG VALUE FOR 'LENGTH");
                    FAILED ("WRONG VALUE FOR 'LENGTH");
               END IF;
               END IF;
 
 
               IF B1 /= TRUE OR B2 /= FALSE THEN
               IF B1 /= TRUE OR B2 /= FALSE THEN
                    FAILED ("INCORRECT RANGE TEST");
                    FAILED ("INCORRECT RANGE TEST");
               END IF;
               END IF;
 
 
               IF N7 /= N8 THEN
               IF N7 /= N8 THEN
                    FAILED ("INCORRECT INDEXED COMPONENTS");
                    FAILED ("INCORRECT INDEXED COMPONENTS");
               END IF;
               END IF;
 
 
               IF K1 /= K3 OR K2 /= K4 THEN
               IF K1 /= K3 OR K2 /= K4 THEN
                    FAILED ("INCORRECT COMPONENT SELECTION");
                    FAILED ("INCORRECT COMPONENT SELECTION");
               END IF;
               END IF;
 
 
          END PACK1;
          END PACK1;
 
 
     BEGIN
     BEGIN
 
 
          NULL;
          NULL;
 
 
     END;
     END;
 
 
     RESULT;
     RESULT;
 
 
END C74206A;
END C74206A;
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.