ac3106a.ada

来自「用于进行gcc测试」· ADA 代码 · 共 217 行

ADA
217
字号
-- AC3106A.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.--*-- OBJECTIVE:--     CHECK THAT AN ACTUAL GENERIC IN OUT PARAMETER CAN BE:--          A) ANY SUBCOMPONENT THAT DOES NOT DEPEND ON A DISCRIMINANT,--             EVEN IF THE ENCLOSING VARIABLE IS UNCONSTRAINED;--          B) ANY SUBCOMPONENT OF AN UNCONSTAINED VARIABLE OF A--             RECORD TYPE IF THE DISCRIMINANTS OF THE--             VARIABLE DO NOT HAVE DEFAULTS AND THE VARIABLE IS NOT--             A GENERIC FORMAL IN OUT PARAMETER;--          C) ANY COMPONENT OF AN OBJECT DESIGNATED BY AN ACCESS--             VALUE.-- HISTORY:--     RJW 11/07/88  CREATED ORIGINAL TEST.WITH REPORT; USE REPORT;PROCEDURE AC3106A IS     SUBTYPE INT IS INTEGER RANGE 0 .. 10;     TYPE REC (D : INT := 0) IS RECORD          A : INTEGER := 5;          CASE D IS               WHEN OTHERS =>                    V : INTEGER := 5;          END CASE;     END RECORD;     TYPE AR_REC IS ARRAY (1 .. 10) OF REC;     TYPE R_REC IS RECORD          E : REC;     END RECORD;     TYPE A_STRING IS ACCESS STRING;     TYPE A_REC IS ACCESS REC;     TYPE A_AR_REC IS ACCESS AR_REC;     TYPE A_R_REC IS ACCESS R_REC;     TYPE DIS (L : INT := 1) IS RECORD          S : STRING (1 .. L) := "A";          R : REC (L);          AS : A_STRING (1 .. L) := NEW STRING (1 .. L);          AR : A_REC (L) := NEW REC (1);          RC : REC (3);          ARU : A_REC := NEW REC;          V_AR : AR_REC;          V_R : R_REC;          AC_AR : A_AR_REC := NEW AR_REC;          AC_R : A_R_REC := NEW R_REC;     END RECORD;     TYPE A_DIS IS ACCESS DIS;     AD : A_DIS := NEW DIS;     TYPE DIS2 (L : INT) IS RECORD          S : STRING (1 .. L);          R : REC (L);          AS : A_STRING (1 .. L);          AR : A_REC (L);     END RECORD;     X : DIS;     SUBTYPE REC3 IS REC (3);     GENERIC          GREC3 : IN OUT REC3;     PACKAGE PREC3 IS END PREC3;     SUBTYPE REC0 IS REC (0);     GENERIC          GREC0 : IN OUT REC0;     PACKAGE PREC0 IS END PREC0;     GENERIC          GINT : IN OUT INTEGER;     PACKAGE PINT IS END PINT;     GENERIC          GA_REC : IN OUT A_REC;     PACKAGE PA_REC IS END PA_REC;     GENERIC          GAR_REC : IN OUT AR_REC;     PACKAGE PAR_REC IS END PAR_REC;     GENERIC          GR_REC : IN OUT R_REC;     PACKAGE PR_REC IS END PR_REC;     GENERIC          GA_AR_REC : IN OUT A_AR_REC;     PACKAGE PA_AR_REC IS END PA_AR_REC;     GENERIC          GA_R_REC : IN OUT A_R_REC;     PACKAGE PA_R_REC IS END PA_R_REC;     TYPE BUFFER (SIZE : INT) IS RECORD          POS : NATURAL := 0;          VAL : STRING (1 .. SIZE);     END RECORD;     SUBTYPE BUFF_5 IS BUFFER (5);     GENERIC          Y : IN OUT CHARACTER;     PACKAGE P_CHAR IS END P_CHAR;     SUBTYPE STRING5 IS STRING (1 .. 5);     GENERIC          GSTRING : STRING5;     PACKAGE P_STRING IS END P_STRING;     GENERIC          GA_STRING : A_STRING;     PACKAGE P_A_STRING IS END P_A_STRING;     GENERIC          X : IN OUT BUFF_5;     PACKAGE P_BUFF IS          RX : BUFF_5 RENAMES X;     END P_BUFF;     Z : BUFFER (1) := (SIZE => 1, POS =>82, VAL =>"R");BEGIN     TEST ("AC3106A", "CHECK THE PERMITTED FORMS OF AN ACTUAL " &                      "GENERIC IN OUT PARAMETER");     DECLARE -- A)          PACKAGE NPINT3 IS NEW PINT (X.RC.A);          PACKAGE NPINT4 IS NEW PINT (X.RC.V);          PACKAGE NPREC3 IS NEW PREC3 (X.RC);          PACKAGE NPA_REC IS NEW PA_REC (X.ARU);          PACKAGE NPINT5 IS NEW PINT (X.ARU.A);          PACKAGE NPINT6 IS NEW PINT (X.ARU.V);          PACKAGE NPAR_REC IS NEW PAR_REC (X.V_AR);          PACKAGE NPREC01 IS NEW PREC0 (X.V_AR (1));          PACKAGE NPR_REC IS NEW PR_REC (X.V_R);          PACKAGE NPREC02 IS NEW PREC0 (X.V_R.E);          PACKAGE NPINT7 IS NEW PINT (X.V_R.E.A);          PACKAGE NP_BUFF IS NEW P_BUFF (Z);          USE NP_BUFF;          PACKAGE NP_CHAR3 IS NEW P_CHAR (RX.VAL (1));          PROCEDURE PROC (X : IN OUT BUFFER) IS               PACKAGE NP_CHAR4 IS NEW P_CHAR (X.VAL (1));          BEGIN               NULL;          END;     BEGIN          NULL;     END; -- A)     DECLARE -- B)          PROCEDURE PROC (Y : IN OUT DIS2) IS               PACKAGE NP_STRING IS NEW P_STRING (Y.S);               PACKAGE NP_CHAR IS NEW P_CHAR (Y.S (1));               PACKAGE NP_A_STRING IS NEW P_A_STRING (Y.AS);               PACKAGE NP_CHAR2 IS NEW P_CHAR (Y.AS (1));               PACKAGE NPINT3 IS NEW PINT (Y.R.A);               PACKAGE NPINT4 IS NEW PINT (Y.R.V);               PACKAGE NPREC3 IS NEW PREC3 (Y.R);               PACKAGE NPA_REC IS NEW PA_REC (Y.AR);               PACKAGE NPINT5 IS NEW PINT (Y.AR.A);               PACKAGE NPINT6 IS NEW PINT (Y.AR.V);          BEGIN               NULL;          END;     BEGIN          NULL;     END; -- B)     DECLARE -- C)          PACKAGE NP_CHAR IS NEW P_CHAR (AD.S (1));          PACKAGE NP_A_STRING IS NEW P_A_STRING (AD.AS);          PACKAGE NP_CHAR2 IS NEW P_CHAR (AD.AS (1));          PACKAGE NPINT3 IS NEW PINT (AD.R.A);          PACKAGE NPINT4 IS NEW PINT (AD.R.V);          PACKAGE NPREC3 IS NEW PREC3 (AD.R);          PACKAGE NPA_REC IS NEW PA_REC (AD.AR);          PACKAGE NPINT5 IS NEW PINT (AD.AR.A);          PACKAGE NPINT6 IS NEW PINT (AD.AR.V);     BEGIN          NULL;     END; -- C)     RESULT;END AC3106A;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?