c37209b.ada
来自「用于进行gcc测试」· ADA 代码 · 共 195 行
ADA
195 行
-- C37209B.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 CONSTRAINT_ERROR IS RAISED WHEN THE SUBTYPE-- INDICATION IN A CONSTANT OBJECT DECLARATION SPECIFIES A-- CONSTRAINED SUBTYPE WITH DISCRIMINANTS AND THE INITIALIZATION-- VALUE DOES NOT BELONG TO THE SUBTYPE (I. E., THE DISCRIMINANT-- VALUE DOES NOT MATCH THOSE SPECIFIED BY THE CONSTRAINT).-- HISTORY:-- RJW 08/25/86 CREATED ORIGINAL TEST-- VCL 08/19/87 CHANGED THE RETURN TYPE OF FUNTION 'INIT' IN-- PACKAGE 'PRIV2' SO THAT 'INIT' IS UNCONSTRAINED,-- THUS NOT RAISING A CONSTRAINT ERROR ON RETURN FROM-- 'INIT'.WITH REPORT; USE REPORT;PROCEDURE C37209B ISBEGIN TEST ( "C37209B", "CHECK THAT CONSTRAINT_ERROR IS RAISED WHEN " & "THE SUBTYPE INDICATION IN A CONSTANT " & "OBJECT DECLARATION SPECIFIES A CONSTRAINED " & "SUBTYPE WITH DISCRIMINANTS AND THE " & "INITIALIZATION VALUE DOES NOT BELONG TO " & "THE SUBTYPE (I. E., THE DISCRIMINANT VALUE " & "DOES NOT MATCH THOSE SPECIFIED BY THE " & "CONSTRAINT)" ); DECLARE TYPE REC (D : INTEGER) IS RECORD NULL; END RECORD; SUBTYPE REC1 IS REC (IDENT_INT (5)); BEGIN DECLARE R1 : CONSTANT REC1 := (D => IDENT_INT (10)); I : INTEGER := IDENT_INT (R1.D); BEGIN FAILED ( "NO EXCEPTION RAISED FOR DECLARATION OF " & "R1" ); EXCEPTION WHEN OTHERS => FAILED ( "EXCEPTION FOR R1 RAISED INSIDE BLOCK" ); END; EXCEPTION WHEN CONSTRAINT_ERROR => NULL; WHEN OTHERS => FAILED ( "OTHER EXCEPTION RAISED AT DECLARATION OF " & "R1" ); END; BEGIN DECLARE PACKAGE PRIV1 IS TYPE REC (D : INTEGER) IS PRIVATE; SUBTYPE REC2 IS REC (IDENT_INT (5)); R2 : CONSTANT REC2; PRIVATE TYPE REC (D : INTEGER) IS RECORD NULL; END RECORD; R2 : CONSTANT REC2 := (D => IDENT_INT (10)); END PRIV1; USE PRIV1; BEGIN DECLARE I : INTEGER := IDENT_INT (R2.D); BEGIN FAILED ( "NO EXCEPTION RAISED AT DECLARATION " & "OF R2" ); END; END; EXCEPTION WHEN CONSTRAINT_ERROR => NULL; WHEN OTHERS => FAILED ( "OTHER EXCEPTION RAISED AT DECLARATION " & "OF R2" ); END; BEGIN DECLARE PACKAGE PRIV2 IS TYPE REC (D : INTEGER) IS PRIVATE; SUBTYPE REC3 IS REC (IDENT_INT (5)); FUNCTION INIT (D : INTEGER) RETURN REC; PRIVATE TYPE REC (D : INTEGER) IS RECORD NULL; END RECORD; END PRIV2; PACKAGE BODY PRIV2 IS FUNCTION INIT (D : INTEGER) RETURN REC IS BEGIN RETURN (D => IDENT_INT (D)); END INIT; END PRIV2; USE PRIV2; BEGIN DECLARE R3 : CONSTANT REC3 := INIT (10); I : INTEGER := IDENT_INT (R3.D); BEGIN FAILED ( "NO EXCEPTION RAISED AT DECLARATION " & "OF R3" ); END; END; EXCEPTION WHEN CONSTRAINT_ERROR => NULL; WHEN OTHERS => FAILED ( "OTHER EXCEPTION RAISED AT DECLARATION " & "OF R3" ); END; BEGIN DECLARE PACKAGE LPRIV IS TYPE REC (D : INTEGER) IS LIMITED PRIVATE; SUBTYPE REC4 IS REC (IDENT_INT (5)); R4 : CONSTANT REC4; PRIVATE TYPE REC (D : INTEGER) IS RECORD NULL; END RECORD; R4 : CONSTANT REC4 := (D => IDENT_INT (10)); END LPRIV; USE LPRIV; BEGIN DECLARE I : INTEGER := IDENT_INT (R4.D); BEGIN FAILED ( "NO EXCEPTION RAISED AT DECLARATION " & "OF R4" ); END; END; EXCEPTION WHEN CONSTRAINT_ERROR => NULL; WHEN OTHERS => FAILED ( "OTHER EXCEPTION RAISED AT DECLARATION " & "OF R4" ); END; RESULT;END C37209B;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?