c34007v.ada

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

ADA
184
字号
-- C34007V.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 THE REQUIRED PREDEFINED OPERATIONS ARE DECLARED--     (IMPLICITLY) FOR DERIVED ACCESS TYPES WHOSE DESIGNATED TYPE IS A--     ONE-DIMENSIONAL ARRAY TYPE.  THIS TEST IS PART 2 OF 2 TESTS--     WHICH COVER THE OBJECTIVE.  THE FIRST PART IS IN TEST C34007D.-- HISTORY:--     BCB 04/12/90  CREATED ORIGINAL TEST FROM SPLIT OF C34007D.ADA.--     THS 09/18/90  REMOVED DECLARATION OF B, DELETED PROCEDURE A,--                   AND REMOVED ALL REFERENCES TO B.WITH SYSTEM; USE SYSTEM;WITH REPORT; USE REPORT;PROCEDURE C34007V IS     SUBTYPE COMPONENT IS INTEGER;     TYPE DESIGNATED IS ARRAY (NATURAL RANGE <>) OF COMPONENT;     SUBTYPE SUBDESIGNATED IS DESIGNATED (IDENT_INT (5) ..                                          IDENT_INT (7));     PACKAGE PKG IS          TYPE PARENT IS ACCESS DESIGNATED;          FUNCTION CREATE ( F, L  : NATURAL;                            C     : COMPONENT;                            DUMMY : PARENT   -- TO RESOLVE OVERLOADING.                          ) RETURN PARENT;     END PKG;     USE PKG;     TYPE T IS NEW PARENT (IDENT_INT (5) .. IDENT_INT (7));     X : T         := NEW SUBDESIGNATED'(OTHERS => 2);     K : INTEGER   := X'SIZE;     Y : T         := NEW SUBDESIGNATED'(1, 2, 3);     W : PARENT    := NEW SUBDESIGNATED'(OTHERS => 2);     C : COMPONENT := 1;     N : CONSTANT  := 1;     FUNCTION V RETURN T IS     BEGIN          RETURN NEW SUBDESIGNATED'(OTHERS => C);     END V;     PACKAGE BODY PKG IS          FUNCTION CREATE             ( F, L  : NATURAL;               C     : COMPONENT;               DUMMY : PARENT             ) RETURN PARENT          IS               A : PARENT    := NEW DESIGNATED (F .. L);               B : COMPONENT := C;          BEGIN               FOR I IN F .. L LOOP                    A (I) := B;                    B := B + 1;               END LOOP;               RETURN A;          END CREATE;     END PKG;     FUNCTION IDENT (X : T) RETURN T IS     BEGIN          IF X = NULL OR ELSE             EQUAL (X'LENGTH, X'LENGTH) THEN               RETURN X;                          -- ALWAYS EXECUTED.          END IF;          RETURN NEW SUBDESIGNATED;     END IDENT;BEGIN     TEST ("C34007V", "CHECK THAT THE REQUIRED PREDEFINED OPERATIONS " &                      "ARE DECLARED (IMPLICITLY) FOR DERIVED " &                      "ACCESS TYPES WHOSE DESIGNATED TYPE IS A " &                      "ONE-DIMENSIONAL ARRAY TYPE.  THIS TEST IS " &                      "PART 2 OF 2 TESTS WHICH COVER THE OBJECTIVE.  " &                      "THE FIRST PART IS IN TEST C34007V");     W := PARENT (CREATE (2, 3, 4, X));     IF W = NULL OR ELSE W.ALL /= (4, 5) THEN          FAILED ("INCORRECT CONVERSION TO PARENT - 2");     END IF;     X := IDENT (Y);     IF X.ALL /= (1, 2, 3) OR CREATE (2, 3, 4, X) . ALL /= (4, 5) THEN          FAILED ("INCORRECT .ALL (VALUE)");     END IF;     X.ALL := (10, 11, 12);     IF X /= Y OR Y.ALL /= (10, 11, 12) THEN          FAILED ("INCORRECT .ALL (ASSIGNMENT)");     END IF;     Y.ALL := (1, 2, 3);     BEGIN          CREATE (2, 3, 4, X) . ALL := (10, 11);     EXCEPTION          WHEN OTHERS =>               FAILED ("EXCEPTION FOR .ALL (ASSIGNMENT)");     END;     X := IDENT (Y);     IF X (IDENT_INT (5)) /= 1 OR        CREATE (2, 3, 4, X) (3) /= 5 THEN          FAILED ("INCORRECT INDEX (VALUE)");     END IF;     Y.ALL := (1, 2, 3);     X := IDENT (Y);     BEGIN          CREATE (2, 3, 4, X) (2) := 10;     EXCEPTION          WHEN OTHERS =>               FAILED ("EXCEPTION FOR INDEX (ASSIGNMENT)");     END;     IF X (IDENT_INT (6) .. IDENT_INT (7)) /= (2, 3) OR        CREATE (1, 4, 4, X) (1 .. 3) /= (4, 5, 6) THEN          FAILED ("INCORRECT SLICE (VALUE)");     END IF;     Y.ALL := (1, 2, 3);     X := IDENT (Y);     BEGIN          CREATE (1, 4, 4, X) (2 .. 4) := (10, 11, 12);     EXCEPTION          WHEN OTHERS =>               FAILED ("EXCEPTION FOR SLICE (ASSIGNMENT)");     END;     IF X = NULL OR X = NEW SUBDESIGNATED OR NOT (X = Y) OR        X = CREATE (2, 3, 4, X) THEN          FAILED ("INCORRECT =");     END IF;     IF X /= Y OR NOT (X /= NULL) OR NOT (X /= CREATE (2, 3, 4, X)) THEN          FAILED ("INCORRECT /=");     END IF;     IF NOT (X IN T) OR CREATE (2, 3, 4, X) IN T THEN          FAILED ("INCORRECT ""IN""");     END IF;     IF X NOT IN T OR NOT (CREATE (2, 3, 4, X) NOT IN T) THEN          FAILED ("INCORRECT ""NOT IN""");     END IF;     RESULT;END C34007V;

⌨️ 快捷键说明

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