.REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden...

41
.REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( gfi~ "sung Ulii l &OI01gathering arnd maintaining the data needed, and reviewing the colection of Into Headquarteers Service. Directorate for Information operations an Reports, 121! Jefferson Davis Higiw. irnato n Regulatory Affairs, Ofie of Management anid Budget. Washington. DC 20503. 1. AGENCY USE (Leave 2. REPORT 3. HEPORT TYPE AND DATES 4. TITLE AND VADScross Sun4 Solaris 2.3 => MIPS R4000, Version 6.2 5. FUNDING Host: Sun SPARCstation 10/512 (under Solaris 2.3) . Target: SGI Indigo XS4000 (MIPS R4000), operating as a bare machine (bare . machine) 6. AUTHORS: ac -)EP.),19~ Wright- Patterson AFB, Dayton, OH - 7. PERFORMING ORGANIZATION NAME (S) AND 8. PERFORMING Ada Validating Facility, Language Control Facility ASB/SCEL, Building 676, Rm. ORGANIZATION 135 Wright-Patterson AFB, Dayton, OH 45433 9. SPONSORING/MONITO RING AGENCY NAME(S) AND 10. SPONSORING/MONITOR ING Ada Joint Program Office, Defense Information System Agency AGENCY Code TXEA, 701 S. Courthouse Rd., Arlington, VA 22204-2199 * i a,. ;iuPLEMENTARY 12a. DISTRIBUTION/AVAILABILITY: Approved for public release; distribution 12b. DRISTRIBUTJPN unlimited 13. (Maximum 200 1 Rational Software Corporation, 940630WI1.1 1367 14. SUBJECT: Ada Programming Language, Ada Compiler Validation Summary 15. NUMBER OF Report, Ada Compiler Val. Capability Val. Testing, Ada Val. Office, Ada Val. Facility _____________ AS/i-T-81 5A 116. PRICE 17 SECURITY 18. SECURITY 19. SECURITY 20. LIMITATION OF CLASSIFICATIN CLASSIFICATION UNCLASSIFIED UNCLASSIFIED UNCLASSIFIED UNCLASSIFIED NSN

Transcript of .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden...

Page 1: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

.REP T DOCUMENTAT1IOFA-28 5Public reporting burden for this collection of information is estimated to average 1 hour Pe( gfi~ "sung Ulii l

&OI01gathering arnd maintaining the data needed, and reviewing the colection of Into HeadquarteerstnService. Directorate for Information operations an Reports, 121! Jefferson Davis Higiw. irnato nRegulatory Affairs, Ofie of Management anid Budget. Washington. DC 20503.

1. AGENCY USE (Leave 2. REPORT 3. HEPORT TYPE AND DATES

4. TITLE AND VADScross Sun4 Solaris 2.3 => MIPS R4000, Version 6.2 5. FUNDINGHost: Sun SPARCstation 10/512 (under Solaris 2.3) .

Target: SGI Indigo XS4000 (MIPS R4000), operating as a bare machine (bare .

machine)

6. AUTHORS: ac -)EP.),19~

Wright- Patterson AFB, Dayton, OH -

7. PERFORMING ORGANIZATION NAME (S) AND 8. PERFORMINGAda Validating Facility, Language Control Facility ASB/SCEL, Building 676, Rm. ORGANIZATION135Wright-Patterson AFB, Dayton, OH 45433

9. SPONSORING/MONITO RING AGENCY NAME(S) AND 10. SPONSORING/MONITOR INGAda Joint Program Office, Defense Information System Agency AGENCYCode TXEA, 701 S. Courthouse Rd., Arlington, VA22204-2199

* i a,. ;iuPLEMENTARY

12a. DISTRIBUTION/AVAILABILITY: Approved for public release; distribution 12b. DRISTRIBUTJPNunlimited

13. (Maximum 200 1

Rational Software Corporation, 940630WI1.1 1367

14. SUBJECT: Ada Programming Language, Ada Compiler Validation Summary 15. NUMBER OFReport, Ada Compiler Val. Capability Val. Testing, Ada Val. Office, Ada Val. Facility _____________

AS/i-T-81 5A 116. PRICE

17 SECURITY 18. SECURITY 19. SECURITY 20. LIMITATION OFCLASSIFICATIN CLASSIFICATIONUNCLASSIFIED UNCLASSIFIED UNCLASSIFIED UNCLASSIFIEDNSN

Page 2: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

4

V AVF Control Number: AVF-VSR-595.0694Date VSR Completed: July 21, 1994

94 -05-12-RAT

Ada COMPILERVALIDATION SUMMARY REPORT:

Certificate Number: 940630W1.11367Rational Software Corporation

VADSCross Sun4 Solaris 2.3 -> MIPS R4000, Version 6.2Sun SPARCstation 10/512 under Solaris 2.3 ->

SGI Indigo XS4000 (used as a MIPS R4000 bare board)

(Final)

Prepared By:Ada Validation Facility

645 CCSG/SCSLWright-Patterson AFB OH 45433-5707

X. C .4r7' £4 Z2GtD a

94-930986f72III•IIIIIIIIIIIIII/III//II/ A a z"_. 1ý. •. I "• '' 7 !

Page 3: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

Certificate Information

The following Ada implementation was tested and determined to pass ACVC 1.11.Testing was completed on 30 June 1994.

Compiler Name and Version: VADSCross Sun4 Solaris 2.3 -> MIPS R4000,Version 6.2

Host Computer System: Sun SPARCstation 10/512under Solaris 2.3

Target Cumputer System: SGI Indigo XS4000(used as a MIPS R4000 bare board)

Customer Agreement Number: 94-05-12-RAT

See section 3.1 for any additional information about the testing environment.

As a result of this validation effort, Validation Certificate 940630W1.11367is -awarded to Rational Software Corporation. This certificate expires twoyears after MIL-STD-1815B is approved by ANSI.

This report has been reviewed and is approved.

YM Validation FacilityDale E. LangeTechnical Director645 CCSG/SCSLWright-Patterson AFS OR 45433-5707

De , and Software Engineering DivisionTH -nstite for Defense AnalysesAlexandria VA 22311

leaession For

11TTS GP-A&IDbld J. 1i~f -7+•+='.+

Director, Un .: . []Defense Inf ation Systems Agency,Center for Information Management By

A! By. +-----.'

al,

'D14l I +;''++'

Page 4: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

DECLARATION OF CONFORMCE

The following declaration of conformance was supplied by the customer.

Declaration of Conformance

Customer: Rational Software Corporation

Ada Validation Facility: 645 CCSG/SCSLWright-Patterson AFB OH 45433-5707

ACVC Version: 1.11

Ada Implementation:

Ada Compiler Name and Version. VADSCross Sun4 Solaris 2.3 -> MIPS R4000,Version 6.2

Host Computer System: Sun owPT' •tation 10/512under Solarl.s 2.3

Target Computer System: SGI Indigo XS4000(used as a MIPS R4000 bare board)

Declaration:

I, the undersigned, declare that I have noknowledge of deliberate deviations from the Ada LanguageStandard ANSI/MIL-STD-1815A ISO 8652-1987, FIPS 119 as testedin this validation documented in the Validation Sum.wry Report.

Custmer ignaureDa e

Page 5: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

STABLE OF CONTENTS

CHAPTER 1 INTRODJCTION

1.1 USE OF THIS VALIDATION S1M4ARY REPORT ......... .. 1-11.2 REFERENCES .......... ..................... .. 1-21.3 ACVC TEST CLASSES ........... ................. .1-21.4 DEFINITION OF TERMS ......... ................ .. 1-3

CHAPTER 2 IMPLEMENTATION DEPENDENCIES

2.1 WITHDRAN TESTS ........... .................. .2-12.2 INAPPLICABLE TESTS ........ ................. .. 2-12.3 TEST MODIFICATIONS ........ ................ ... 2-3

CHAPTER 3 PROCESSING INFORMATION

3.1 TESTING ENVIRONMENT . .... ................ 3-13.2 SUMMARY OF TEST RESULTS ... .............. 3-13.3 TEST EXECUTION ........ ................... .. 3-2

APPENDIX A MACRO PARAMETERS

APPENDIX B COMPILATION SYSTEM OPTIONS

APPENDIX C APPENDIX F OF THE Ada STANDARD

Ii

Page 6: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

CHAPTER 1

INTRODUCTION

The Ada implementation described above was tested according to the AdaValidation Procedures [Pro92] against the Ada Standard (Ada83] using thecurrent Ada Compiler Validation Capability (ACVC). This Validation SummaryReport (VSR) gives an account of the testing of this Ada implementation. Forany, technical terms used in this report, the reader is referred to [Pro92].A detailed description of the ACVC may be found in the current ACVC User'sGuide [UG89].

1.1 USE OF THIS VALIDATION SUWMRY REPORT

Consistent with the national laws of the originating country, the AdaCertification Body may make full and free public disclosure of this report.In the United States, this is provided in accordance with the "Freedom ofInformation Act" (5 U.S.C. #552). The results of this validation apply onlyto the computers, operating systems, and compiler versions identified in thisreport.

The organizations represented on the signature page of this report do notrepresent or warrant that all statements set forth in this report areaccurate and complete, or that the subject implementation has nononconformities to the Ada Standard other than those presented. Copies ofthis report are available to the public from the AVF which performed thisvalidation or from:

National Technical Information Service5285 Port Royal RoadSpringfield VA 22161

Questions regarding this report or the validation test results should bedirected to the AVF which performed this validation or to:

Ada Validation OrganizationComputer and Software Engineering DivisionInstitute for Defense Analyses1801 North Beauregard StreetAlexandria VA 22311-1772

1-1

Page 7: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

INTRODUCTICN

1.2 REFERENCES

(Ada83] Reference Manual for the Ada Programming Language,ANSI/MIL-STD-1815A, February 1983 and ISO 8652-1987.

(Pro92] Ada Compiler Validation Procedures, Version 3.1, Ada JointProgram Office, August 1992.

(UG891 Ada Compiler Validation Capability User's Guide, 21 June 1989.

1.3 ACVC TEST CLASSES

Compliance of Ada implementations is tested by means of the ACVC. The ACVCcontains a collection of test programs structured into six test classes: A,B, C, D, E, and L. The first letter of a test name identifies the class towhich it belongs. Class A, C, D, and E tests are executable. Class B andclass L tests are expected to produce errors at compile time and link time,respectively.

The executable tests are written in a self-checking manner and produce aPASSED, FAILED, or NOT APPLICABLE message indicating the result when they areexecuted. Three Ada library units, the packages REPORT and SPPRT13, and theprocedure CHECK FILE are used for this purpose. The package REPORT alsoprovides a sit of identity functions used to defeat some compileroptimizations allowed by the Ada Standard that would circumvent a testobjective. The package SPPRT13 is used by many tests for Chapter 13 of theAda Standard. The procedure CHECK FILE is used to check the contents of textfiles written by some of the -Class C tests for Chapter 14 of the AdaStandard. The operation of REPORT and CHECK FILE is checked by a set ofexecutable tests. If these units are not operating correctly, validationtesting is discontinued.

Class B tests check that a compiler detects illegal language usage. Class Btests are not executable. Each test in this class is compiled and theresulting compilation listing is examined to verify that all violations ofthe Ada Standard are detected. Some of the class B tests contain legal Adacode which must not be flagged illegal by the compiler. This behavior isalso verified.

Class L tests check that an Ada implementation correctly detects violation ofthe Ada Standard involving multiple, separately compiled units. Errors areexpected at link time, and execution is attempted.

In some tests of the ACVC, certain macro strings have to be replaced byimplementation-specific values - for example, the largest integer. A listof the values used for this implementation is provided in Appendix A. Inaddition to these anticipated test modifications, additional changes may berequired to remove unforeseen conflicts between the tests andimplementation-dependent characteristics. The modifications required forthis implementation are described in section 2.3.

1-2

Page 8: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

INTRODUCTION

For each Ada implementation, a customized test suite is produced by the AVF.This customization consists of making the modifications described in thepreceding paragraph, removing withdrawn tests (see section 2.1), and possiblyremoving some inapplicable tests (see section 2.2 and (UG89]).

In order to pass an ACVC an Ada implementation must process each test of thecustomized test suite according to the Ada Standard.

1.4 DEFINITION OF TERMS

Ada Compiler The software and any needed hardware that have to be added toa given host and target computer system to allowtransformation of Ada programs into executable form andexecution thereof.

Ada Compiler The means for testing compliance of Ada implementations,Validation consisting of the test suite, the support programs, the ACVCCapability user's guide and the template for the validation summary(ACVC) report.

Ada An Ada compiler with its host computer system and itsImplementation target computer system.

Ada Joint The part of the certification body which provides policy andProgram guidance for the Ada certification system.Office (AJPO)

Ada The part of the certification body which carries out theValidation procedures required to establish the compliance of an AdaFacility (AVF) implementation.

Ada The part of the certification body that provides technicalValidation guidance for operations of the Ada certification system.Organization(AVO)

Compliance of The ability of the implementation to pass an ACVC version.an AdaImplementation

Computer A functional unit, consisting of one or more computers andSystem associated software, that uses common storage for all or part

of a program and also for all or part of the data necessaryfor the execution of the program; executes user-written oruser-designated programs; performs user-designated datamanipulation, including arithmetic operations and logicoperations; and that can execute programs that modifythemselves during execution. A computer system may be astand-alone unit or may consist of several inter-connectedunits.

1-3

Page 9: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

INTIODUCTIC14

Conformity Fulfillment by a product, process, or service of allrequirements specified.

Customer An individual or corporate entity who enters into an agreementwith an AVF which specifies the terms and conditions for AVFservices (of any kind) to be performed.

Declaration of A formal statement from a customer assuring that conformityConformance is realized or attainable on the Ada implementation for which

validation status is realized.

Host Computer A computer system where Ada source programs are transformedSystem into executable form.

Inapplicable A test that contains one or more test objectives found to betest irrelevant for the given Ada implementation.

ISO International Organization for Standardization.

LRM The Ada standard, or Language Reference Manual, published asANSI/MIL-STD-1815A-1983 and ISO 8652-1987. Citations from theLRM take the form "<section>.<subsection>:<paragraph>."

Operating Software that controls the execution of programs and thatSystem provides services such as resource allocation, scheduling,

input/output control, and data management. Usually, operatingsystems are predominantly software, but partial or completehardware implementations are possible.

Target A computer system where the executable form of Ada programsComputer are executed.System

Validated Ada The compiler of a validated Ada implementation.Compiler

Validated Ada An AMa implementation that has been validated successfullyImplementation either by AVF testing or by registration [Pro92].

Validation The process of checking the conformity of an Ada compiler tothe Ada programming language and of issuing a certificate forthis implementation.

Withdrawn A test found to be incorrect and not used in conformitytest testing. A test may be incorrect because it has an invalid

test objective, fails to meet its test objective, or containserroneous or illegal use of the Ada programming language.

1-4

Page 10: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

CHAPTER 2

IMPLEMENTION DEPENDENCIES

2.1 WITHDRAWN TESTS

The following tests have been withdrawn by the AVO. The rationale forwithdrawing each test is available from either the AVO or the AVF. Thepublication date for this list of withdrawn tests is 22 November 1993.

B27005A E28005C B28006C C32203A C34006D C35507KC35507L C35507N C355070 C35507P C355081 C35508JC35508M C35508N C35702A C35702B C37310A B41308BC43004A C45114A C45346A C45612A C45612B C45612CC45651A C46022A B49008A B49008B A54BO2A C55BO6AA74006A C74308A B83022B B83022H B83025B B83025DC83026A B83026B C83041A B85001L C86001F C94021AC97116A C98003B BA2011A CB7001A CB7001B CB7004ACC1223A BC1226A CC1226B BC3009B BDlB02B BD1BO6AADIBO8A BD2AO2A CD2A21E CD2A23E CD2A32A CD2A41ACD2A41E CD2A87A CD2B15C BD3006A BD400aA CD4022ACD4022D CD4024B CD4024C CD4024D CD4031A CD4051DCD5111A CD7004C ED7005D CD7005E AD7006A CD7006EAD7201A AD7201E CD7204B AD7206A BD8002A BD8004CCD9005A CD9005B CDA201E CE21071 CE2117A' CE2117BCE2119B CE2205B CE2405A CE3111C CE3116K CE3118ACE3411B CE3412B CE3607B CE3607C CE3607D CE3812ACE3814A CE3902B

2.2 INAPPLICABLE TESTS

A test is inapplicable if it contains test objectives which are irrelevantfor a given Ada implementation. Reasons for a test's inapplicability may besupported by documents issued by the ISO and the AJPO known as AdaCommentaries and commonly referenced in the format AI-ddddd. For thisimplementation, the following tests were determined to be inapplicable forthe reasons indicated; references to Ada Commentaries are included asappropriate.

2-1

Page 11: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

IMPL12UWMTION DEPENDENCIES

The following 201 tests have floating-point type declarations requ ringmore digits than SYSTEM.MAX DIGITS:

C24113L..Y (14 tests) C35705L..Y (14 tests)C35706L..Y (14 tests) C35707L..Y (14 tests)C35708L..Y (14 tests) C35802L..Z (15 tests)C45241L..Y (14 tests) C45321L..Y (14 tests)C45421L..Y (14 tests) C45521L..Z (15 tests)C45524L..Z (15 tests) C45621L..Z (15 tests)C45641L..Y (14 tests) C46012L..Z (15 tests)

The following 20 tests check for the predefined type LONGINTEGER; forthis implementation, there is no such type:

C35404C C45231C C45304C C45411C C45412CC45502C C45503C C45504C C45504F C45611CC45613C C45614C C45631C C45632C B52004DC55B07A B55B09C B86001W C86006C CD7101F

C35713D and B86001Z check for a predefined floating-point type with aname other than FLOAT, LONG FLOAT, or SHORTFLOAT; for thisimplementation, there is no such type.

C45531M..P and C45532M..P (8 tests) check fixed-point operations fortypes that require a SYSTEM.MAX MANTISSA of 47 or greater; for thisimplementation, MAX MANTISSA is less than 47.

C45624A..B (2 tests) check that the proper exception is raised ifMACHINE OVERFLOWS is FALSE for floating point types and the results ofvarious- floating-point operations lie outside the range of the basetype; for this implementation, MACHINEOVERFLOWS is TRUE.

B86001Y uses the name of a predefined fixed-point type other than typeDURATION; for this implementation, there is no such type.

C96005B uses values of type DURATION's base type that are outside therange of type DURATION; for this implementation, tkje ranges are thesame.

CD1009C checks whether a length clause can specify a non-default sizefor a floating-point type; this implementation &oes not support suchsizes.

CD2A84A, CD2A84E, CD2A84I..J (2 tests), and CD2A840 use length clausesto specify non-default sizes for access types; this implementation doesnot support such sizes.

2-2

Page 12: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

IMPLEMTTION DEPENDENCIES

The tests listed in the following table check that USE ERROR is raisedif the given file operations are not supported for the given combinaticnof mode and access method; this implementation supports theseoperations.

Test File Operation Mode File Access Method

CE2102D CREATE IN FILE SEQUENTIAL_ 10CE2102E CREATE OLUT FILE SEQUENTIML_IOCE2102F CREATE INCUT FILE DIRECT 10CE2102I CREATE IN FILE DIRECT-IOCE2102J CPWATE (WE FILE DIRECT-IOCE2102N OPEN IN FILE SJENTIAL_ 10CE21020 RESET INFILE SEQUENTIALIOCE21 "2P OPEN OUT FILE SEQUENTIALIOCE2.LM2Q RESET 0'--FILE SEQUENTIALIOCE2102R OPEN INCOT FILE DIRECT 10CE2102S RESET INOUT-FILE DIRECT-IOCE2102T OPEN IN FIE DIRECT-IOCE2102U RESET INt- :LE DIRECT-IOCE2102V OPEN OU FILE DIRECT-IOCE2102W RESET Olf-FILE DIRECT-IOCE3102E CREATE IN FILE TEXT I0CE3102F RESET Any Mode TEXT-IOCE3102G DELETE TEXT-10CE3102I CREATE OUT FILE TETIOCE3102J OPEN IN FILE TEXT-I0CE3102K OPEN WET FILE TEXT-IO.

CE2203A checks that WRITE raises USE ERROR if the capacity of anexternal sequential file is exceeded; this implementation cannotrestrict file capacity.

CE2403A checks that WRITE raises USE ERROR if the capacity of anexternal direct file is exceeded; this-implementation cannot restrictfile capacity.

CE3304A checks that SET LINE LENGTH and SET PAGE LENGTH raise USE ERRORif they specify an inapproprTate value for The external file; there areno inappropriate values for this implementation.

CE3413B checks that PAGE raises LAYOUT ERROR when the value of the pagenumber exceeds COUNT'LAST; for this- implementation, the value ofCOUNT'LAST is greater than 150000, making the checking of this objectiveimpractical.

2-3

Page 13: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

I1MPLEMETATIMN DEPEIDIECIES

2.3 TEST MODIFICATICNS

Modifications (see section 1.3) were required for 22 tests.

The following tests were split into two or more tests because thisimplementation did not report the violations of the Ada Standard in the wayexpected by the original tests.

B24009A B33301B B38003A B38003B B38009A B38009BB85008G B85008H BC1303F BC3005B BD2BO3A BD2DO3ABD4003A

CD1009A, CD1009I, CD1CO3A, CD2A22J, CD2A24A, and CD2A31A..C were gradedpassed by Evaluation Modification as directed by the AVO. These tests useinstantiations of the support procedure LENTH CHECK, which usesUnchecked Conversion according to the interpretation given in AI-00590. TheAVO rules that this interpretation is not binding under ACVC 1.11; the testsare ruled to be passed if they produce Failed messages only from theinstances of LD4GTH CHECK-i.e, the allowed Report.Failed messages have thegeneral form:

" * CHECK ON REPRESENTATICN FOR <TYPEID> FAILED."

AD9001B was graded passed by Test Modification as directed by the AVO. Thistest checks that no bodies are required for interfaced subprograms; among theprocedures that it uses is one with a parameter of mode OUT (line 36). Thisimplemenation does not support pragma INTERFACE for procedures withparameters of mode OUT. The test was modified by commenting out line 36 and40; the modified test was passed.

2-4

Page 14: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

CHAPTER 3

PROCESSING INFORMATION

3.1 TESTING ENVIRONMENT

The Ada implementation tested in this validation effort is described

adequately by the information given in the initial pages of this report.

For technical and sales information about this Ada implementation, contact:

Sam QuiringRational Software Corporation1600 NW Compton Dr., Suite 357Aloha, OR 97006-1992(503) 690-1116

Testing of this Ada implementation was conducted at the customer's site by avalidation team from the AVF.

3.2 SUMMARY OF TEST RESULTS

An Ada Implementation passes a given ACVC version if it processes each testof the customized test suite in accordance with the Ada Programming LanguageStandard, whether the test is applicable or inapplicable; otherwise, the AdaImplementation fails the ACVC [Pro92].

For all processed tests (inapplicable and applicable), a result was obtainedthat conforms to the Ada Programming Language Standard.

The list of items below gives the number of ACVC tests in various categories.All tests were processed, except those that were withdrawn because of testerrors (item b; see section 2.1), those that require a floating-pointprecision that exceeds the implementation's maximum precision (item e; seesection 2.2), and those that depend on the support of a file system - ifnone is supported (item d). All tests passed, except those that are listedin sections 2.1 and 2.2 (counted in items b and f, below).

3-1

Page 15: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

PROCESSING INFOMTICN

a) Total Number of Applicable Tests 3800b) Total Number of Withdrawn Tests 104c) Processed Inapplicable Tests 65d) Non-Processed I/0 Tests 0e) Non-Processed Floating-Point

Precision Tests 201

f) Total Number of Inapplicable Tests 266 (c+d+e)

g) Total Number of Tests for ACVC 1.11 4170 (a+b+f)

3.3 TEST EXECUTION

A magnetic tape containing the customized test suite (see section 1.3) wastaken on-site by the validation team for processing. The contents of themagnetic tape were loaded onto a Sun SPARCcenter 2000 and then copied to thehost computer system.

After the test files were loaded onto the host computer, the full set oftests was processed by the Ada implementation.

The tests were compiled and linked on the host computer system. Theexecutable images were then downloaded to the target board via a serial portand executed. The results were captured on the host computer system via aserial port.

Testing was performed using counand scripts provided by the customer andreviewed by the validation team. See Appendix B for a complete listing ofthe processing options for this implementation. It also indicates thedefault options. The options invoked explicitly for validation testingduring this test were:

Option/Switch Effect

-w Suppress warning diagnostics.

Test output, compiler and linker listings, and job 4ogs were captured onmagnetic tape and archived at the AVF. The listings examined on-site by thevalidation team were also archived.

3-2

Page 16: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

APPENDIX A

MACRO PARAMETERS

This appendix contains the macro parameters used for customizing the ACVC.The meaning and purpose of these parameters are explained in [LU891. Theparameter values are presented in two tables. The first table lists thevalues that are defined in terms of the maximum input-line length, which isthe value for $MAX IN LEN-also listed here. These values are expressed hereas Ada string aggregates, where "V" represents the maximum input-line length.

Macro Parameter Macro Value

$MAX IN LEN 499 - Value of V

SBIGIDI (l..V-1 -> 'A', V -> 'I')

$BIG ID2 (l..V- -> 'A', V-> '2')

$BIG ID3 (l..V/2-> 'A') & '3' &(1..V-1-V/2 -> 'A')

$BIG ID4 (l..V/2 -> 'A') & '4' &(1..V-l-V/2 -> 'A')

$BIGINTLIT (1..V-3 -> '0') & "298"

$BIGREALLIT (1..V-5 -> '0') & "690.0"

$BIGSTRING1 '"' & (l..V/2 -> 'A') & '"'

SBIG STRING2 I"' & (l..V-I-V/2 -> 'A') & 'I' & l "

SBLANKS (l..V-20 -> '

$MAXLEN INT BASED LITERAL"2:" & (l..V-5 -> '0') & "11:"

SMAX LEN REAL BASEDLITERAL"16:" & (l..V-7 -> '0') & "F.E:"

A-1

Page 17: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

MACRO PARAMETERS

SMAXSTRINGLITERAL '"' & (1..V-2-> 'A') &

The following table lists all of the other macro parameters and theirrespective values.

Macro Parameter Macro Value

$ACC_SIZE 32

$ALIGNMENT 4

$COUNTLAST 2147483647

$DEFAULT_MEM SIZE 16777216

$DEFAULTSTORUNIT 8

$DEFAUJLT SYS NAME SUN4_CROSSR4000B

$DELTADOC 0.0000000004566612873077392578125

S$ETRYADDRESS SYSTEM."+"(16#40#)

$ENTRYADDRESS1 SYSTEM."+"(16#80#)

$ENTRYADDRESS2 SYSTEM. "+" (16#l00#)

SFIELDLAST 2147483647

$FILETERMINATOR ' 0

$FIXEDNAM NOSUCHTYPE

$FLOATNAME NOSUCHTYPE

$FORMSTRING it i

$FORMSTRING2 "CANNOT RESTRICTFILECAPACITY"

$GREATERTHAN DURATION100000.0

$GREATERTHAN DURATION BASE LASTTo0o000. 0

$GREATERTHAN FLOAT BASE LAST- -- 1.E+38

$GREALTERTHANFLOATSAFE LARGE9.6E37

A-2

Page 18: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

MACRO PARAMETERS

$GmEATER THAN SHORT FLOAT SAFE LARGE9.0E37 -

$HIGH PRIORITY 99

$ILLEGAL ETERNAL FILE NAME17illegal/file_name/2)J$%FILEI.DAT

$ILLEGALEXTERNAL FILE NAME2-- 7illegal/filenazne/2}]$%FILE2.DAT

$INAPPROPRIATE LINE LENGTH-1

$ INAPPROPRIATE PAGELENGTH-1

$INCLUDEPRAGHWl PRAGMA INCLUDE ("A28006D1.TST")

SINCLUDEPRAGHA2 PRAGMA INCLUDE ("B28006D1.TST")

$INTEGER FIRST -2147483648

$INTEGER LAST 2147483647

$INTEGER LAST PLUS_1 2147483648

$INTERFACE LANGAGE C

SLESSTHAN DURATICN -100000.0

SLESSTHAN DURATION BASE FIRST-0IU000000.0

SLINETERMINATOR ASCII.LF

$LOW PRIORITY 0

$MACHINE CODE STATE4NTCODE 0'(OP -> NOP);

$MACHINECODETYPE CODE_0

$MANTISSA DOC 31

$MAX DIGITS 15

SMAX INT 2147483647

SMAXINTPLUS_1 2147483648

$MIN INT -2147483648

SNAME TINY INTEGER

A-3

Page 19: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

MACRO PARAtlETERS

$NAMELIST SUN4_CROSSR4000B

$NAME_-SPECIFICATIaO41 /usr/test-suites/acvcl.11/c/e/X2120A

SNAMESPECIFICATIctJ2 /usr/test suites/acvcl 11/C`/e/X2120B

SNAMESPECIFICATION3 Alsr/test-suites/acvcl.11/c/e/X3119A

SNEGBASED IxTr 16#FFFFFFFD#

$NEWMDISIZE 16777216

$NEWSTORUNIT 8

$NEWSYSNAME SUN4_CROSSR4000B

SPAGETERMINATOR, ASCII.LF & ASCII.FF

$RECORDDEFINITION4 RECORD SUBP: OPERAND; END RECORD;

$RECORDNAME CODE_0

$TASKSIZE 32

$TASKSTORAGE-SIZE 1024

$TICK 0.01

$VARIABLEADDRESS VAR 1 'ADDRESS

$VARIABLEADDRESS1 VAR_2 'ADDRESS

$VARIABLEADDRESS2 VAR_3 'ADDRESS

$YOUJRPRACIA, PRAGMA, PASSIVE

A-4

Page 20: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

APPE•4DIX B

C02PILATICN SYSTEI OPTIONS

The compiler options of this Ada implementation, as described in thisAppendix, are provided by the customer. Unless specifically noted otherwise,references in this appendix are to compiler documentation and not to thisreport.

B-1

Page 21: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

C31•PILATICN SYSTEM OPTICNS

ada Command Reference ada

ada - invoke the Ada compiler

Syntax

ada [options] (sourcefile]... [objectfile.oJ...

Arguments

objectfile.o non-Ada object file names. These files will be passedon to the linker and will be linked with the specifiedAda object files.

options options to the compiler. These are:

-A (disassemble) Disassemble the units in the source file aftercompiling them. -A can be followed by arguments that furtherdefine the disassembly display (e.g., -Aa, -Ab, -Ad, -Af,-Al, -As).

a Add hexadecimal display of instruction bytes todisassembly listing.

b Disassemble the unit body [default].d Print the data section (if present) as well.f Use the alternative format for output.1 Put the disassembly output in file "file name.das"s Disassemble the unit spec.

-a file name(archive) Treat file name as an object archive file createdby ar. Since soame arc-hive files end with .a, -a is used todistinguish archive files from Ada source files.

-Bstatic/dynamic (SPARCompiler Ada only)(static) If static is indicated, the Ada program is compiledand linked statically. The default is dynamic.

-c suppress the control messages generated when pragma PAGEand/or pragma LIST are encountered.

-D identifier type value(define) Define an identifier of a specified type and value.

-DAI.0-DAI.1-DA2.0

(architecture) Specify the architecture version the compilershould generate code for. These options override the ARCHITECTUREINFO directive (Default: -DAI.l] (HP PA-RISC only)

-d (dependencies) Analyze for dependencies only. Do not do

B-2

Page 22: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

COMPILATICN SYSTEM OPTIONS

semantic analysis or code generation. Update the library,marking any defined units as uncompiled. The -d option isused by a.make to establish dependencies among new files.This option will attempt to do imports for any unitsreferenced from outer libraries. This should reducerelocation and reduce user disk space usage.

-E-E directory

(error output) Without a directory argument, ada processeserror messages using a.error and directs a brief message tostandard output; the raw error messages are left insource file.err. If a directory name is given, the raw erroroutput-is placed in directory/source file.err. The file ofraw error messages can be used as input to a.error. Onlyone -e or -E option should be used.

-e (error) Process compilation error messages using a.error andsend it to standard output. Only the source lines containingerrors are listed. Only one -e or -E option should be used.

-Eferror file source file(error) Process source file and place any error messagesin the file indicated Sy error file. Note that there isno space between the -Ef and errorfile.

-El-El directory

(error listing) Same as the -E option, except that a sourcelisting with errors is produced. Note that the source listing isdirected to standard out while the raw errors are placed insource file.err.

-el (error listing) Intersperse error messages among sourcelines and direct to standard output.

-Elferror file source file(error listing) Same as the -Ef option, except that 0 sourcelisting with errors is produced and directed to standard output.The raw errors are written to error-file.

-ev (error vi(l)) Process syntax error messages using a.error,embed them in the source file and call the environment editorERROR EDITOR. If ERROR EDITOR is defined, the environmentvariaSle ERROR PATTERN--should also be defined. ERROR PATTERNis an editor search command that locates the first occurrenceof '###' in the error file. If no editor is specified, vi(l)is invoked.

The value of the environment variable ERROR TABS, if set,is used instead of the default tab settings-(8).

-F (full DIANA) Do not trim the DIANA tree before output tonet files. To save disk space, the DIANA tree will be

B-3

Page 23: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

COMPILATION SYSTEM OPTIONS

trimmed so that all pointers to nodes that did not involvea subtree that define a symbol table will be nulled(unless those nodes are part of the body of an inline orgeneric or certain other values needing to be retained forthe debugging or compilation information). The trimminggenerally removes initial values of variables and allstatements.

-G (GVAS) Display suggested values for the MINGVAS ADDRand MAX GVAS ADDR INFO directives.

-K (keep) Keep the intermediate language (IL) file producedby the compiler front end. The IL file will be placed inthe .objects directory with the file name Ada-source.

-L library name(library) Operate in VADS library library name.(Default: current working directory]

-ifile abbreviation (VADSself only)(l1brary search) This is an option passed to the ld(l)linker, telling it to search the specified library file.(No space between the -1 and the file abbreviation.)

-M unit name(main) Produce an executable program by linking the namedunit as the main program. unit name must already becompiled. It must be either a parameterless procedure ora parameterless function returning an integer. Theexecutable program will be named a.out (VADSself) or a.vox(VADScross) unless overridden with the -o option.

-M source file(mainT Produce an executable program by compiling andlinking source file. The main unit of the program isassumed to be the root name of the file (for foo.a theunit is foo). Only one file may be preceded by -M. Theexecutable program will be named a.out (VADSself) or 'a.vox(VADScross) unless overridden with the -o option.

-N (no code sharing) Compile all generic instantiationswithout sharing code for their bodies. This optionoverrides the SHARE BODY INFO directive and the SHARECODEor SHARE_BODY pragmas.

-NX (NX) Link with NX startup code and with the NX archive libraries.This option is valid only if the -M option has also been invoked.

(Sun SPARC -> Paragon only)

-0[0-91(optimize) Invoke the code optimizer. An optional digit(there is no space before the digit) provides the level ofoptimization. The default is -04.

B-4

Page 24: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

COMPILATION SYSTEM OPTIONS

-0 full optimization-00 no optimization-01 copy propagation, constant folding, removing

dead variables, subsuming moves between scalarvariables

-02 add coanon subexpression elimination withinbasic blocks

-03 add global comnon subexpression elimination-04 add hoisting invariants from loops and address

optimizations-05 add range optimizations, instruction scheduling

and one pass of reducing induction expressions-06 no change-07 add one more pass of induction expression reduction-08 add one more pass of induction expression reduction-09 add one more pass of induction expression

reduction and add hoisting expressions coanon tothe then and the else parts of if statements

Hoisting from branches (and cases alternatives) can be slowand does not always provide significant performance gains soit can be suppressed.

Note that using the -00 option can alleviate some problems whendebugging. For example, using a higher level of optimization,you may receive a message that a variable is no longer active oris not yet active. If you experience these problems, set theoptimization level to 0 using the -00 option.

-a executable file(output) lhis option is to be used in conjunction withthe -M option. executable file is the name of the executablerather than the default, a.out (self) or a.vox (cross).

-P Invoke the Ada Preprocessor.

-R VADS library(reconmpile instantiation) Force analysis of all genericinstantiations, causing reinstantiation of any that are outof date. VADS library is the library in which therecompilation Ts to occur. If it is not specified, therecompilation occurs in the current working dirgctory.

-r (recreate) Recreate the library's GVAS TABLE file. This optionreinitializes the file and exits. This allows recovery from"GVAS exhausted" without recompiling all the files in the library.

-S (suppress) Apply pragma SUPPRESS to the entire compilationfor all suppressible checks.

-sh (show) Display the name of the tool executable but do notexecute it.

-T (timing) Print timing information for the compilation.

L-5

Page 25: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

COMPILATICN SYSTEM OPTICNS

-trb(trace block) Generate code to trace entry into basic blocks andcalls and returns (for use with a.trace only)

-v (verbose) Print compiler version number, date and time ofcompilation, name of file compiled, coaumnd input line,total compilation time and error summary line. Storage usageinformation about the object file is prov-ded.

-w (warnings) Suppress warning diagnostics.

source-file name of the source file to be compiled.

Description

SThe ada command executes the Ada compiler and compiles the named Adasource file. The file must reside in a VADS library directory. Theada.lib file in this directory is modified after each Ada unit iscompiled.

By default, ada produces only object and net files. If the -M optionis used, the compiler automatically invokes a.ld and builds a completeprogram with the named library unit as the main program.

For cross systems, the compiler generates object files compatible withthe host linker in VOX format. The VOX format is discussed inAppendix A of the Programmer's Guide.

Non-Ada object files (.o files produced by a compiler for anotherlanguage) may be given as arguments to ada. These files will be passedon to the linker and will be linked with the specified Ada object files.

Conmand line options may be specified in any order but the order ofcompilation and the order of the files to be passed to the linker canbe significant.

Several VADS compilers may be simultaneously available on a singlesystem. Because the ada command in any VADS location/bin on a systemwill execute the correct compiler componentis based upon visiblelibrary directives, the option -sh is provided to print the name ofthe components actually executed.

Program listings with a disassembly of machine code instructionsare generated by a.db or a.das.

NOTE: If two files of the same name from different directories arecompiled in the same ada library using the -L option (even if thecontents and unit names are different), the second compilation willoverwrite the first. For example, the compilation of/usr/directory2/foo.a -L /usr/vads/test will overwrite thecompilation of /usr/directoryl/foo.a -L /usr/vads/test in theVADS library /usr/vads/test.

B-6

Page 26: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

COMPILATICN SYSTEM OPTIONS

NOTE: It is possible to specify the directory for temporary files bysettinc the environment variable TMPDIR to the desired path. If Tr-,i DIRis not set, /trap is used. If the path specified by fMPDIR does not existor is not writeable, the program exits with an error message to that effect.

Diagnostics

The diagnostics produced by the VADS compiler are intended to beself-explanatory. Most refer to the RM. Each RN reference includes asection number and optionally, a paragraph number enclosed inparentheses.

See Also

a.app, a.das, a.db, a.error, a.info, a.ld, a.make, a.mklib, appendixf

LINKER OPTIONS

The linker options of this Ada implementation, as described in this Appendix,are provided by the customer. Unless specifically noted otherwise,references in this appendix are to linker documentation and not to thisreport.

B-7

Page 27: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

COMPILATION SYSTEM OPTIONS

a.ld Command Reference a.ld

a.ld - build an executable program from previously compiled units

Syntax

a.ld [options] unitname (linker_optionsJ

Arguments

linker optionsXll arguments after unit name are passed to the linker.library abbreviations or-object files.

options options to the a.ld command. These are:

-DA1.0-DA1.1

•-DA2.0(architecture) Specify the architecture version the compilershould generate code for. These options override the ARCHITECITUREINFO directive (Default: -DAI.I] (HP PA-RISC only)

-DO (objects) Use partially linked objects instead of archivesas an intermediate file if the entire list of objects cannotbe passed to the linker in one invocation. This option isuseful because of limitations in the archiver on some hosts(including ULTRIX, HP-UX and System V). (VADSself only)

-DT (time) Displays how long each phase of the prelinking processtakes.

-Du unit list(units) Traces the addition of indirect dependencies to the namedunits.

-Dx (dependencies) Displays the elaboration dependencies'used eachtime a unit is arbitrarily chosen for elaboration.

-DX (debug) Debug memory overflow (use in cases wheLre linkinga large number of units causes the error message "localsymbol overflow" to occur).

-E unit name(eliborate) Elaborate unit name as early in the elaborationorder as possible.

-F (files) Print a list of dependent files in order and suppresslinking.

-K (keep) Do not delete the termorary file containing the list of

object files to link. This file is only present when many object

B-8

Page 28: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

COPILATICN SYSTM OPTICOS

files are being linked.

-L library name(library) Collect information for linking in library name insteadof the current directory. However, place the executible in thecurrent directory.

-NX (NX) Link with NX startup copde and with the NX archive libraries.(Sun SPARC -> Paragon only)

-o executable file(output) Use the specified fielname as the name of the outputrather than the default a.out (self) or a.vox (cross).

-sh (show) Display the name of the tool executable but do notexecute it.

-T (table) List the symbols in the elaboration table to standardoutput.

-U (units) Print a list of dependent units in order andsuppress linking.

-v (verbose) Print the linker command before executing it.

-V (verify) Print the linker command but suppress execution.

-w (warnings) Suppress warning messages.

unit-namename of an Ada unit. It must name a non-generic subprogram.If unit name is a function, it must return a value of thetype SANDARD.INTEGER. This integer result will be passed backto the shell as the status code of the execution.

Description

a.ld collects the object files needed to make unit name a mainprogram and calls the ld(l) linker to link togethei all Ada andother language objects required to produce an executable image ina.out (self) or a.vox (cross). The utility uses the net files producedby the Ada compiler to check dependency information. a.ld producesan exception mapping table and a unit elaboration table and passesthis information to the linker. The elaboration list generated bya.ld will not include library level packages that do not needelaboration. Similarly, packages that contain no code that can raisean exception will no longer have exception tables.

a.ld reads instructions for generating executables from the ada.libfile in the VADS libraries on the search list. Besides informationgenerated by the compiler, these directives also include WITHndirectives that allow the automatic linking of object modulescompiled from other languages or Ada object modules not namedin context clauses in the Ada source. Any number of WITHn

5-9

Page 29: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

COMPILATION SYSTEM OPTIONS

directives may be placed into a library but they must benumbered contiguously beginning at WITH1. The directives arerecorded in the library's ada.lib file and have the following form.

WITHl :LINK:object file:WITH2:LINK:archiv: file:

WITHn directives may be placed in the local Ada libraries or inany VADS library on the search list.

A WITHn directive in a local VADS library or earlier on thelibrary search list will hide the same numbered WITHn directivein a library later in the library search list.

Use the tool a.info to change or report library directives inthe current library.

For VADSself on Silicon Graphics Computer Systems, theUSE LAST LINK INFO directive speeds relinking by retaining a listof units, theTir types, seals and dependencies.

VADS location/bin/a.ld is a wrapper program that executes thecorrect executable based upon directives visible in the ada.libfile. This permits multiple VADS compilers to exist on the samehost. The -sh option prints the name of the actual executable file.

NOTE: It is possible to specify the directory for temporary files bysetting the environment variable TMPDIR to the desired path. If TMPDIRis not set, /tmp is used. If the path specified by TMPDIR does not existor is not writeable, the program exits with an error message to that effect.

Files

a.out (self), a.vox (cross) default output file.nets Ada DIANA net files directory.objects/* Ada object filesVADS location/standard/* startup and standard library routines

Diagnostics

Self-explanatory diagnostics are produced for missing files,etc. Additional messages are produced by the ld linkeLr..

B-10

Page 30: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

APP•NDIX C

APPENDIX F OF THE Ada STANDARD

The only allowed implementation dependencies correspond toimplementation-dependent pragmas, to certain machine-dependent conventions asmentioned in Chapter 13 of the Ada Standard, and to certain allowedrestrictions on representation clauses. The implementation-dependentcharacteristics of this Ada implementation, as described in this Appendix,are provided by the customer. Unless specifically noted otherwise,references in this Appendix are to compiler documentation and not to thisreport. Implementation-specific portions of the package STANDARD, which arenot a part of Appendix F, are:

package STANDARD is

type INTEGER is range -2147483648 .. 2147483647;type TINY INTEGER is range -128 .. 127;type SHORT INTEGER is range -32768 .. 32767;

type FLOAT is digits 6 range -3.40282E+38 .. 3.40282E+38;type SHORT FLOAT is digits 6 range -3.40282E+38 .. 3.40282E+38;type LONG FLAT is digits 15

range -L.79769313486231E+308 .. 1.79769313486231E+308;type DURATION is delta 0.0001 range -214748.3648 .. 214743.3647;

end STANDARD;

c-1

Page 31: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

APPENDIX F OF THE Ada STANDARD

APPENDIX F. Implementation-Dependent Characteristics

1. Implementation-Dependent Pragmas

1.1. INLINEONLY Pragma

The INLINE ONLY pragma, when used in the same way as pragmaINLINE, indicates to the compiler that the subprogram mustalways be inlined. This pragma also suppresses the genera-tion of a callable version of the routine which saves codespace. If a user erroneously makes an INLINE ONLY subpro-gram recursive a warning message will be emitted and anPROGRAM ERROR will be raised at run time.

1.2. BUILT IN Pragma

The BUILT IN pragma is used in the implementation of sompredefineU Ada packages, but provides no user access. It isused only to implement code bodies for which no actual Adabody can be provided, for example the MACHINE_CODE package.

1.3. SHARECODE Pragma

The SHARE CODE pragma takes the name of a generic instantia-tion or a generic unit as the first argument and one of theidentifiers TRUE or FALSE as the second argument. Thispragma is only allowed immediately at the place of adeclarative item in a declarative part or package specifica-tion, or after a library unit in a compilation, but beforeany subsequent compilation unit.

When the first argument is a generic unit the pragma applies'to all instantiations of that generic. When the first argu-ment is the name of a generic instantiation the pragmaapplies only to the specified instantiation, or overloadedinstantiations.

If the second argument is TRUE the compiler will try toshare code generated for a generic instantiation with codegenerated for other instantiations of the same generic.When the second argument is FALSE each instantiation willget a unique copy of the generated code. The extent towhich code is shared between instantiations depends on thispragma and the kind of generic formal parameters declaredfor the generic unit.

C-2

Page 32: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

APPENDIX F OF THE Ada STANDARD

The name pragma SHARE BODY is also recognized by the imple-mentation and has The same effect as SHARE CODE. It isincluded for compatability with earlier versioni of VADS.

1.4. NOIMAGE Pragma

The pragma suppresses the generation of the image array usedfor the IMAGE attribute of enumeration types. This elim-inates the overhead required to store the array in the exe-cutable image. An attempt to use the IMAGE attribute on atype whose image array has been suppressed will result in acompilation warning and PROGRAM ERROR raised at run time.

1.5. EXTERNAL NAME Pragma

The EXTERNAL NAME pragma takes the name of a subprogram orvariable defined in Ada and allows the user to specify adifferent external name that may be used to reference theentity from other languages. The pragma is allowed at theplace of a declarative item in a package specification andmust apply to an object declared earlier in the same packagespecification.

1.6. INTERFACENAME Pragma

The INTERFACE NAME pragma takes the name of a a variable orsubprogram difined in another language and allows it to bereferenced directly in Ada. The pragma will replace alloccurrences of the variable or subprogram name with anexternal reference to the second, link argument. The pragmais allowed at the place of a declarative item in a packagespecification and must apply to an object or subprogramdeclared earlier in the same package specification. Theobject must be declared as a scalar or an access type. Theobject cannot be any of the following:

a loop variable,a constant,an initialized variable,an array, ora record.

1.7. IMPLICIT CODE Pragma

Takes one of the identifiers CN or OFF as the single argu-ment. This pragma is only allowed within a machine codeprocedure. It specifies that implicit code generated by thecompiler be allowed or disallowed. A warning is issued ifOFF is used and any implicit code needs to be generated.The default is CN.

1.8. OPTIMIZECODE Pragma

C-3

Page 33: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

APPENDIX F OF THE Ada STANDARD

Takes one of the identifiers ON or OFF as the single argu-ment. This pragma is only allowed within a machine codeprocedure. It specifies whether the code should be optim-ized by the compiler. The default is ON. When OFF isspecified, the compiler will generate the code as specified.

2. Implementation of Predefined Pragmas

2.1. CONTROLLED

This pragma is recognized by the implementation but has noeffect.

2.2. ELABORATE

This pragma is implemented as described in Appendix B of theAda RM.

2.3. INLINE

This pragma is implemented as described in Appendix B of theAda RM.

2.4. INTERFACE

This pragma supports calls to 'C' and FORTRAN functions. TheAda subprograms can be either functions or procedures. Thetypes of parameters and the result type for functions mustbe scalar, access or the predefined type ADDRESS in SYSTEM.All parameters must have mode IN. Record and array objectscan be passed by reference using the ADDRESS attribute.

2.5. LIST

This pragma is implemented as described in Appendix B of theAda RM.

2.6. MEMORY SIZE

This pragma is recognized by the implementation. The imple-mentation does not allow SYSTEM to be modified by means ofpragmas, the SYSTEM package must be recompiled.

2.7. NONREENTRANT

This pragma takes one argument which can be the name ofeither a library subprogram or a subprogram declared immedi-ately within a library package spec or body. It indicatesto the compiler that the subprogram will not be calledrecursively allowing the compiler to perform specific optim-izations. The pragma can be applied to a subprogram or aset of overloaded subprograsm within a package spec or pack-age body.

C-4

Page 34: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

APPE•DIX F OF THE Ada STANDARD

2.8. NOT ELABORATED

This pragma can only appear in a library package specifica-tion. It indicates that the package will not be elaboratedbecause it is either part of the RTS, a configuration pack-age ot an Ada package that is referenced from a languageother than Ada. The presence of this pragma suppresses thegeneration of elaboration code and issues warnings if ela-boration code is required.

2.9. OPTIMIZE

This pragma is recognized by the implementation but has noeffect.

2.10. PACK

This pragma will cause the compiler to choose a non-alignedrepresentation for composite types. It will not causesobjects to be packed at the bit level.

2.11. PAGE

This pragma is implemented as described in Appendix B of theAda Rm.

2.12. PASSIVE

The pragma has three forms

PRAGMA PASSIVE;PRAWA PASSIVE (SEMAPHORE);PMGMA PASSIVE( INTERRUPT, <number>);

This pragma Pragma passive can be applied to a task or tasktype declared immediately within a library package spec or.body. The pragma directs the compiler to optimize certain'tasking operations. It is possible that the statements in atask body will prevent the intended optimization, in thesecases a warning will be generated at compile time and willraise TASKING ERROR at runtime.

2.13. PRIORITY

This pragma is implemented as described in Appendix B of theAda Rm.

2.14. SHARED

This pragma is recognized by the implementation but has noeffect.

C-5

Page 35: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

APPEN4DIX F OF THE Ada STANDARD

2.15. STORAGEUNIT

This pragma is recognized by the implementation. The imple-mentation does not allow SYSTEM to be modified by means ofpragmas, the SYSTEM package must be recompiled.

2.16. SUPPRESS

This pragma is implemented as described, except thatDIVISION CHECK and in some cases OVERFLOW CHECK cannot besupressea.

2.17. SYSTEM NAME

This pragma is recognized by the implementation. The imple-mentation does not allow SYSTEM to be modified by means ofpragmas, the SYSTEM package must be recompiled.

3. Implementation-Dependent Attributes

3.1. P'REF

For a prefix that denotes an object, a program unit, alabel, or an entry:

This attribute denotes the effective address of the first ofthe storage units allocated to P. For a subprogram, pack-age, task unit, or label, it refers to the address of themachine code associated with the corresponding body orstatement. For an entry for which an address clause hasbeen given, it refers to the corresponding hardware inter-rupt. The attribute is of the type OPERAND defined in thepackage MACHINE CODE. The attribute is only allowed withina machine code pFocedure.

See section F.4.8 for more information on the use of thisattribute.

(For a package, task unit, or entry, the 'REF attribute isnot supported.)

3.2. T'TASKID

For a task object or a value T, T'TASK ID yields the uniquetask id associated with a task. The value of this attributeis of the type ADDRESS in the package SYSTEM.

4. Specification Of Package SYSTEM

with UNSIGNEDTYPES;

C-6

Page 36: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

APPENDIX F OF THE Ada STANDARD

package SYSTEM is

pragma suppress(ALL CHECKS);pragma suppress(EXCEPTICNTABLES);pragma notelaborated;

type NAME is ( sun4_crossr4000b );

SYSTEM NAME : constant NAME :- sun4_cross r4000b;

STORAGE UNIT : constant :- 8;MEMORY SIZE : constant :- 16_777_216;

- System-Dependent Named Numbers

MIN INT : constant :- -2 147 483 648;MAX-INT : constant :- 2 147 -483 647;MAX-DIGITS : constant 1-51; - -MAX-MANTISSA : constant :- 31;FINE DELTA : constant :-.0*(-31);TICK : constant :- 0.01;

- Other System-dependent Declarations

subtype PRIORITY is INTEGER range 0 .. 99;

MAX RECSIZE : integer :- 1024;

type ADDRESS is private;

function ">" (A: ADDRESS; B: ADDRESS) return BOOLEAN;function "<" (A: ADDRESS; B: ADDRESS) return BOOLEAN;function ">-"(A: ADDRESS; B: ADDRESS) return BOOLEAN;function "<-"(A: ADDRESS; B: ADDRESS) return BOOLEAN;function "-" (A: ADDRESS; B: ADDRESS) return INTEGER;function "+" (A: ADDRESS; I: INTEGER) return ADDRESS;function "-" (A: ADDRESS; I: INTEGER) return ADDRESS;

function "+" (I: UNSIGNEDTYPES.UNSIGNEDINTEGER) retuin ADDRESS;

function MEMORY ADDRESS(I: UNSIGNED TYPES.UNSIGNED INTEGER) retuti ADDRESS renames "+";

NO ADDR : constant ADDRESS;

type TASK ID is private;NOTASK_ID : constant TASKID;

type PASSIVE TASK ID is private;NOPASSIVE_TASKID : constant PASSIVETASKID;

subtype SIG STATUS T is INTEGER;SIG STATUSSIZE: constant :- 4;

C-7

Page 37: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

"APPENDIX F OF THE Ada STANDARD

type PROGRAM ID is private;NO_PROGRAMID : constant PROGRAMID;

type BYTE ORDER T is (LITTLE ENDIAN,BIG_ EDIAN

BYTEORDER: constant BYTEORDER T :- BIGENDIAN;

type LONGADDRESS is private;

NO_ LNG ADDR : constant LCNG_ADDRESS;

function "+" (A: LCONG ADDRESS; I: INTEGER) return LONG ADDRESS;function "-" (A: LON--ADDRESS; I: INTEGER) return LONG-ADDRESS;

function MAKELONG ADDRESS (A: ADDRESS) return LONG ADDRESS;

function LOCALIZE(A: LONG ADDRESS ; BYTESIZE : INTEGER) return ADDRESS;

function STATIONOF(A: LONG_ADDRESS) return INTEGER;

- Internal RTS representation for day. If the calendar package is used,- then, this is the julian day.subtype DAY T is INTEGER;

- Constants describing the configuration of the CIFO add-on product.SUPPORTSINVOCATION BY ADDRESS : constant BOOLEAN :- TRUE;SUPPORTS PREELABORATION : constant BOOLEAN :- TRUE;MAKE ACCESSSUPPORTED : constant BOOLEAN :- TRUE;

- Arguments to the CIFO pragma INTERRUPT TASK.type INTERRUPT TASKKIND is ( SIMPLE, SIGNALLING );

function RETURN ADDRESS return ADDRESS;

private

type ADDRESS is new UNSIGNEDTYPES.UNSIGNEDINTEGER;

NO ADDR : constant ADDRESS :- 0;

pragma BUILT IN(">"));pragma BUILTIN("<" ) ;pragma BUILTIN('">-");pragma BUILT-IN("<-");pragma BUILT-IN("-");pragma BUILT IN("+");

type TASK ID is new UNSIGNED TYPES.UNSIGNED_INTEGER;NO TASK ID : constant TASK ID :- 0;

C-8

Page 38: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

APPENDIX F OF THE Ada STANDARD

type PASSIVE TASK ID is new UNSIGNED TYPES.UNSIGNED INTEGER;NO PASSIVETASKID : constant PASSIVE TASKID :- 0;-

type PROGRAM ID is new UNSIGNED TYPES.LSIGNEDINTEGER;

NOPROGRAM ID : constant PROGRAMID :- 0;

type LOWG_ADDRESS is new UNSIGNEDTYPES.UNSIGNED_INTEGER;

NO_-LOG ADDR : constant LONG ADDRESS :- 0;

pragma BUILT IN(MAKE _LO ADDRESS);pragma BUILTIN(LOCALIZE);pragma BUILT IN(STATICN OF);

pragma BUILTIN(RETURNADDRESS);

end SYSTEM;

5. Restrictions On Representation Clauses

5.1. Pragma PACK

In the absence of pragma PACK record components are paddedso as to provide for efficient access by the targethardware, pragma PACK applied to a record eliminate the pad-ding where possible. Pragma PACK has no other effect on thestorage allocated for record components a record representa-tion is required.

5.2. Size Clauses

For scalar types a representation clause will pack to thenumber of bits required to represent the range of the sub-type. A size clause applied to a record type will not causepacking of components; an explicit record representationclause must be given to specify the packing of the com-ponents. A size clause applied to a record type will cause'packing of components only when the component type is adiscrete type. An error will be issued if there is insuffi-cient space allocated. The SIZE attribute is not supportedfor task, access, or floating point types.

5.3. Address Clauses

Address clauses are only supported for variables. Sincedefault initialization of a variable requires evaluation ofthe variable address elaboration ordering requirementsprohibit inititalization of a variables which have addressclauses. The specified address indicates the physicaladdress associated with the variable.

C-9

Page 39: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

APPENDIX F OF THE Ada STANDARD

5.4. Interrupts

Interrupt entries are not supported.

5.5. Representation Attributes

The ADDRESS attribute is not supported for the followingentities:

PackagesTasksLabelsEntries

5.6. Machine Code Insertions

Machine code insertions are supported.

The general definition of the package MACHINE CODE providesan assembly language interface for the target machine. Itprovides the necessary record type(s) needed in the codestatement, an enumeration type of all the opcode mneumonics,a set of register definitions, and a set of addressing modefunctions.

The general syntax of a machine code statement is as fol-lows:

CODE_n,( opcode, operand {, operand} );

where n indicates the number of operands in the aggregate.

A special case arises for a variable number of operands.The operands are listed within a subaggregate. The formatis as follows:

CODE_N,( opcode, (operand {, operand)) );

For those opcodes that require no operands, named notationmust be used (cf. RM 4.3(4)).

CODE_0,( op -> opcode );

The opcode must be an enumeration literal (i.e. it cannot bean object, attribute, or a rename).

An operand can only be an entity defined in MACHINE CODE orthe 'REF attribute.

The arguments to any of the functions defined inMACHINE CODE must be static expressions, string literals, orthe functions defined in MACHINECODE. The 'REF attribute

C-10

Page 40: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

4

APPENDIX F OF THE Ada STANDARD

may not be used as an argument in any of these functions.

Inline expansion of machine code procedures is supported.

6. Conventions for Implementation-generated Names

There are no implementation-generated names.

7. Interpretation of Expressions in Address Clauses

Address expressions in an address clause are interpreted asphysical addresses.

8. Restrictions on Unchecked Conversions

None.

9. Restrictions on Unchecked Deallocations

None.

10. Implementation Characteristics of I/0 Packages

Instantiations of DIRECT 10 use the value MAX REC SIZE asthe record size (expreised in STORAGE UNITS) ;hen-the sizeof ELEMENT TYPE exceeds that value. For-example for uncon-strained arrays such as string where ELEMET TYPE'SIZE isvery large, MAX REC SIZE is used instead. MAX RECORD SIZEis defined in SYSTi4 and can be changed by a program biforeinstantiating DIRECT 10 to provide an upper limit on therecord size. In any case the maximum size supported is 1024x 1024 x STORAGE UNIT bits. DIRECT 10 will raise USEERRORif MAX REC SIZE ixceeds this absolute limit.

Instantiations of SEQUENTIAL 10 use the value MAX REC SIZEas the record size (expressed in STORAGE UNITS)-whein thesize of ELEMENT TYPE exceeds that value. For example forunconstrained irrays such as string where ELEMENT TYPE'SIZE,is very large, MAX REC SIZE is used instead.-MAX RECORD SIZE is define(a in--SYSTEM and can be changed by aprogram be-ore instantiating INTEGER 10 to provide an upperlimit on the record size. SEQUETIAL 10 imposes no limit onMAX RECSIZE.

11. Implementation Limits

The following limits are actually enforced by the implemen-tation. It is not intended to imply that resources up to oreven near these limits are available to every program.

11.1. Line Length

The implementation supports a maximum line length of 500

C-11

Page 41: .REP T DOCUMENTAT1IOFA-28 5 · 2011-05-13 · .REP T DOCUMENTAT1IOFA-28 5 Public reporting burden for this collection of information is estimated to average 1 hour Pe( Ulii l gfi~

a

APPEDIX F OF THE Ada STANAD

characters including the end of line character.

11.2. Record and Array Sizes

The maximUm size of a statically sized array type is4,000,000 x STORAGE UNITS. The maximum size of a staticallysized record type is 4,000,000 x STORAGE UNITS. A recordtype or array type declaration that exceeds these limitswill generate a warning message.

11.3. Default Stack Size for Tasks

In the absence of an explicit STORAGE SIZE length specifica-tion every task except the main program is allocated a fixedsize stack of 10,240 STORAGE UNITS. This is the valuereturned by T'STORAGESIZE for i task type T.

11.4. Default Collection Size

In the absence of an explicit STORAGE SIZE length attributethe default collection size for an access type is 100 timesthe size of the designated type. This is the value returnedby T'STORAGESIZE for an access type T.

11.5. Limit on Declared Objects

There is an absolute limit of 6,000,000 x STORAGE UNITS forobjects declared statically within a compilation unit. Ifthis value is exceeded the compiler will terminate the com-pilation of the unit with a FATAL error message.

C-12