ca1108b.ada
来自「用于进行gcc测试」· ADA 代码 · 共 169 行
ADA
169 行
-- CA1108B.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.--*-- CHECK THAT IF WITH_CLAUSES ARE GIVEN FOR BOTH A SPEC AND A BODY, AND-- THE CLAUSES NAME DIFFERENT LIBRARY UNITS, THE UNITS NAMED IN ALL THE-- CLAUSES ARE VISIBLE IN THE BODY AND IN SUBUNITS OF THE BODY.-- BHS 7/31/84-- JBG 5/1/85PACKAGE FIRST_PKG IS FUNCTION F (X : INTEGER := 1) RETURN INTEGER;END FIRST_PKG;PACKAGE BODY FIRST_PKG IS FUNCTION F (X : INTEGER := 1) RETURN INTEGER IS BEGIN RETURN X; END F;END FIRST_PKG;PACKAGE LATER_PKG IS FUNCTION F (Y : INTEGER := 2) RETURN INTEGER;END LATER_PKG;PACKAGE BODY LATER_PKG IS FUNCTION F (Y : INTEGER := 2) RETURN INTEGER IS BEGIN RETURN Y + 1; END F;END LATER_PKG;WITH REPORT, FIRST_PKG;USE REPORT;PRAGMA ELABORATE (FIRST_PKG);PACKAGE CA1108B_PKG IS I, J : INTEGER; PROCEDURE PROC; PROCEDURE CALL_SUBS (X, Y : IN OUT INTEGER);END CA1108B_PKG;WITH LATER_PKG;PRAGMA ELABORATE (LATER_PKG);PACKAGE BODY CA1108B_PKG IS PROCEDURE SUB (X, Y : IN OUT INTEGER) IS SEPARATE; PROCEDURE PROC IS I, J : INTEGER; BEGIN I := FIRST_PKG.F; IF I /= 1 THEN FAILED ("FIRST_PKG FUNCTION NOT VISIBLE IN " & "PACKAGE BODY PROCEDURE"); END IF; J := LATER_PKG.F; IF J /= 3 THEN FAILED ("LATER_PKG FUNCITON NOT VISIBLE IN " & "PACKAGE BODY PROCEDURE"); END IF; END PROC; PROCEDURE CALL_SUBS (X, Y : IN OUT INTEGER) IS BEGIN SUB (X, Y); END CALL_SUBS;BEGIN I := FIRST_PKG.F; IF I /= 1 THEN FAILED ("FIRST_PKG FUNCTION NOT VISIBLE IN PACKAGE BODY"); END IF; J := LATER_PKG.F; IF J /= 3 THEN FAILED ("LATER_PKG FUNCTION NOT VISIBLE IN PACKAGE BODY"); END IF;END CA1108B_PKG;WITH REPORT, CA1108B_PKG;USE REPORT, CA1108B_PKG;PROCEDURE CA1108B IS VAR1, VAR2 : INTEGER;BEGIN TEST ("CA1108B", "IF DIFFERENT WITH_CLAUSES GIVEN FOR PACKAGE " & "SPEC AND BODY, ALL NAMED UNITS ARE VISIBLE " & "IN THE BODY AND ITS SUBUNITS"); PROC; VAR1 := 0; VAR2 := 1; CALL_SUBS (VAR1, VAR2); IF VAR1 /= 1 THEN FAILED ("FIRST_PKG FUNCTION NOT VISIBLE IN SUBUNIT"); END IF; IF VAR2 /= 3 THEN FAILED ("LATER_PKG FUNCTION NOT VISIBLE IN SUBUNIT"); END IF; RESULT;END CA1108B;SEPARATE (CA1108B_PKG)PROCEDURE SUB (X, Y : IN OUT INTEGER) IS PROCEDURE SUB2 (A, B : IN OUT INTEGER) IS SEPARATE;BEGIN SUB2 (Y, X); IF Y /= 1 THEN FAILED ("FIRST_PKG FUNCTION NOT VISIBLE IN SUBUNIT " & "OF SUBUNIT"); END IF; IF X /= 3 THEN FAILED ("LATER_PKG FUNCTION NOT VISIBLE IN SUBUNIT " & "OF SUBUNIT"); END IF; X := FIRST_PKG.F; Y := LATER_PKG.F;END SUB;SEPARATE (CA1108B_PKG.SUB)PROCEDURE SUB2 (A, B : IN OUT INTEGER) ISBEGIN A := FIRST_PKG.F; B := LATER_PKG.F;END SUB2;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?