c47009b.ada

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

ADA
283
字号
-- C47009B.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:--     WHEN THE TYPE MARK IN A QUALIFIED EXPRESSION DENOTES AN ACCESS--     TYPE, CHECK THAT CONSTRAINT_ERROR IS NOT RAISED WHEN THE VALUE--     OF THE OPERAND IS NULL.-- HISTORY:--     RJW 07/23/86  CREATED ORIGINAL TEST.--     BCB 08/18/87  CHANGED HEADER TO STANDARD HEADER FORMAT.  CHANGED--                   CONSTRAINTS OF B SUBTYPES TO VALUES WHICH ARE--                   CLOSER TO THE VALUES OF THE A SUBTYPES.  INDENTED--                   THE EXCEPTION STATEMENTS IN SUBTEST 11.WITH REPORT; USE REPORT;PROCEDURE C47009B ISBEGIN     TEST( "C47009B", "WHEN THE TYPE MARK IN A QUALIFIED " &                      "EXPRESSION DENOTES AN ACCESS TYPE, " &                      "CHECK THAT CONSTRAINT_ERROR IS NOT " &                      "RAISED WHEN THE VALUE OF THE OPERAND IS NULL" );     DECLARE          TYPE ACC1 IS ACCESS BOOLEAN;          A : ACC1;     BEGIN          A := ACC1'(NULL);     EXCEPTION          WHEN CONSTRAINT_ERROR =>               FAILED ( "CONSTRAINT_ERROR RAISED FOR TYPE ACC1" );          WHEN OTHERS =>               FAILED ( "OTHER EXCEPTION RAISED FOR TYPE ACC1" );     END;     DECLARE          TYPE ACC2 IS ACCESS INTEGER;          A : ACC2;     BEGIN          A := ACC2'(NULL);     EXCEPTION          WHEN CONSTRAINT_ERROR =>               FAILED ( "CONSTRAINT_ERROR RAISED FOR TYPE ACC2" );          WHEN OTHERS =>               FAILED ( "OTHER EXCEPTION RAISED FOR TYPE ACC2" );     END;     DECLARE          TYPE CHAR IS ('A', 'B');          TYPE ACC3 IS ACCESS CHAR;          A : ACC3;     BEGIN          A := ACC3'(NULL);     EXCEPTION          WHEN CONSTRAINT_ERROR =>               FAILED ( "CONSTRAINT_ERROR RAISED FOR TYPE ACC3" );          WHEN OTHERS =>               FAILED ( "OTHER EXCEPTION RAISED FOR TYPE ACC3" );     END;     DECLARE          TYPE FLOAT1 IS DIGITS 5 RANGE -1.0 .. 1.0;          TYPE ACC4 IS ACCESS FLOAT1;          A : ACC4;     BEGIN          A := ACC4'(NULL);     EXCEPTION          WHEN CONSTRAINT_ERROR =>               FAILED ( "CONSTRAINT_ERROR RAISED FOR TYPE ACC4" );          WHEN OTHERS =>               FAILED ( "OTHER EXCEPTION RAISED FOR TYPE ACC4" );     END;     DECLARE          TYPE FIXED IS DELTA 0.5 RANGE -1.0 .. 1.0;          TYPE ACC5 IS ACCESS FIXED;          A : ACC5;     BEGIN          A := ACC5'(NULL);     EXCEPTION          WHEN CONSTRAINT_ERROR =>               FAILED ( "CONSTRAINT_ERROR RAISED FOR TYPE ACC5" );          WHEN OTHERS =>               FAILED ( "OTHER EXCEPTION RAISED FOR TYPE ACC5" );     END;     DECLARE          TYPE ARR IS ARRAY (NATURAL RANGE <>) OF INTEGER;          TYPE ACC6 IS ACCESS ARR;          SUBTYPE ACC6A IS ACC6 (IDENT_INT (1) .. IDENT_INT (5));          SUBTYPE ACC6B IS ACC6 (IDENT_INT (2) .. IDENT_INT (10));          A : ACC6A;          B : ACC6B;     BEGIN          A := ACC6A'(B);     EXCEPTION          WHEN CONSTRAINT_ERROR =>               FAILED ( "CONSTRAINT_ERROR RAISED FOR SUBTYPES OF " &                        "TYPE ACC6" );          WHEN OTHERS =>               FAILED ( "OTHER EXCEPTION RAISED FOR SUBTYPES OF " &                        "TYPE ACC6" );     END;     DECLARE          TYPE ARR IS ARRAY (NATURAL RANGE <>, NATURAL RANGE <>)               OF INTEGER;          TYPE ACC7 IS ACCESS ARR;          SUBTYPE ACC7A IS ACC7 (IDENT_INT (1) .. IDENT_INT (5),                                 IDENT_INT (1) .. IDENT_INT (1));          SUBTYPE ACC7B IS ACC7 (IDENT_INT (1) .. IDENT_INT (15),                                 IDENT_INT (1) .. IDENT_INT (10));          A : ACC7A;          B : ACC7B;     BEGIN          A := ACC7A'(B);     EXCEPTION          WHEN CONSTRAINT_ERROR =>               FAILED ( "CONSTRAINT_ERROR RAISED FOR SUBTYPES OF " &                        "TYPE ACC7" );          WHEN OTHERS =>               FAILED ( "OTHER EXCEPTION RAISED FOR SUBTYPES OF " &                        "TYPE ACC7" );     END;     DECLARE          TYPE REC (D : INTEGER) IS               RECORD                    NULL;               END RECORD;          TYPE ACC8 IS ACCESS REC;          SUBTYPE ACC8A IS ACC8 (IDENT_INT (5));          SUBTYPE ACC8B IS ACC8 (IDENT_INT (6));          A : ACC8A;          B : ACC8B;     BEGIN          A := ACC8A'(B);     EXCEPTION          WHEN CONSTRAINT_ERROR =>               FAILED ( "CONSTRAINT_ERROR RAISED FOR SUBTYPES OF " &                        "TYPE ACC8" );          WHEN OTHERS =>               FAILED ( "OTHER EXCEPTION RAISED FOR SUBTYPES OF " &                        "TYPE ACC8" );     END;     DECLARE          TYPE REC (D1,D2 : INTEGER) IS               RECORD                    NULL;               END RECORD;          TYPE ACC9 IS ACCESS REC;          SUBTYPE ACC9A IS ACC9 (IDENT_INT (4), IDENT_INT (5));          SUBTYPE ACC9B IS ACC9 (IDENT_INT (5), IDENT_INT (4));          A : ACC9A;          B : ACC9B;     BEGIN          A := ACC9A'(B);     EXCEPTION          WHEN CONSTRAINT_ERROR =>               FAILED ( "CONSTRAINT_ERROR RAISED FOR SUBTYPES OF " &                        "TYPE ACC9" );          WHEN OTHERS =>               FAILED ( "OTHER EXCEPTION RAISED FOR SUBTYPES OF " &                        "TYPE ACC9" );     END;     DECLARE          PACKAGE PKG IS               TYPE REC (D : INTEGER) IS PRIVATE;          PRIVATE               TYPE REC (D : INTEGER) IS                    RECORD                         NULL;                    END RECORD;          END PKG;          USE PKG;          TYPE ACC10 IS ACCESS REC;          SUBTYPE ACC10A IS ACC10 (IDENT_INT (10));          SUBTYPE ACC10B IS ACC10 (IDENT_INT (9));          A : ACC10A;          B : ACC10B;     BEGIN          A := ACC10A'(B);     EXCEPTION          WHEN CONSTRAINT_ERROR =>               FAILED ( "CONSTRAINT_ERROR RAISED FOR SUBTYPES OF " &                        "TYPE ACC10" );          WHEN OTHERS =>               FAILED ( "OTHER EXCEPTION RAISED FOR SUBTYPES OF " &                        "TYPE ACC10" );     END;     DECLARE          PACKAGE PKG1 IS               TYPE REC (D : INTEGER) IS LIMITED PRIVATE;          PRIVATE               TYPE REC (D : INTEGER) IS                    RECORD                         NULL;                    END RECORD;          END PKG1;          PACKAGE PKG2 IS END PKG2;          PACKAGE BODY PKG2 IS               USE PKG1;               TYPE ACC11 IS ACCESS REC;               SUBTYPE ACC11A IS ACC11 (IDENT_INT (11));               SUBTYPE ACC11B IS ACC11 (IDENT_INT (12));               A : ACC11A;               B : ACC11B;          BEGIN               A := ACC11A'(B);          EXCEPTION               WHEN CONSTRAINT_ERROR =>                    FAILED ( "CONSTRAINT_ERROR RAISED FOR SUBTYPES OF" &                             " TYPE ACC11" );               WHEN OTHERS =>                    FAILED ( "OTHER EXCEPTION RAISED FOR SUBTYPES OF " &                             "TYPE ACC11" );          END PKG2;     BEGIN          NULL;     END;     RESULT;END C47009B;

⌨️ 快捷键说明

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