OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [ada/] [acats/] [tests/] [cc/] [cc3601a.ada] - Diff between revs 294 and 338

Only display areas with differences | Details | Blame | View Log

Rev 294 Rev 338
-- CC3601A.ADA
-- CC3601A.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 PREDEFINED OPERATORS MAY BE PASSED AS ACTUAL
-- CHECK THAT PREDEFINED OPERATORS MAY BE PASSED AS ACTUAL
-- GENERIC SUBPROGRAM PARAMETERS (CHECKS FOR "=" AND "/=" ARE IN
-- GENERIC SUBPROGRAM PARAMETERS (CHECKS FOR "=" AND "/=" ARE IN
-- CC3601C).
-- CC3601C).
 
 
-- R.WILLIAMS 10/9/86
-- R.WILLIAMS 10/9/86
-- JRL        11/15/95 Added unknown discriminant part to all formal
-- JRL        11/15/95 Added unknown discriminant part to all formal
--                     private types.
--                     private types.
 
 
 
 
WITH REPORT; USE REPORT;
WITH REPORT; USE REPORT;
PROCEDURE CC3601A IS
PROCEDURE CC3601A IS
 
 
     GENERIC
     GENERIC
          TYPE T (<>) IS PRIVATE;
          TYPE T (<>) IS PRIVATE;
          V, V1 : T;
          V, V1 : T;
          KIND : STRING;
          KIND : STRING;
          WITH FUNCTION F1 (X : IN T) RETURN T;
          WITH FUNCTION F1 (X : IN T) RETURN T;
     PACKAGE GP1 IS
     PACKAGE GP1 IS
          R : BOOLEAN := F1 (V) = V1;
          R : BOOLEAN := F1 (V) = V1;
     END GP1;
     END GP1;
 
 
     PACKAGE BODY GP1 IS
     PACKAGE BODY GP1 IS
     BEGIN
     BEGIN
          IF NOT (IDENT_BOOL(R)) THEN
          IF NOT (IDENT_BOOL(R)) THEN
               FAILED ( "INCORRECT VALUE FOR UNARY OP - " & KIND);
               FAILED ( "INCORRECT VALUE FOR UNARY OP - " & KIND);
          END IF;
          END IF;
     END GP1;
     END GP1;
 
 
     GENERIC
     GENERIC
          TYPE T (<>) IS PRIVATE;
          TYPE T (<>) IS PRIVATE;
          V, V1, V2 : IN T;
          V, V1, V2 : IN T;
          KIND : STRING;
          KIND : STRING;
          WITH FUNCTION F1 (P1 : IN T; P2 : IN T) RETURN T;
          WITH FUNCTION F1 (P1 : IN T; P2 : IN T) RETURN T;
     PACKAGE GP2 IS
     PACKAGE GP2 IS
          R : BOOLEAN := V /= F1 (V1, V2);
          R : BOOLEAN := V /= F1 (V1, V2);
     END GP2;
     END GP2;
 
 
     PACKAGE BODY GP2 IS
     PACKAGE BODY GP2 IS
     BEGIN
     BEGIN
          IF IDENT_BOOL (R) THEN
          IF IDENT_BOOL (R) THEN
               FAILED ( "INCORRECT VALUE FOR BINARY OP - " & KIND);
               FAILED ( "INCORRECT VALUE FOR BINARY OP - " & KIND);
          END IF;
          END IF;
     END GP2;
     END GP2;
 
 
 
 
     GENERIC
     GENERIC
          TYPE T1 (<>) IS PRIVATE;
          TYPE T1 (<>) IS PRIVATE;
          TYPE T2 (<>) IS PRIVATE;
          TYPE T2 (<>) IS PRIVATE;
          V1 : T1;
          V1 : T1;
          V2 : T2;
          V2 : T2;
          KIND : STRING;
          KIND : STRING;
          WITH FUNCTION F1 (X : IN T1) RETURN T2;
          WITH FUNCTION F1 (X : IN T1) RETURN T2;
     PACKAGE GP3 IS
     PACKAGE GP3 IS
          R : BOOLEAN := F1 (V1) = V2;
          R : BOOLEAN := F1 (V1) = V2;
     END GP3;
     END GP3;
 
 
     PACKAGE BODY GP3 IS
     PACKAGE BODY GP3 IS
     BEGIN
     BEGIN
          IF NOT (IDENT_BOOL(R)) THEN
          IF NOT (IDENT_BOOL(R)) THEN
               FAILED ( "INCORRECT VALUE FOR OP - " & KIND);
               FAILED ( "INCORRECT VALUE FOR OP - " & KIND);
          END IF;
          END IF;
     END GP3;
     END GP3;
 
 
BEGIN
BEGIN
     TEST ( "CC3601A", "CHECK THAT PREDEFINED OPERATORS MAY BE " &
     TEST ( "CC3601A", "CHECK THAT PREDEFINED OPERATORS MAY BE " &
                       "PASSED AS ACTUAL GENERIC SUBPROGRAM " &
                       "PASSED AS ACTUAL GENERIC SUBPROGRAM " &
                       "PARAMETERS" );
                       "PARAMETERS" );
 
 
 
 
     BEGIN -- CHECKS WITH RELATIONAL OPERATORS AND LOGICAL OPERATORS AS
     BEGIN -- CHECKS WITH RELATIONAL OPERATORS AND LOGICAL OPERATORS AS
           -- ACTUAL PARAMETERS.
           -- ACTUAL PARAMETERS.
 
 
          FOR I1 IN BOOLEAN LOOP
          FOR I1 IN BOOLEAN LOOP
 
 
               FOR I2 IN BOOLEAN LOOP
               FOR I2 IN BOOLEAN LOOP
                    COMMENT ( "B1 = " & BOOLEAN'IMAGE (I1) & " AND " &
                    COMMENT ( "B1 = " & BOOLEAN'IMAGE (I1) & " AND " &
                              "B2 = " & BOOLEAN'IMAGE (I2) );
                              "B2 = " & BOOLEAN'IMAGE (I2) );
                    DECLARE
                    DECLARE
                         B1 : BOOLEAN := IDENT_BOOL (I1);
                         B1 : BOOLEAN := IDENT_BOOL (I1);
                         B2 : BOOLEAN := IDENT_BOOL (I2);
                         B2 : BOOLEAN := IDENT_BOOL (I2);
 
 
                         PACKAGE P1 IS
                         PACKAGE P1 IS
                              NEW GP1 (BOOLEAN, NOT B2, B2,
                              NEW GP1 (BOOLEAN, NOT B2, B2,
                                       """NOT"" - 1", "NOT");
                                       """NOT"" - 1", "NOT");
                         PACKAGE P2 IS
                         PACKAGE P2 IS
                              NEW GP2 (BOOLEAN, B1 OR B2, B1, B2,
                              NEW GP2 (BOOLEAN, B1 OR B2, B1, B2,
                                       "OR", "OR");
                                       "OR", "OR");
                         PACKAGE P3 IS
                         PACKAGE P3 IS
                              NEW GP2 (BOOLEAN, B1 AND B2, B2, B1,
                              NEW GP2 (BOOLEAN, B1 AND B2, B2, B1,
                                       "AND", "AND");
                                       "AND", "AND");
                         PACKAGE P4 IS
                         PACKAGE P4 IS
                              NEW GP2 (BOOLEAN, B1 /= B2, B1, B2,
                              NEW GP2 (BOOLEAN, B1 /= B2, B1, B2,
                                       "XOR", "XOR");
                                       "XOR", "XOR");
                         PACKAGE P5 IS
                         PACKAGE P5 IS
                              NEW GP2 (BOOLEAN, B1 < B2, B1, B2,
                              NEW GP2 (BOOLEAN, B1 < B2, B1, B2,
                                       "<", "<");
                                       "<", "<");
                         PACKAGE P6 IS
                         PACKAGE P6 IS
                              NEW GP2 (BOOLEAN, B1 <= B2, B1, B2,
                              NEW GP2 (BOOLEAN, B1 <= B2, B1, B2,
                                       "<=", "<=");
                                       "<=", "<=");
                         PACKAGE P7 IS
                         PACKAGE P7 IS
                              NEW GP2 (BOOLEAN, B1 > B2, B1, B2,
                              NEW GP2 (BOOLEAN, B1 > B2, B1, B2,
                                       ">", ">");
                                       ">", ">");
                         PACKAGE P8 IS
                         PACKAGE P8 IS
                              NEW GP2 (BOOLEAN, B1 >= B2, B1, B2,
                              NEW GP2 (BOOLEAN, B1 >= B2, B1, B2,
                                       ">=", ">=");
                                       ">=", ">=");
 
 
                         TYPE AB IS ARRAY (BOOLEAN RANGE <> )
                         TYPE AB IS ARRAY (BOOLEAN RANGE <> )
                              OF BOOLEAN;
                              OF BOOLEAN;
                         AB1 : AB (BOOLEAN) := (B1, B2);
                         AB1 : AB (BOOLEAN) := (B1, B2);
                         AB2 : AB (BOOLEAN) := (B2, B1);
                         AB2 : AB (BOOLEAN) := (B2, B1);
                         T : AB (B1 .. B2) := (B1 .. B2 => TRUE);
                         T : AB (B1 .. B2) := (B1 .. B2 => TRUE);
                         F : AB (B1 .. B2) := (B1 .. B2 => FALSE);
                         F : AB (B1 .. B2) := (B1 .. B2 => FALSE);
                         VB1 : AB (B1 .. B1) := (B1 => B2);
                         VB1 : AB (B1 .. B1) := (B1 => B2);
                         VB2 : AB (B2 .. B2) := (B2 => B1);
                         VB2 : AB (B2 .. B2) := (B2 => B1);
 
 
                         PACKAGE P9 IS
                         PACKAGE P9 IS
                              NEW GP1 (AB, AB1, NOT AB1,
                              NEW GP1 (AB, AB1, NOT AB1,
                                       """NOT"" - 2", "NOT");
                                       """NOT"" - 2", "NOT");
                         PACKAGE P10 IS
                         PACKAGE P10 IS
                              NEW GP1 (AB, T, F,
                              NEW GP1 (AB, T, F,
                                       """NOT"" - 3", "NOT");
                                       """NOT"" - 3", "NOT");
                         PACKAGE P11 IS
                         PACKAGE P11 IS
                              NEW GP1 (AB, VB2, (B2 => NOT B1),
                              NEW GP1 (AB, VB2, (B2 => NOT B1),
                                       """NOT"" - 4", "NOT");
                                       """NOT"" - 4", "NOT");
                         PACKAGE P12 IS
                         PACKAGE P12 IS
                              NEW GP2 (AB, AB1 AND AB2, AB1, AB2,
                              NEW GP2 (AB, AB1 AND AB2, AB1, AB2,
                                       "AND", "AND");
                                       "AND", "AND");
                    BEGIN
                    BEGIN
                         NULL;
                         NULL;
                    END;
                    END;
               END LOOP;
               END LOOP;
          END LOOP;
          END LOOP;
     END;
     END;
 
 
     DECLARE -- CHECKS WITH ADDING AND MULTIPLYING OPERATORS, "**", 
     DECLARE -- CHECKS WITH ADDING AND MULTIPLYING OPERATORS, "**", 
             -- AND "ABS".
             -- AND "ABS".
 
 
          PACKAGE P1 IS NEW GP1 (INTEGER, -4, -4, """+"" - 1", "+");
          PACKAGE P1 IS NEW GP1 (INTEGER, -4, -4, """+"" - 1", "+");
 
 
          PACKAGE P2 IS NEW GP1 (FLOAT, 4.0, 4.0, """+"" - 2", "+");
          PACKAGE P2 IS NEW GP1 (FLOAT, 4.0, 4.0, """+"" - 2", "+");
 
 
          PACKAGE P3 IS NEW GP1 (DURATION, -4.0, -4.0, """+"" - 3",
          PACKAGE P3 IS NEW GP1 (DURATION, -4.0, -4.0, """+"" - 3",
                                 "+");
                                 "+");
          PACKAGE P4 IS NEW GP1 (INTEGER, -4, 4, """-"" - 1", "-");
          PACKAGE P4 IS NEW GP1 (INTEGER, -4, 4, """-"" - 1", "-");
 
 
          PACKAGE P5 IS NEW GP1 (FLOAT, 0.0, 0.0, """-"" - 2", "-");
          PACKAGE P5 IS NEW GP1 (FLOAT, 0.0, 0.0, """-"" - 2", "-");
 
 
          PACKAGE P6 IS NEW GP1 (DURATION, 1.0, -1.0, """-"" - 3",
          PACKAGE P6 IS NEW GP1 (DURATION, 1.0, -1.0, """-"" - 3",
                                 "-");
                                 "-");
          PACKAGE P7 IS NEW GP2 (INTEGER, 6, 1, 5, """+"" - 1", "+");
          PACKAGE P7 IS NEW GP2 (INTEGER, 6, 1, 5, """+"" - 1", "+");
 
 
          PACKAGE P8 IS NEW GP2 (FLOAT, 6.0, 1.0, 5.0, """+"" - 2",
          PACKAGE P8 IS NEW GP2 (FLOAT, 6.0, 1.0, 5.0, """+"" - 2",
                                 "+");
                                 "+");
          PACKAGE P9 IS NEW GP2 (DURATION, 6.0, 1.0, 5.0, """+"" - 3",
          PACKAGE P9 IS NEW GP2 (DURATION, 6.0, 1.0, 5.0, """+"" - 3",
                                 "+");
                                 "+");
          PACKAGE P10 IS NEW GP2 (INTEGER, 1, 6, 5, """-"" - 1",
          PACKAGE P10 IS NEW GP2 (INTEGER, 1, 6, 5, """-"" - 1",
                                  "-" );
                                  "-" );
          PACKAGE P11 IS NEW GP2 (DURATION, 11.0, 6.0,-5.0,
          PACKAGE P11 IS NEW GP2 (DURATION, 11.0, 6.0,-5.0,
                                  """-"" - 2", "-");
                                  """-"" - 2", "-");
          PACKAGE P12 IS NEW GP2 (FLOAT, 1.0, 6.0, 5.0, """-"" - 3",
          PACKAGE P12 IS NEW GP2 (FLOAT, 1.0, 6.0, 5.0, """-"" - 3",
                                  "-");
                                  "-");
 
 
          SUBTYPE SUBINT IS INTEGER RANGE 0 .. 2;
          SUBTYPE SUBINT IS INTEGER RANGE 0 .. 2;
          TYPE STR IS ARRAY (SUBINT RANGE <>) OF CHARACTER;
          TYPE STR IS ARRAY (SUBINT RANGE <>) OF CHARACTER;
          VSTR : STR (0 .. 1) := "AB";
          VSTR : STR (0 .. 1) := "AB";
 
 
          PACKAGE P13 IS NEW GP2 (STR, VSTR (0 .. 0) &
          PACKAGE P13 IS NEW GP2 (STR, VSTR (0 .. 0) &
                                      VSTR (1 .. 1),
                                      VSTR (1 .. 1),
                                      VSTR (0 .. 0),
                                      VSTR (0 .. 0),
                                      VSTR (1 .. 1), """&"" - 1", "&");
                                      VSTR (1 .. 1), """&"" - 1", "&");
 
 
          PACKAGE P14 IS NEW GP2 (STR, VSTR (1 .. 1) &
          PACKAGE P14 IS NEW GP2 (STR, VSTR (1 .. 1) &
                                      VSTR (0 .. 0),
                                      VSTR (0 .. 0),
                                      VSTR (1 .. 1),
                                      VSTR (1 .. 1),
                                      VSTR (0 .. 0), """&"" - 2", "&");
                                      VSTR (0 .. 0), """&"" - 2", "&");
 
 
          PACKAGE P15 IS NEW GP2 (INTEGER, 0, -1, 0, """*"" - 1", "*");
          PACKAGE P15 IS NEW GP2 (INTEGER, 0, -1, 0, """*"" - 1", "*");
 
 
          PACKAGE P16 IS NEW GP2 (FLOAT, 6.0, 3.0, 2.0, """*"" - 2",
          PACKAGE P16 IS NEW GP2 (FLOAT, 6.0, 3.0, 2.0, """*"" - 2",
                                  "*");
                                  "*");
          PACKAGE P17 IS NEW GP2 (INTEGER, 0, 0, 6, """/"" - 1", "/");
          PACKAGE P17 IS NEW GP2 (INTEGER, 0, 0, 6, """/"" - 1", "/");
 
 
          PACKAGE P18 IS NEW GP2 (FLOAT, 3.0, 6.0, 2.0, """/"" - 2",
          PACKAGE P18 IS NEW GP2 (FLOAT, 3.0, 6.0, 2.0, """/"" - 2",
                                  "/");
                                  "/");
          PACKAGE P19 IS NEW GP2 (INTEGER, -1, -11, 5, "REM", "REM");
          PACKAGE P19 IS NEW GP2 (INTEGER, -1, -11, 5, "REM", "REM");
 
 
          PACKAGE P20 IS NEW GP2 (INTEGER, 4, -11, 5, "MOD", "MOD");
          PACKAGE P20 IS NEW GP2 (INTEGER, 4, -11, 5, "MOD", "MOD");
 
 
          PACKAGE P21 IS NEW GP1 (INTEGER, 5, 5, """ABS"" - 1", "ABS");
          PACKAGE P21 IS NEW GP1 (INTEGER, 5, 5, """ABS"" - 1", "ABS");
 
 
          PACKAGE P22 IS NEW GP1 (FLOAT, -5.0, 5.0, """ABS"" - 2",
          PACKAGE P22 IS NEW GP1 (FLOAT, -5.0, 5.0, """ABS"" - 2",
                                  "ABS");
                                  "ABS");
 
 
          PACKAGE P23 IS NEW GP1 (DURATION, 0.0, 0.0, """ABS"" - 3",
          PACKAGE P23 IS NEW GP1 (DURATION, 0.0, 0.0, """ABS"" - 3",
                                  "ABS");
                                  "ABS");
 
 
          PACKAGE P24 IS NEW GP2 (INTEGER, 9, 3, 2, """**"" - 1",
          PACKAGE P24 IS NEW GP2 (INTEGER, 9, 3, 2, """**"" - 1",
                                  "**");
                                  "**");
 
 
          PACKAGE P25 IS NEW GP2 (INTEGER, 1, 5, 0, """**"" - 2",
          PACKAGE P25 IS NEW GP2 (INTEGER, 1, 5, 0, """**"" - 2",
                                  "**");
                                  "**");
 
 
     BEGIN
     BEGIN
          NULL;
          NULL;
     END;
     END;
 
 
     DECLARE -- CHECKS WITH ATTRIBUTES.
     DECLARE -- CHECKS WITH ATTRIBUTES.
 
 
          TYPE WEEKDAY IS (MON, TUES, WED, THUR, FRI);
          TYPE WEEKDAY IS (MON, TUES, WED, THUR, FRI);
 
 
          PACKAGE P1 IS NEW GP1 (WEEKDAY, TUES, WED, "WEEKDAY'SUCC",
          PACKAGE P1 IS NEW GP1 (WEEKDAY, TUES, WED, "WEEKDAY'SUCC",
                                 WEEKDAY'SUCC);
                                 WEEKDAY'SUCC);
 
 
          PACKAGE P2 IS NEW GP1 (WEEKDAY, TUES, MON, "WEEKDAY'PRED",
          PACKAGE P2 IS NEW GP1 (WEEKDAY, TUES, MON, "WEEKDAY'PRED",
                                 WEEKDAY'PRED);
                                 WEEKDAY'PRED);
 
 
          PACKAGE P3 IS NEW GP3 (WEEKDAY, STRING, THUR, "THUR",
          PACKAGE P3 IS NEW GP3 (WEEKDAY, STRING, THUR, "THUR",
                                 "WEEKDAY'IMAGE", WEEKDAY'IMAGE);
                                 "WEEKDAY'IMAGE", WEEKDAY'IMAGE);
 
 
          PACKAGE P4 IS NEW GP3 (STRING, WEEKDAY, "FRI", FRI,
          PACKAGE P4 IS NEW GP3 (STRING, WEEKDAY, "FRI", FRI,
                                 "WEEKDAY'VALUE", WEEKDAY'VALUE);
                                 "WEEKDAY'VALUE", WEEKDAY'VALUE);
     BEGIN
     BEGIN
          NULL;
          NULL;
     END;
     END;
 
 
     RESULT;
     RESULT;
END CC3601A;
END CC3601A;
 
 

powered by: WebSVN 2.1.0

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