Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT,...

39
|'Tr T!F m|pv - AVF Control Number :AVF-VSR-AFNOR-88-9 Ada* Compiler VALIDATION SUMMARY REPORT: Certificate Number: 880609A1.09103 ALSYS AlsyCOMP_022, Version P3.4 VAX 11/785 to 68020 Completion of On-Site Testing: 9 June 1988 o Prepared By: AFNOR Tour Europe M Cedex 7 nF-92030 Paris la Dfense 0 Prepared For: Ada Joint Program Office United States Department of Defense Washington, D.C. 20301-3081 DTIC ELECTE 3 FEB 1989 0 *Ada is a registred trademark of the United States Government (Ada Joint Program Office). 1

Transcript of Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT,...

Page 1: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

|'Tr T!F m|pv -

AVF Control Number :AVF-VSR-AFNOR-88-9

Ada* Compiler

VALIDATION SUMMARY REPORT:Certificate Number: 880609A1.09103

ALSYSAlsyCOMP_022, Version P3.4

VAX 11/785 to 68020

Completion of On-Site Testing:9 June 1988

o Prepared By:AFNOR

Tour EuropeM Cedex 7

nF-92030 Paris la Dfense

0

Prepared For:Ada Joint Program Office

United States Department of DefenseWashington, D.C. 20301-3081

DTICELECTE

3 FEB 1989 0

*Ada is a registred trademark of the United States Government

(Ada Joint Program Office).1

Page 2: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

UNCLASSIFIEDSECURITY CLASSIFICATION OF THIS PAGE (When Data Entered)

REPORT DOCUMENTATION PAGE READ INSTRUCTIONS-BEFORE COMAPLETE:NG FOW-M

1. REPORT NUMBER 12. GOVT ACCESSION NO. 3. RECIPIENi'S CATALOG NUMBER

4. TITLE (and Subtitle) 5. TYPE OF REPORT & PERIOD COVERED

Ada Compiler Validation Summary Report: ALSYS, 9 June 1988 to 9 June 1989AlsyCOMP 022, Version P3.4, VAX 117785 (Host)to 68020- (MVME 133-1 16.67 Mhz) (Target). 6. PERFORMING ORG. REPORT NUMBER

7. AUTHOR(s) 8. CONTRACT OR GRANT NUMBER(s)

AFNOR,Paris, France.

9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASKAREA & WORK UNIT NUMBERS

AFNOR,Paris, France.

11. CONTROLLING OFFICE NAME AND ADDRESS 12. REPORT DATE

Ada Joint Program Office 9June1988United States Department of Defense 13 NUMBER OF PAGESWashington, DC 20301-3081 39p.

14. MONITORING AGENCY NAME & ADORESS(ldifferent from ControllingOffice) 15. SECURITY CLASS (of this report)

UNCIASSIFIEDAFNOR, 15a. R A8 FICATION/DOWNGRADING

Paris, France. N/A

16. DISTRIBUTION STATEMENT (of this Report)

Approved for public release; distribution unlimited.

17. DISTRIBUTION STATEMENT (of the abstract entered in Block 20. If different from Report)

UNCLASSIFIED

18. SUPPLEMENTARY NOTES

19. KEYWORDS (Continue on reverse side if necessary and identify by block number)

Ada Programming language, Ada Compiler Validation Summary Report, AdaCompiler Validation Capability, ACVC, Validation Testing, AdaValidation Office, AVO, Ada Validation Facility, AVF, ANSI/MIL-STD-1815A, Ada Joint Program Office, AJPO

20. ABS T RAC T (Continue on reverse side if necessary and identify by block number)AIsvCOMP _022, Version P3.4, ALSYS, AFNOR, VAX 11/785 under VMS, Version 4.5 (Host ) to 68e20(MVME 1:33-1 16.67 Mhz) under RealTime Craft Version XEC 68 V2.0 ( Target), ACVC 1 .9.

DD OHM 1473 EDITION OF 1 NOV 65 IS OBSOLETE

I JAN 73 S/N 0102-LF-014-6601 UNCLASSIFIEDSECURITY CLASSIFICATION OF THIS PAGE (When Data Entered)

Page 3: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

Ada* Compiler Validation Summary Report:

Compiler Name: AlsyCOMP_022, Version P3.4

Certificate Number: 880609A1.09103

Host: Target :VAX 11/785 68020 (MVME 133-1 16.67 Mhz)under underVMS RealTime CraftVersion 4.5 Version XEC 68 V2.0

Testing Completed 9 June, 1988 Using ACVC 1.9

This report has been reviewed and is approved.

AFNOR Accession ForDr Jacqueline Sidi -TIS G -A&ITour Europe DTIC TA

Cedex 7 DTIC TAB

F-92080 Paris la D~fense UnaraiEJustilftatlo

ByDistribution/

Availability CodesAvail and/or

Ada Validation Office Dist SpecialDr.John F. KramerInstitute for Defense AnalysesUSA-Alexandria VA 22311

Ada oit Program OfficeVirginia L. CastorDirectorDepartment of DefenseUSA - Washington DC 20301

*Ada is a registred trademark of the United States Government(Ada Joint Program Office).

3

Page 4: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

TABLE OF CONTENTS

CHAPTER 1 INTRODUCTION ................................ 5

1.1 PURPOSE OF THIS VALIDATION SUMMARY REPORT ....... 61.2 USE OF THIS VALIDATION SUMMARY REPORT ........... 61.3 REFERENCES ...................................... 71.4 DEFINITION OF TERMS ............................. 71.5 ACVC TEST CLASSES ............................... 8

CHAPTER 2 CONFIGURATION INFORMATION ................... 11

2.1 CONFIGURATION TESTED ............................ 112.2 IMPLEMENTATION CHARACTERISTICS .................. 12

CHAPTER 3 TEST INFORMATION ............................ 17

3.1 TEST RESULTS .................................... 173.2 SUMMARY OF TEST RESULTS BY CLASS ................ 173.3 SUMMARY OF TEST RESULTS BY CHAPTER .............. 183.4 WITHDRAWN TESTS ................................. 183.5 INAPPLICABLE TESTS .............................. 183.6 TEST, PROCESSING, AND EVALUATION MODIFICATIONS.203.7 ADDITIONAL TESTING INFORMATION .................. 213.7.1 Prevalidation ................................. 213.7.2 Test Method ................................... 213.7.3 Test Site ..................................... 22

APPENDIX A DECLARATION OF CONFORMANCE .............. 23

APPENDIX B APPENDIX F OF THE Ada STANDARD .......... 26

APPENDIX C TEST PARAMETERS ......................... 34

APPENDIX D WITHDRAWN TESTS ......................... 38

4

Page 5: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

INTRODUCTION

CHAPTER 1

INTRODUCTION

/,

This Validation Summary Report -tV-R describes the extent to which aspecific Ada compiler conforms to the Ada Standard, ANSI/MIL-STD-1815A. This report explains all technical terms used within itand thoroughly reports the results of testing this compiler using theAda Compiler Validation Capability-4AC e An Ada compiler must beimplemented according to the Ada Standard, and any implementation-dependent features must conform to the requirements of the AdaStandard. The Ada Standard must be implemented in its entirety, andnothing can be implemented that is not in the Standard.-

Even though all validated Ada compilers conform to the Ada Standard,it must be understood that some differences do exist betweenimplementations. The Ada Standard permits some implementationdependencies--for example, the maximum length of identifiers or themaximum values of integer types. Other differences between compilersresult from the characteristics of particular operating systems,hardware, or implementation strategies. All the dependenciesobserved during the process of testing this compiler are given inthis report.\

The information in this report is derived from the test resultsproduced during validation testing. The validation process includessubmitting a suite of standardized tests, the ACVC, as inputs to anAda compiler and evaluating the results. The purpose of validating isto ensure conformity of the compiler to the Ada Standard by testingthat the compiler properly implements legal language constructs andthat it identifies and rejects illegal language constructs. Thetesting also identifies behavior that is implementation dependent butpermitted by the Ada Standard. Six classes of tests are used. Thesetests are designed to perform checks at compile time, at link time,and during execution.

5

Page 6: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

INTRODUCTION

1.1 PURPOSE OF THIS VALIDATION SUMMARY REPORT

This VSR documents the results of the validation testing performed onan Ada compiler. Testing was carried out for the following purposes:

To attempt to identify any language constructs supported bythe compiler that do not conform to the Ada Standard ;

To attempt to identify any unsupported language constructsrequired by the Ada Standard ;

To determine that the implementation-dependent behavior isallowed by the Ada Standard.

Testing of this compiler was conducted under the direction of the AVFaccording to policies and procedures established by the AdaValidation Organization (AVO). On-site testing was completed on 9June, 1988 at GSI/TECSI La Defense, France.

1.2 USE OF THIS VALIDATION SUMMARY REPORT

Consistent with the national laws of the originating country, the AVOmay make full and free public disclosure of this report. In theUnited States, this is provided in accordance with the "Freedom ofInformation Act" (5 U.S.C. #552). The results of this validationapply only to the computers, operating systems, and compiler versionsidentified in this report.

The organizations represented on the signature page of this report donot represent or warrant that all statements set forth in this reportare accurate and complete, or thd the subject compiler has nononconformities to the Ada Standard other than those presented.Copies of this report are available to the public from:

Ada Information ClearinghouseAda Joint Program OfficeOUSDREThe Pentagon, Rm 3D-139 (Fern Street)USA - Washington DC 20301-3081

or from:

AFNORTour EuropeCedex 7F-92080 Paris la D~fense

6

Page 7: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

INTRODUCTION

Questions regarding this report or the validation test results shouldbe directed to the AVF listed above or to:

Ada Validation OrganizationInstitute for Defense Analyses1801 North Beauregard StreetUSA - Alexandria VA 22311

1.3 REFERENCES

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

2. Ada Compiler Validation Procedures and Guidelines, Ada JointProgram Office, 1 January 1987.

3. Ada Compiler Validation Capability Implementers' Guide,SofTech, Inc., December 1986.

4. Ada Compiler Validation Capability User's Guide, December1986.

1.4 DEFINITION OF TERMS

ACVC The Ada Compiler Validation Capability. The set ofAda programs that tests the conformity of an Adacompiler to the Ada programming language.

Ada Commentary An Ada Commentary contains all information relevantto the point addressed by a comment on the AdaStandard. These comments are given a uniqueidentification number having the form AI-ddddd.

Ada Standard ANSI/MIL-STD-1815A, February 1983, and ISO 8652-1987.

Applicant The agency requesting validation.

AVF The Ada Validation Facility. In the context of thisreport, the AVF is responsible for conductingcompiler validations according to procedurescontained in Ada Compiler Validation Procedures andGuidelines.

AVO The Ada Validation Organization. The AVO hasoversight authority over all AVF practices for thepurpose of maintaining a uniform process forvalidation of Ada compilers. The AVO providesadministrative and technical support for Adavalidations to ensure consistent practices.

7

Page 8: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

INTRODUCTION

Compiler A processor for the Ada language. In the context ofthis report, a compiler is any language processor,including cross-compilers, translators, andinterpreters.

Failed test An ACVC test for which the compiler generates aresult that demonstrates nonconformity to the AdaStandard.

Host The computer on which the compiler resides.

Inapplicable test An ACVC test that uses features of thelanguage that a compiler is not required to supportor may legitimately support in a way other than theone expected by the test.

Passed test An ACVC test for which a compiler generates theexpectod result.

Target The computer for which a compiler generates code.

Test An Ada program that checks a compiler's conformityregarding a particular feature or combination offeatures to the Ada Standard. In the context of thisreport, the term is used to designate a single test,which may comprise one or more files.

Withdrawn test An ACVC test found to be incorrect and not used tocheck conformity to the Ada Standard. A test may beincorrect because it has an invalid test objective,fails to meet its test objective, or contains illegalor erroneous use of the language.

1.5 ACVC TEST CLASSES

Conformity to the Ada Standard is measured using the ACVC. The ACVCcontains both legal and illegal Ada programs structured into six testclasses: A, B, C, D, E, and L. The first letter of a test nameidentifies the class to which it belongs. Class A, C, D, and E testsare executable, and special program units are used to report theirresults during execution. Class B tests are expected to producecompilation errors. Class L tests are expected to produce linkerrors.

Class A tests check that legal Ada programs can be successfullycompiled and executed. However, no checks are performed duringexecution to see if the test objective has been met. For example, aClass A test checks that reserved words of another language (otherthan those already reserved in the Ada language) are not treated asreserved words by an Ada compiler. A Class A test is passed if noerrors are detected aL ile time and the program executes toproduce a PASSED message.

8

Page 9: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

INTRODUCTION

Class B tests check that a compiler detects illegal language usage.class B tests are not executable. Each test in this class is compiledand the resulting compilation listing is examined to verify thatevery syntax or semantic error in the test is detected. A Class Btest is passed if every illegal construct that it contains isdetected by the compiler.

Class C tests check that legal Ada programs can be correctly compiledand executed. Each Class C test is self-checking and produces aPASSED, FAILED, or NOT APPLICABLE message indicating the result whenit is executed.

Class D tests check the compilation and execution capacities of acompiler. Since there are no capacity requirements placed on acompiler by the Ada Standard for some parameters--for example, thenumber of identifiers permitted in a compilation or the number ofunits in a library--a compiler may refuse to compile a Class D testand still be a conforming compiler. Therefore, if a Class D testfails to compile because the capacity of the compiler is exceeded,the test is classified as inapplicable. If a Class D test compilessuccessfully, it is self-checking and produces a PASSED or FAILEDmessage during execution.

Each Class E test is self-checking and produces a NOT APPLICABLE,PASSED, or FAILED message when it is compiled and executed. However,the Ada Standard permits an implementation to reject programscontaining some features addressed by Class E tests duringc-,mpilation. Therefore, a Class E test is passed by a compiler if itis compiled successfully and executes to produce d PASSED message, orif it is rejected by the compiler for an allowable reason.

Class L tests check that incomplete or illegal Ada programs involvingmultiple, separately compiled units are detected and not allowed toexecute. Class L tests are compiled separately and execution isattempted. A Class L test passes if it is rejected at lii.k .1ie--thatis, an attempt to execute the main program must generate an errormessage before any declarations in the main program or any unitsreferenced by the main program are elaborated.

Two library units, the package REPORT and the procedure CHECKFILE,support the self-checking features of the executable tests. Thepackage REPORT provides the mechanism by which executable testsreport PASSED, FAILED, or NOT APPLICABLE results. It also provides aset of identity functions used to defeat some compiler optimizationsallowed by the Ada Standard that would circumvent a test objective.The procedure CHECK FILE is used to check the contents of text fileswritten by some of the Class C tests for chapter 14 of the 71aStandard. The operation of these units is checked by a set orexecutable tests. These tests produce messages that are examined toverify that the units are operating correctly. If these units are notoperating correctly, then the validation is not attemped.

9

Page 10: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

INTRODUCTION

The text of the tests in the ACVC follow conventions that areintended to ensure that the tests are reasonably portable withoutmodification. For example, the tests make use of only the basic setof 55 characters, contain lines with a maximum length of 72characters, use small numeric values, and place features that may notbe supported by all implementations in separate tests However, sometests contain values that require the test to be customized accordingto implementation-specific values --for example, an illegal filename. A list of the values used for this validation are listed inAppendix C.

A compiler must correctly process each of the tests in the suite anddemonstrate conformity to the Ada Standard by either meeting the passcriteria given for the test or by showing that the test isinapplicable to the implementation. The applicability of a test to animplementation is considered each time the implementation isvalidated. A test that is inapplicable for one validation is notnecessarily inapplicable for a subsequent validation. Any test thatwas determined to contain an illegal language construct or anerroneous language construct is withdrawn from the ACVC and,therefore, is not used in testing a compiler. The tests withdrawn atthe time of validation are given in Appendix D.

10

Page 11: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

CONFIGURATION INFORMATION

CHAPTER 2

CONFIGURATION INFORMATION

2.1 CONFIGURATION TESTED

The candidate compilation system for this validation was tested underthe following configuration:

Compiler: AlsyCOMP_022, Version P3.4

ACVC Version: 1.9

Certificate Number: 880609A1.09103

Host Computer:

Machine: VAX 11/785

Operating System: VMSVersion 4.5

Memory Size: 12 Mb

Target Computer:

Machine: 68020 (MVME 133-1 16.67 Mhz)

Operating System: RealTime CraftVersion XEC 68 V2.0

Memory Size: 1 Mb

Communications Network: Serial RS232C

11

Page 12: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

CONFIGURATION INFORMATION

2.2 IMPLEMENTATION CHARACTERISTICS

One of the purposes of validating compilers is to determine thebehavior of a compiler in those areas of the Ada Standard that permitimplementations to differ. Class D and E tests specifically check forsuch implementation differences. However, tests in other classes alsocharacterize an implementation. The tests demonstrate the followingcharacteristics:

Capacities.

The compiler correctly processes tests containing loopstatements nested to 65 levels, block statements nested to65 levels, and recursive procedures separately compiled assubunits nested to 17 levels. It correctly processes acompilation containing 723 variables in the samedeclarative part. (See tests D55A03A..H (8 tests), D56001B,D64005E..G (3 tests) and D29002K.)

Universal integer calculations.

An implementation is allowed to reject universal integercalculations having values that exceed SYSTEM.MAXINT. Thisimplementation processes 64 bit integer calculations. (Seetests D4AO02A, D4AO02B, D4AO04A, and D4AOO4B).

Predefined types.

This implementation supports the additional predefinedtypes SHORT INTEGER, LONGINTEGER, and LONGFLOAT in thepackage STANDARD. (See tests B86001C and B86001D.)

Based literals.

An implementation is allowed to reject a based literal witha value exceeding SYSTEM.MAXINT during compilation, or itmay raise NUMERICERROR or CONSTRAINTERROR duringexecution. This implementation raises NUMERICERROR duringexecution. (See test E24101A.)

Expression evaluation.

Apparently no default initialization expressions for recordcomponents are evaluated before any value is checked tobelong to a component's subtype. (See test C32117A.)

Assignments for subtypes are performed with the sameprecision as the base type. (See test C35712B).

12

Page 13: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

CONFIGURATION INFORMATION

This implementation uses no extra bits for extra precision.This implementation uses all extra bits for extra range.(See test C35903A).

Apparently NUMERICERROR is raised when an integer literaloperand in a comparison or membership test is outside therange of the base type. (See test C45232A.)

Apparently NUMERICERROR is raised when a literal operandin a fixed point comparison or membership test is outsidethe range of the base type. (See test C45252A.)

Apparently underflow is not graeual. (See testsC45524A..Z.)

Rounding

The method used for rounding to integer is apparently roundto even. (See tests C46012A..Z.)

The method used for rounding to longest integer isapparently round to even. (See tests C46012A..Z.)

The method used for rounding to integer in static universalreal expressions is apparently round to even.(See testC4AO14A.)

Array types.

An implementation is allowed to raise NUMERICERROR orCONSTRAINTERROR for an array having a 'LENGTH that exceedsSTANDARD.INTEGER'LAST and/or SYSTEM.MAXINT. For thisimplementation:

Declaration of an array type or subtype declaration withmore than SYSTEM.MAXINT components raises NUMERICERROR.(See test C36003A).

NUMERICERROR is raised when an array type withINTEGER'LAST + 2 components is declared. (See testC36202A.)

NUMERICERROR is raised when an array type withSYSTEM.MAXINT + 2 components is declared. (See testC36202B.)

A null array with one dimension of length greater thanINTEGER'LAST may raise NUMERICERROR or CONSTRAINTERROReither when declared or assigned. Alternatively, animplementation may accept the declaration. However, lengthsmust match in array slice assignments. This implementationraises no exception. (See test E52103Y.)

13

Page 14: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

CONFIGURATION INFORMATION

In assigning one-dimensional array types, the expressionappears to be evaluated in its entirety beforeCONSTRAINTERROR is raised when checking whether theexpression's subtype is compatible with the target'ssubtype. In assigning two-dimensional array types, theexpression does not appear to be evaluated in its entiretybefore CONSTRAINTERROR is raised when checking whether theexpression's subtype is compatible with the target'ssubtype. (See test C52013A.)

Discriminated types.

During compilation, an implementation is allowed to eitheraccept or reject an incomplete type with discriminants thatis used in an access type definition with a compatiblediscriminant constraint. This implementation accepts suchsubtype indications. (See test E38104A.)

In assigning record types with discriminants, theexpression appears to be evaluated in its entirety beforeCONSTRAINTERROR is raised when checking whether theexpression's subtype is compatible with the target'ssubtype. (See test C52013A.)

Aggregates.

In the evaluation of a multi-dimensional aggregate, allchoices appear to be evaluated before checking against theindex type. (See tests C43207A and C43207B.)

In the evaluation of an aggregate containing subaggregates,not all choices are evaluated before being checked foridentical bounds. (See test E43212B.)

All choices are evaluated before CONSTRAINTERROR is raisedif a bound in a nonnull range of a nonnull aggregate doesnot belong to an index subtype. (See test E43211B.)

Representation clauses

An implementation might legitimately place restrictions onrepresentation clauses used by some of the tests. If arepresentation clause is used by a test in a way thatviolates a restriction, then the implementation must rejectit.

Enumeration representation clauses containing noncontiguousvalues for enumeration types other than character andboolean types are supported. (See tests C355021..J,C35502M..N, and A39005F.)

14

Page 15: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

CONFIGURATION INFORMATION

Enumeration representation clauses containing noncontiguousvalues for character types are supported. (See testsC35507I..J, C35507M..N, and C55B16A.)

Enumeration representation clauses for boolean typescontaining representational values other than (FALSE => 0,TRUE > ) are supported. (See tests C35508I..J,C35508M..N.)

Length clauses with SIZE specifications for enumerationtypes are supported. (See test A39005B.)

Length clauses with STORAGESIZE specifications for accesstypes are supported. (See tests A39005C and C87B62B).

Length clauses with STORAGESIZE specifications for tasktypes are supported. (See tests A39005D and C87B62D.)

Length clauses with SMALL specifications are supported.(See tests A39005E and C87B62C.)

Record representation clauses are not supported. (See testA39005G.)

Length clauses with SIZE specifications for derived integertypes are supported. (See test C87B62A.)

Pragmas

The pragma INLINE is supported for procedures. The pragmaINLINE is supported for functions. (See tests LA3004A,EA3004C, EA3004D, CA3004E, and CA3004F.)

However the pragma INLINE is not supported for functionswhen they are called inside a package specification (seetest EA3004D) or inside a task body (see test LA3004B).

Input/output.

The package SEQUENTIALIO can be instantiated withunconstrained array types and record types withdiscriminants without defaults. (See tests AE2101C,EE2201D, and EE2201E.)

The package DIRECT_10 can be instantiated withunconstrained array types and record types withdiscriminants without defaults. (See tests AE21O1H, EE2401Dand EE2401G.)

15

Page 16: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

CONFIGURATION INFORMATION

The Director, AJPO, has determined (AI-00332) that everycall to OPEN and CREATE must raise USEERROR or NAMEERRORif file input-output is not supported. This implementationexhibits this behaviour for SEQUENTIAL_IO, DIRECTIO, andTEXTIO.

Generics.

Generic subprogram declarations and bodies can be compiledin separate compilations. (See tests CA1012A and CA2009F.)

Generic package declarations and bodies can be compiled inseparate compilations. (See tests CA2009C, BC3204C, andBC3205D.)

Generic unit bodies and their subunits can be compiled inseparate compilations. (See test CA3011A.)

16

Page 17: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

TEST INFORMATION

CHAPTER 3

TEST IPFORMATION

3.1 TEST RESULTS

Version 1.9 of the ACVC comprised 3122 tests. When this compiler wastested, 27 tests had been withdrawn because of test errors. The AVFdetermined that 401 tests were inapplicable to this implementation.All inapplicable tests were processed during testing except for 201executable tests that use floating-point precision exceeding thatsupported by the implementation and 173 executable tests that usefile operations not supported by this implementation. Modificationsto the code, processing, or grading for 27 tests were required tosuccessfully demonstrate the test objective. (See section 3.6.)

The AVF concludes that the testing results demonstrate acceptableconformity to the Ada Standard.

3.2 SUMMARY OF TEST RESULTS BY CLASS

RESULT TEST CLASS TOTAL

A B C D E L

Passed 108 1050 1462 17 12 45 2694

Inapplicable 2 1 391 0 6 1 401

Withdrawn 3 2 21 0 1 0 27

TOTAL 113 1053 1874 17 19 46 3122

17

Page 18: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

TEST INFORMATION

3.3 SUMMARY OF TEST RESULTS BY CHAPTER

RESULT CHAPTER TOTAL

2 3 4 5 6 7 8 9 10 11 12 13 14

Passed 190 499 549 248 166 98 140 327 135 36 234 3 69 2694

Inapplicable 14 73 125 0 0 0 3 0 2 0 0 0 184 401

Withdrawn 2 14 3 0 0 1 2 0 0 0 2 1 2 27

TOTAL 206 586 677 248 166 99 145 327 137 36 236 4 255 3122

3.4 WITHDRAWN TESTS

The following 27 tests were withdrawn from ACVC Version 1.9 at timeof this validation:

B28003A E28005C C34004A C35502P A35902C C35904A C35904BC35A03E C35A03R C37213H C37213J C37215C C37215E C37215GC37215H C38102C C41402A C45332A C45614C A74106C C85018BC87BO4B CC1331B BC3105A AD1A01A CE2401H CE3208A

See Appendix D for the reason that each of these tests was withdrawn.

3.5 INAPPLICABLE TESTS

Some tests do not apply to all compilers because they make use offeatures that a compiler is not required by the Ada Standard tosupport. Others may depend on the result of another test that iseither inapplicable or withdrawn. The applicability of a test to animplementation is considered each time a validation is attempted. Atest that is inapplicable for one validation attempt is notnecessarily inapplicable for a subsequent attempt. For thisvalidation attempt, 401 tests were inapplicable for the reasonsindicated:

- C35702A uses SHORTFLOAT which is not supported by thisimplementation.

- A39005G uses a record representation clause which is notsupported by this compiler.

- C45231D requires a macro substitution for any predefinednumeric type other than INTEGER, SHORTINTEGER,LONG INTEGER, FLOAT, SHORTFLOAT and LONGFLOAT. Thiscompiler does not support any such type.

18

Page 19: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

TEST INFORMATION

-C45531M, C45531N, C45532M, and C45532N use fine 48 bitfixed point base types which are not supported by thiscompiler.

-C455310, C45531P, C455320, and C45532P use coarse 48 bitfixed point base types which are not supported by thiscompiler.

SB6001D requires a predefined numeric type other thanthose defined by the Ada language in package STANDARD.There is no such type for this implementation.

-C86001F redefines package SYSTEM, but TEXT_-10 is madeobsolete by this new definition in this implementation andthe test cannot be executed since the package REPORT isdependent on the package TEXT_10.

-C87B62B applies the attribute 'STORAGESIZE to an accesstype for which no STORAGESIZE length clause is given, Inthis case, STORAGE_-ERROR is raised; the AVO ruled thatthis behavior is acceptable, since the interpretation ofwhat value the attribute should return where no lengthclause is given is under review.

-EA3004D and LA3004B require that errors be detected ifpragma INLINE is supported for functions. But because thispragma has no effect when a function is called inside of apackage specification or inside a task body, one of theintended errors is not detected. The AVO ruled that thisis acceptable.

-The following 178 tests are inapplicable becausesequential, text, and direct access files are notsupported.

CE2102C CE21O2G. .H(2) CE2102K CE2104A. .D(4)CE21O5A. .B(2) CE21O6A. .B(2) CE21O7A. .I(9) CE21O8A. .D(4)CE2109A..C(3) CE211OA. .C(3) CE2111A. .E(5) CE2111G..H(2)CE2115A. .B(2) CE22O1A. .C(3) EE22OlD. .E(2) CE22O1F. .G(2)CE2204A. .B(2) CE2208B CE2210A CE24O1A. .C(3)EE2401D CE24O1E. .F(2) EE24O1G CE2404ACE2405B CE2406A CE2407A CE2408ACE2409A CE2410A CE2411A AE3101ACE3102B EE3102C CE3103A CE3104ACE31O7A CE3lO8A. .B(2) CE3109A CE3110ACE3111A. .E(5) CE3112A. .B(2) CFE31lIA. .B(2) CE3115ACE3203A rE33O1A. .C(3) CE3302ACE3305A CE3402A. .D(4) CE3403A. .C(3) CE3403E. .F(2)CE3404A. .C(3) CE3405A. .D(4) CE3406A. .D(4) CE3407A. .C(3)CE3408A. .C(3) CE3409A CE3409C. .F(4) CE3410ACE341OC. .F(4) CE3411A CE3412A CE3413ACE3413C CE3602A. .D(4) CE3603A CE3604ACE3605A. .E(5) CE3606A. .B(2) CE3704A. .B(2) CE3704D. .F(3)CE3704M. .0(3) CE3706D CE3706F CE3804A. .E(5)

19

Page 20: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

TEST INFORMATION

CE3804G CE38041 CE3804K CE3804MCE3805A..B(2) CE3806A CE3806D..E(2) CE3905A..C(3)CE3905L CE3906A..C(3) CE3906E..F(2)

- CE2102D..F (3), CE2102I..J (2) and CE3102A raiseNAME ERROR instead of USEERROR when OPEN is tried on afile which does not exist. The AVO ruled that these testsare inapplicable to this implementation.

- The following 201 tests require a floating-point accuracythat exceeds the maximum of 15 digits supported by thisimplementation:

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)

3.6 TEST, PROCESSING, AND EVALUATION MODIFICATIONS

It is expected that some tests will require modifications of code,processing, or evaluation in order to compensate for legitimateimplementation behavior. Modifications are made by the AVF in caseswhere legitimate implementation behavior prevents the successfulcompletion of an (otherwise) applicable test. Examples of suchmodifications include: adding a length clause to alter the defaultsize of a collection; splitting a Class B test into subtests so thatall errors are detected; and confirming that messages produced by anexecutable test demonstrate conforming behavior that wasn'tanticipated by the test (such as raising one exception instead ofanother).

Modifications were required for 19 Class B tests, and 7 rlass Ctests.

The following 19 Class B tests were split because errors at one pointresulted in the compiler not detecting other errors in the test:

B24007A B24009A B32202A B32202B B32202C B33001A B36307AB37004A B61012A B62001B B74401F B74401R B91004A B95004AB95032A B95069A B95069B BA1l01B2 BA1l01B4

20

Page 21: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

TEST INFORMATION

For the following tests, modification of the pass/fail criteria wasneeded. The AVO ruled that they are passed for the reason indicated

C34007A,D,G,M,P and S (6 tests) include a check that theSTORAGESIZE attribute returns a value greater than 1 whenapplied to an access type for which no STORAGESIZE lengthclause has been provided; this implementation fails thischeck. However, the Ada Standard does not support thetests on this point, and the issue is under review. Allother checks made by these tests were passed as expected.

C4AO12B checks that 0.0 raised to a negative value -aisesCONSTRAINTERROR. However NUMERICERROR is also anacceptable exception to be raised. This implementationraises NUMERICERROR.

BA2001E requires that duplicate names of subunits with acommon ancestor be detected and rejected at compile time.This implementation detects the error at link time, andthe AVO ruled that this behavior is acceptable.

3.7 ADDITIONAL TESTING INFORMATION

3.7.1 Prevalidation

Prior to validation, a set of test results for ACVC Version 1.9produced by AlsyCOMP_022, was submitted to the AVF by the applicantfor review. Analysis of these results demonstrated that the compilersuccessfully passed all applicable tests, and the compiler exhibitedthe expected behavior on all inapplicable tests.

3.7.2 Test Method

Testing of the AlsyCOMP_022 using ACVC Version 1.9 was conducted on-site by a validation team from the AVF. The configuration consistedof a VAX 11/785 operating under VMS, Version 4.5, and a 68020 (MVME133-1 16.67 Mhz) operating under RealTime Craft, Version XEC 68 V2.0.The host and the target were linked via Serial RS232C.

A tape containing all tests was taken on-site by the validation teamfor processing.Tests that make use of implementation-specific valueswere customized by ALSYS after loading of the tape.

The contents of the tape were loaded directly onto the host computer.After the test files were loaded to disk, the full set of tests wascompiled, linked arv all executable tests were run. Results werestored on tape after checking.

21

Page 22: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

TEST INFORMATION

The full set of test was compiled on the VAX 11/785. Object fileswere transferred to the target computer via Serial RS232C, and run onthe target. Results were transferred to the host computer via SerialRS232C, and stored on tape.

The compiler was tested using command scripts provided by ALSYS andreviewed by the validation team. The compiler was tested using alldefault switch / option settings except for the following:

Option / Switch Effect

REDUCTION=PARTIAL Some High Level optimization performed

OBJECT=PEEPHOLE Low Level optimization are performed

CALLS=INLINED The pragma INLINE are taken into account

GENERIC=INLINE Code of generic instantiation is placedinline in the same unit.

Tests were compiled, linked, and executed (as appropriate) using asingle host computer. Test outputs, compilation listings, and joblogs were captured on a tape and archived at the AVF. The listingsexamined on-site by the validation team were also archived.

3.7.3 Test Site

Testing was conducted at TECSI, 6 cour Michelet Paris La Dfense,France and was completed on 9 June 1988.

22

Page 23: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

DECLARATION OF CONFORMANCE

APPENDIX A

DECLARATION OF CONFORMANCE

ALSYS has submitted the following conformance statement concerningthe AlsyCOMP_022.

23

Page 24: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

DECLARATION OF CONFORMANCE

DECLARATION OF CONFORMANCE

Compiler Implementor: ALSYS

Ada* Validation Facility:AFNOR, Tour Europe, Cedex 7, F-92080 Paris la Dfense

Ada Compiler Validation Capability (ACVC) Version: 1.9

Base Configuration

Base Compiler Name: AlsyCOMP_022, Version: Version P3.4

Host Architecture ISA : VAX 11/785OS&VER 1: VMS, Version 4.5

Target Architecture ISA : 68020 (MVME 133-1 16.67 Mhz)OS&VER #: RealTime Craft Version XEC 68 V2.0

Implementor's declaration

I, the undersigned, representing ALSYS, have implemented nodeliberate extensions to the Ada Language Standard ANSI/MIL-STD-1815Ain the compiler liqted in this declaration. I declare that ALSYS isthe owner of record of the Ada language compiler listed above and, assuch, is responsible for maintaining said compilers in conformance toANSI-MIL-STD-1815A. All certificates and registrations for Adalanguage compiler listed in this declaration shall be made only inthe owner's corporate name.

Date: 2 7 SEPT

ALSYSEtienne Morel, Managing Director

*Ada is a registred trademark of the United States Government(Ada Joint Program Office).

24

Page 25: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

DECLARATION OF CONFORMANCE

Owner's Declaration

I, the undersigned, representing ALSYS, take full responsability forimplementation and maintenance of the Ada* compiler listed above, andagree to the public disclosure of the final Validation SummaryReport. I further agree to continue to comply with the Ada trademarkpolicy, as defined by the Ada Joint Program Office. I declare thatall of the Ala language compilers listed, and their host/targetperformance are in compliance with the Ada Language StandardANSI/MIL-STD-1815A.

2 7?ET131.-- _ _ Date: _ _ _I

ALSYSEtienne Morel, Managing Director

*Ada is a registred trademark of the United States Government(Ada Joint Program Office).

25

Page 26: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

APPENDIX F OF THE Ada STANDARD

APPENDIX B

APPENDIX F OF THE Ada* STANDARD

The only allowed implementation dependencies correspond toimplementation-dependent pragmas, to certain machine-dependentconventions as mentioned in chapter 13 of the Ada Standard, and tocertain allowed restrictions on representation clauses. Theimplementation-dependent characteristics of the AlsyCOMP_022, VersionP3.4, are described in the following sections which discuss topics inAppendix F of the Ada Standard. Implementation-specific portions ofthe package STANDARD are also included in this appendix.

package STANDARD is

type SHORT_INTEGER is ra-age -(2**7) .. (2**7-1);type INTEGER is range -(2**15) .. (2**15-1);type LONG INTEGER is range -(2**31) (2**31-1);

type FLOAT is digits 6 range-(2.0-2.0**(-23)) * 2.0**127 .. +(2.0-2.0**(-23)) * 2.0**127;

type LONGFLOAT is digits 15 range-(2.0-2.0**(-51)) * 2.0**1023 .. +(2.0-2.0**(-51)) * 2.0**1023;

type DURATION is delta 2.0**(-14) range -86_400.0 86_400.0;-- DURATION'SMALL = 2.0**(-14).

end STANDARD

*Ada is a registred trademark of the United States Government(Ada Joint Program Office).

26

Page 27: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

APPENDIX F OF THE Ada STANDARD

IMPLEMENTATION-DEPENDENT CHARACTERISTICS

F.1 IMPLEMENTATION-DEPENDENT PRAGMAS

Interfacing the Language Ada with Other Languages

Programs written in Ada can interface with external subprograms written in anotherlanguage, by use of the INTERFACE pragma. The format of the pragma is:

pragma INTERFACE ( language-name , Adasubprogram name )

where the language name can be any of

* ASSEMBLER

uC

To allow the use of non-Ada naming conventions, such as special characters, or casesensitivity, an implementation-dependent pragma INTERFACENAME has beenintroduced:

pragma INTERFACENAME ( Adasubprogramname, name_string )

The pragma INTERFACENAME may be used anywhere in an Ada program whereINTERFACE is allowed (see [13.9]). INTERFACENAME must occur after thecorresponding pragma INTERFACE and within the same declarative part.

Pragma IndentThis pragma is only used with the Alsys Reformater; this tool offers the functionalities

of a pretty-printer in an Ada environment.

The pragma is placed in the source file and interpreted by the Reformatter.

pragma INDENT(OFF)

The Reformatter does not modify the source lines after the pragma.

pragma INDENT(ON)

The Reformatter resumes its action after the pragma.

27

Page 28: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

APPENDIX F OF THE Ada STANDARD

1.4 Pragmas not Implemented

The following pragmas are not implemented:CONT ROLLEDMEMORYSIZEOPTIMIZEPACKSHAREDSTORAGE UNITSYSTEMNAME

F.2 IMPLEMENTATION-DEPENDENT ATTRIBUTES

In addition to the Representation Attributes of [13.7.2] and [13.7.3], there are fourattributes which are listed under F.5 below, for use in record representation clauses.

Limitations on the use of the attribute ADDRESS

The attribute ADDRESS is implemented for all prefixes that have meaningful addresses.The following entities do not have meaningful addresses and will therefore cause acompilation error if used as prefix to ADDRESS:

" A constant that is implemented as an immediate value i.e., does not- have anyspace allocated for it.

" A package specification that is not a library unit.

" A package body that is not a library unit or a subunit.

F.3 PACKAGES SYSTEM AND STANDARD

package SYSTEM is

-- Standard Ada definitions

type NAME is (MC680XO);SYSTEM NAME : constant NAME := MC680XO;STORAGE UNIT : constant =8 ;MEMORY SIZE : constant := 2**32MIN INT : constant := -(2**31)MAX INT : constant := 2**31-1MAX DIGITS : constant := 15MAX MANTISSA : constant =31;FINE DELTA : constant:= 2#1.0#e-31TICK . constant := 1.0 ; -- unused

-- The real basic clock cycle depends on the current hardware

-- and corresponding board support package.

type ADDRESS is private ;

28

Page 29: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

APPENDIX F OF THE Ada STANDARD

NULLADDRESS: constant ADDRESS;

subtype PRIORITY is INTEGER range L.248

-- Address arithmetic

function TOLONG INTEGER (LEFT: ADDRESS)return LONG INTEGER ;

function TO ADDRESS (LEFT: LONGINTEGER)return ADDRESS;

function "+" (LEFT: LONG INTEGER; RIGHT: ADDRESS)return ADDRESS ;

function "+" (LEFT: ADDRESS; RIGHT: LONGINTEGER)return ADDRESS;

function "-" (LEFT: ADDRESS; RIGHT: ADDRESS)return LONG INTEGER;

function "-" (LEFT: ADDRESS; RIGHT: LONGINTEGER)return ADDRESS,

function "mod" (LEFT: ADDRESS; RIGHT: POSITIVE)return NATURAL ;

function "<" (LEFT: ADDRESS; RIGHT: ADDRESS)return BOOLEAN ;

function "<=" (LEFT : ADDRESS ;, RIGHT : ADDRESS)return BOOLEAN ;

function ">" (LEFT: ADDRESS; RIGHT: ADDRESS)return BOOLEAN ;

function ">=" (LEFT: ADDRESS; RIGHT: ADDRESS)return BOOLEAN ;

function ISNULL (LEFT: ADDRESS)return BOOLEAN;

function WORD ALIGNED (LEFT: ADDRESS)return BOOLEAN ;

function ROUND (LEFT: ADDRESS)return ADDRESS ;

-- Returns the given address rounded to the next lower even value

procedure COPY (FROM: ADDRESS ;TO: ADDRESS ;SIZE: NATURAL);-- Copies SIZE storage units. The result is undefined if the two areas-- overlap.

-- Direct memory access

generictype ELEMENT TYPE is private

function FETCH (FROM: ADDRESS) return ELEMENTTYPE;-- Returns the bit pattern stored at address FROM, as a value of the-- specified ELEMENTTYPE. This function is not implemented

29

Page 30: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

APPENDIX F OF THE Ada STANDARD

-- for unconstrained array types.

generictype ELEMENT TYPE is private

procedure STORF (INTO: ADDRESS; OBJECT: ELEMENT TYPE);

-- Stores the bit pattern representing the value of OBJECT, at

-- address INTO. This function is not implemented for-- unconstrained array types.

end SYSTEM;

The package STANDARD

The following are the implementation-dependent aspects of the package STANDARD:

type SHORT INTEGER is range -(2**7) .. (2**7 -1);type INTEGER is range -(2**15) .. (2"'15 -1);type LONGINTEGER is range -(2**31).. (2"'31 -1);

type FLOAT is digits 6 range-(2.0 - 2.0**(-23)) * 2.0**127+(2.0 - 2.0**(-23)) * 2.0**127

type LONG FLOAT is digits 15 range-(2.0 -"2.0**(-51)) * 2.0**1023+2.0- 2.0"*(-51)) * 2.0**1023;

type DURATION is delta 2.0**(-14) range -86_400.0 .. 86_400.0;

F.4 RESTRICTIONS ON REPRESENTATION CLAUSES

The facilities covered in [13] are provided, except for the following features:

2 There is no bit implementation for any of the representation clauses.

N Change of representation for RECORD type is not implemented.

0 Machine code insertions are not implemented.

For the length clause :

Size specification: T'SIZE is not implemented for types declared in a

generic unit.

Specification of storage for a task activation: T'STORAGESIZE is notimplemented when T is a task type.

Specification of small for a fixed point type: T'SMALL is restricted toa power of 2, and the absolute value of the exponent must be less than31.

30

Page 31: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

APPENDIX F OF THE Ada STANDARD

a The Enumeration Clause is not allowed if there is a range constraint on theparent subtype.

0 The Record Clause is not allowed for a derived record type.

F.5 IMPLEMENTATION-GENERATED NAMES

There are four attributes with corresponding generated names:

T'RECORDSIZE For a prefix T that denotes a record type. This attributerefers to the record component introduced by the compilerin a record to store the size of the record object. Thiscomponen exists for objects of a record type withdefaulted discriminants when the sizes of the record objectsdepend on the values of the discriminants.

T'VARIANTINDEX For a prefix T that denotes a record type. This attributerefers to the record component introduced by the compilerin a record to assist in the efficient implementation ofdiscriminant checks. This component exists for objects of arecord type with variant part.

C'ARRAYDESCRIPTOR For a prefix C that denotes a record component ofarray type whose component subtype definition depends ondiscriminants. This attribute refers to the record componentintroduced by the compiler in a record to store informationon subtypes of components that depend on discriminants.

C'RECORDDESCRIPTOR For a prefix C that denotes a record component ofrecord type whose component subtype definition dependson discriminants. This attribute refers to the recordcomponent introduced by the compiler in a record to storeinformation on subtypes of components that depend ondiscriminants.

F.6 ADDRESS CLAUSES

Address clauses for objects

Names used in address clauses for objects must denote variables of composite types.Besides unconstrained record variables are not allowed.

Address clauses for a single entry

Only one entry per task is allowed. The corresponding entry must have no parameter.

Address clauses for subprograms, packages or task units

The address clauses are not supported.

31

Page 32: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

APPENDIX F OF THE Ada STANDARD

F.7 UNCHECKED CONVERSIONS

Unconstrained arrays are not allowed as target types. Unconstrained record types withoutdefaulted discriminants are not allowed as target types.

If the source and the target types are each scalar or access types, the sizes of the objectsof the source and target types must be equal.

If a composite type is used either as source type or as target type this restriction on thesize does not apply.

If the source and the target types are each of scalar or access type or if they are both ofcomposite type, the effect of the function is to return the operand.

In other cases the effect of unchecked conversion can be considered as a copy:

W if an unchecked conversion is achieved of a scalar or access source type to acomposite target type, the result of the function is a copy of the sourceoperand: the result has the size of the source.

a if an unchecked conversion is achieved of a composite source type to a scalaror access target type, the result of the function is a copy of the sourceoperand: the result has the size of the target.

F.8 INPUT-OUTPUT CHARACTERISTICS

In this part of the Appendix the implementation-specific aspects of the input-outputsystem are described.

8.1 Introduction

In Ada, input-output operations (10) are considered to be performed on objects of acertain file type rather than being performed directly on external files. An external fileis anything external to the program that can produce a value to be read or receive avalue to be written. Values transferred for a given file must be all of one type.

Generally, in Ada documentation, the term file refers to an object of a certain file type,whereas a physical manifestation is known as an external file. An external file ischaracterized by

W Its NAME, which is a string defining a legal path name under the currentversion of the operating system.

N Its FORM, which gives implementation-dependent information on filecharacteristics.

Both the NAME and FORM appear explicitly in the Ada CREATE and OPENprocedures. Though a file is an object of a certain file type, ultimately the object has tocorrespond to an external file. Both CREATE and OPEN associate a NAME of anexternal file (of a certain FORM) with a program file object.

Ada 10 operations are provided by means of standard packages [14].

32

Page 33: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

APPENDIX F OF THE Ada STANDARD

SEQUENTIAL_10 A generic package for sequential files of a single elementtype.

DIRECT_10 A generic package for direct (random) access files.

TEXT_10 A generic package for human-readable (text, ASCII) files.

10_EXCEPTIONS A package which defines the exceptions needed by theabove three packages.

The generic package LOWLEVEL_10 is not implemented in this version.

The upper bound for index values in DIRECT_1O and for line, column and pagenumbers in TEXT_10 is given by

COUNT'LAST = 2**31 -1

The upper bound for fields widths in TEXT IO is given by

FIELD'LAST = 255

8.2 The FORM Parameter

The FORM parameter to both the CREATE and OPEN procedures in Ada specifies thecharacteristics of the external file involved.

The CREATE procedure establishes a new external file, of a given NAME and FORM,and associates it with a specified program FILE object. The external file is created (andthe FILE object set) with a certain file MODE. If the external file already exists, thefile will be erased. The exception USEERROR is raised if the file mode is IN-FILE.

The OPEN procedure associates an existing external file, of a given NAME and FORM,with a specified program FILE object. The procedure also sets the current FILE mode.If there is an inadmissible change of MODE, then an Ada USEERROR is raised.

The general form of any attribute is a keyword followed by => and then a qualifier.The qualifier may sometimes be omitted. The format for an attribute specifier is thuseither of

KEIWORD

KEYWJ'ORD => QUALIFIER

33

Page 34: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

TEST PARAMETERS

APPENDIX C

TEST PARAMETERS

Certain tests in the ACVC make use of implementation-dependentvalues, such as the maximum length of an input line and invalid filenames. A test that makes use of such values is identified by theextension .TST in its file name. Actual values to be substituted arerepresented by names that begin with a dollar sign. A value must besubstituted for each of these names before the test is run. Thevalues used for this validation are given below.

Name and Meaning Value

$BIGIDI 'X234567890' & (24 * '1234567890')Identifier the size of the & '12341'maximum input line lengthwith varying last character.

$BIGID2 ';:.34567890' & (24 * '1234567890')Identifier the size of the & '12342'maximum input line lengthwith varying last character.

SBIGID3 'X234567890' & (11 * '1234567890')Identifier the size of the & '12345xx3xx12345'maximum input line length & (12 * '1234567890')with varying middlecharacter.

$BIGID4 'X234567890' & (11 * '1234567890')Identifier the size of the & '12345xx4xx12345'maximum input line length & (12 * '1234567890')with varying middlecharacter.

$BIGINTLIT (252 * '0') & '298'An integer literal of value298 with enough leadingzeroes - that it is thesize of the maximum linelength.

34

Page 35: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

TEST PARAMETERS

Name and Meaning Value--------------------- ---------------------------------

$BIGREALLIT (250 * '0') & '690.0'A universal real literal ofvalue 690.0 with enoughleading zeroes to be thesize of the maximum linelength.

$BIG STRING1 'X234567890' & (11 * '1234567890')A string literal whichwhen catenated withBIG_STRING2 yields theimage of BIGID1.

$BIGSTRING2 (13 * '1234567890') &'12341'

A string literal whichwhen catenated with theend of BIGSTRING1 yieldsthe image of BIGIDI.

$BLANKS (235 * '

A sequence of blanks twentycharacters less than the sizeof the maximum line length.

$COUNT LAST 2_147_483_647A universal integerliteral whose value isTEXTIO.COUNT'LAST.

SFIELDLAST 255A universal integerliteral whose value isTEXT IO.FIELD'LAST.

$FILE -NAMEWITHBADCHAR t12345678901234567890An external file name thateither contains invalidcharacters or is too long.

SFILENAME WITH__WILDCARDCHAR t12345678901234567890An external file name thateither contains a wildcard character or is toolong.

$GREATERTHANDURATION 100_000.0A universal real literalthat lies betweenDURATION'BASE'LAST andDURATION'LAST or any valuein the range of DURATION.

35

Page 36: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

TEST PARAMETERS

Name and Meaning Value

$GREATER_THANDURATIONBASELAST 100_000_000.0A universal real literalthat is greater thanDURATION'BASE'LAST.

$ILLEGAL JEXTERNALFILE NAME1 tt/ttAn external file name whichcontains invalidcharacters.

$ILLEGALEXTERNALFILENAME2 t12345678901234567890An external file namewhich is too long (orillegal).

$INTEGERFIRST -32768A universal integerliteral whose value isINTEGER'FIRST.

$INTEGERLAST 32767A universal integerliteral whose value isINTEGER'LAST.

$INTEGERLASTPLUS_1 32768A universal integerliteral whose value isINTEGER'LAST + 1.

$LESSTHAN_DURATION -100000.0A universal real literalthat lies betweenDURATION'BASE'FIRST andDURATION'FIRST or anyvalue in the range ofDURATION.

$LESSTHANDURATIONBASEFIRST -100000000.0A universal real literalthat is less thanDURATION'BASE'FIRST.

$MAXDIGITS 15Maximum digits supportedfor floating-point types.

$MAXINLEN 255Maximum input line lengthpermitted by theimplementation.

36

Page 37: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

TEST PARANiEUA S

Name and Meaning Value

SMAXINT 2_147_483_647A universal integerliteral whose value isSYSTEM.MAXINT.

$MAX INT PLUS_1 2_147_483_648A universal integerliteral whose value isSYSTEM.MAXINT + 1.

SMAXLENINTBASEDLITERAL '2#' & (250 * '0') & '#'A universal integer whosevalue is 2#11# with enoughleading zeroes in themantissa to be MAXINLENlong.

SMAXLENREALBASEDLITERAL '16:' & (248 * '0') & 'F.E:'A universal real basedliteral whose value is16:F.E: with enoughleading zeroes in themantissa to be MAXINLENlong.

SMAXSTRINGLITERAL (25 * '1234567890') & '123'A string literal of sizeMAXINLEN, including thequote characters.

SMININT -2_147_483_648A universal integerliteral whose value isSYSTEM.MININT.

$NAME NOSUCHTYPEA name of a predefinednumeric type other thanFLOAT, INTEGER, SHORTFLOAT,SHORTINTEGER, LONGFLOAT,or LONGINTEGER.

$NEGBASEDINT 16#FFFFFFFE#A based integer literalwhose highest ordernonzero bit falls in thesign bit position of therepresentation forSYSTEM.MAXINT.

37

Page 38: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

WITHDRAWN TESTS

APPENDIX D

WITHDRAWN TESTS

Some tests are withdrawn from the ACVC because they do not conform tothe ADA Standard. The following 27 tests had been withdrawn at thetime of validation testing for the reasons indicated. A reference ofthe form "AI-ddddd" is to an Ada Commentary.

B28003A: A basic declaration (line 36) wrongly follows a laterdeclaration.

E28005C: This test requires that 'PRAGMA LIST (ON);' not appearin a listing that has been suspended by a previous"pragma LIST (OFF);"; the Ada Standard is not clearon this point, and the matter will be reviewed by theALMP.

C34004A: The expression in line 168 wrongly yields a valueoutside of the range of the target type T, raisingCONSTRAINTERROR.

C35502P: Equality operators in lines 62 & 69 snouia De inequalityoperators.

A35902C: Line 17's assignment of the nominal upper bound of afixed- point type to an object of that type raisesCONSTRAINTERROR, for that value lies outside of theactual range of the type.

C35904A: The elaboration of the fixed-point subtype on line 28wrongly raises CONSTRAINTERROR, because its upper boundexceeds that of the type.

C35904B: The subtype declaration that is expected to raiseCONSTRAINTERROR when its compatibility is checkedagainst that of various types passed as actual genericparameters, may in fact raise NUMERICERROR orCONSTRAINTERROR for reasons not anticipated by thetest.

C35AO3E & R: These tests assume that attribute 'MANTISSA returns 0when applied to a fixed-point type with a null range,but the Ada Standard doesn't support this assumption.

38

Page 39: Prepared By: AFNORAFNOR, Paris, France. 9. PERFORMING ORGANIZATION AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS AFNOR, Paris, France. 11. CONTROLLING …

WITHDRAWN TESTS

C37213H: The subtype declaration of SCONS in line 100 is wronglyexpected to raise an exception when elaborated.

C37213J: The aggregate in line 451 wrongly raisesCONSTRAINTERROR.

C37215C, E, G, H: Various discriminant constraints are wronglyexpected to be incompatible with type CONS.

C38102C: The fixed-point conversion on line 23 wrongly raisesCONSTRAINTERROR.

C41402A: 'STORAGESIZE is wrongly applied to an object of anaccess type.

C4[332A: The test expects that either an expression in line 52will raise an exception or else MACHINEOVERFLOWS isFALSE. However, an implementation may evaluate theexpression correctly using a type with a wider rangethan the base type of the operands, andMACHINEOVERFLOWS may still be TRUE.

C45614C: REPORT.INDENTINT has an argument of the wrong type(LONGINTEGER).

A74106C, C85018B, C87BO4B, CCl311B: A bound specified in afixed-point subtype declaration lies outside of thatcalculated for the base type, raising CONSTRAINT ERROR.Errors of this sort occur re lines 37 & 59, 142 & 143,16 & 48, and 252 & 253 of the four tests, respectively(and possibly elsewhere).

BC3105A: Lines 159..168 are wrongly expected to be incorrect;they are correct.

ADlA01A: The declaration of subtype INT3 raises CONSTRAINTERRORfor implementations that select INT'SIZE to be 16 orgreater.

CE2401H: The record aggregates in lines 105 & 117 contain thewrong values.

CE3208A: This test expects thar an attempt to open the defaultoutput file (after it was closed) with mode INFILEraises NAMEERROR or USE_ERROR; by Commentary AI-00048.MODEERROR should be raised.

39