cd300050.am
来自「linux下编程用 编译软件」· AM 代码 · 共 155 行
AM
155 行
-- CD30005.A---- 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 Address clauses are supported for imported subprograms.---- TEST DESCRIPTION:-- This test imports a simple C function and specifies it's location.---- The implementation may choose to implement-- Impdef.CD30005_1_Foreign_Address so as to dynamically call a C-- function that returns the appropriate address for the external-- function identified by Impdef.CD30005_1_External_Name.---- TEST FILES:-- CD300050.AM-- CD300051.C -- the C function: (included below for reference)---- SPECIAL REQUIREMENTS:-- The file CD300051.C must be compiled with a C compiler.-- Implementation dialects of C may require alteration of the C program-- syntax. The program is included here for reference:---- int _cd30005_1( Value )-- {-- /* int Value */---- return Value + 1;-- }---- Implementations may require special linkage commands to include the-- C code.---- APPLICABILITY CRITERIA:-- This test is not applicable to implementations not providing an interface-- to C language units. OTHERWISE:---- All implementations must attempt to compile this test.---- For implementations validating against Systems Programming Annex (C):-- this test must execute and report PASSED.---- For implementations not validating against Annex C:-- this test may report compile time errors at one or more points-- indicated by "-- ANX-C RQMT", in which case it may be graded as inapplicable.-- Otherwise, the test must execute and report PASSED.------ CHANGE HISTORY:-- 22 JUL 95 SAIC Initial version-- 30 APR 96 SAIC Added commentary for 2.1-- 09 MAY 96 SAIC Changed reporting for 2.1-- 04 NOV 96 SAIC Added use type System.Address-- 16 FEB 98 EDS Modified documentation.-- 29 JUN 98 EDS Modified main program name.--!----------------------------------------------------------------- CD30005_0with Impdef;package CD30005_0 is-- Check that Address clauses are supported for imported subprograms. type External_Func_Ref is access function(N:Integer) return Integer; pragma Convention( C, External_Func_Ref ); function CD30005_1( I: Integer ) return Integer; pragma Import( C, CD30005_1, Impdef.CD30005_1_External_Name ); -- N/A => ERROR. for CD30005_1'Address use Impdef.CD30005_1_Foreign_Address; -- ANX-C RQMT. procedure TC_Check_Imports;end CD30005_0;-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --with Report;with System.Storage_Elements;with System.Address_To_Access_Conversions;package body CD30005_0 is use type System.Address; procedure TC_Check_Imports is S : External_Func_Ref := CD30005_1'Access; I,K : Integer := 99; begin K := S.all(I); if K /= 100 then Report.Failed("C program returned" & Integer'Image(K)); end if; I := CD30005_1( I ); if I /= 100 then Report.Failed("C program returned" & Integer'Image(I)); end if; if CD30005_1'Address /= Impdef.CD30005_1_Foreign_Address then Report.Failed("Address not that specified"); end if; end TC_Check_Imports;end CD30005_0;------------------------------------------------------------------- CD300050with Report;with CD30005_0;procedure CD300050 isbegin -- Main test procedure. Report.Test ("CD30005", "Check that Address clauses are supported for imported " & "subprograms" ); -- Check that Address clauses are supported for imported subprograms. CD30005_0.TC_Check_Imports; Report.Result;end CD300050;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?