nesuw 3alfe' c~ aa · passed if no errors are detected at compile time and the program...

53
AD-A21 1 .560 12O iv NESUw 3ALFE' , C~ AA !4~~ ?YPL Or 1tPP 9 PLU;O: COVEL:i TAda: Con;ile., Va'.idation Surrma:ry Report :TeleSoft, 10 June 1989 to 10 June 1990 ~ \AX/ .. ~.Cross Compihiatior "Y'stem, Version 3.*23, *PRmb~A.j3 JWj 7. I,~~j1. CO&7AAZI7 01 &akAh h~jM -jj) Da'.:cr-, OH. USA S. FL~krORN~k ORAhZA10N AN: AZ))LSS 1C. FP: Aa 1109:k:'.1A" A~qA & W:.I Uh:1 %j.5R Wright-Patterson AFE Dayton, OF, USA 1CO'AZ.011 0"ICI kAh': AN: ADDAISS 1Z. ftEP, ;7 D~j Ada Joint Froga~ Of fice t~n~td Staes D patment o1f Defense ~~ Washing;ton, DC 2 D301-3061 14. A~ih:i hAw. & AZ:)RSS(ifa~fer~tranCOnroi,,nS.OIsC,) 1. £L:A2' CLASS ,se~.~ UNCLASSIFIED Wright-Patterson AF*B Dayton, OF, USA 6L ~ / It. VS7K2E2I.'1 SIA'LKWN' (f ~. Aproved for p'Thl~ic release; distribution unljimited. * Ei '.;: (Conor,., 01'e.ve'jes'o (ie (rCip e-y Vto Idf7g,fy by 610(1 numbe r) Ada Prccrar-.% r lang,.a9e, Ada Com~piler Validation Summnary Re-: rt, Ada Co-.pile: Validation Capability, AZCVC, Validation Testing, Ada Validation Office, AVO, Ada Validation Facility, AVF, ANSI/Y1L-S7D:- 1815A, Ada Joint Program Office, AJPO 2D. AIS7?A1 Cn n, n'.cs ~,ifle~~~? by block nwumber) TeleSoft, TeleGen2 VAX/1750a Cross Compilation System, Version 3.23, Wright-Patterson AFB MicroVAX II under VAX/VHS,.Version V5.1 (Host) to MIL-STD--1750a ECSPO ITS Simulator, Version 4.0, (bare) executing on the host (Target), AGVC 1.10. DO ~ 47 i S/o.ii s10-LI014v6C UNSrCLASSIFIED

Upload: others

Post on 01-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

AD-A21 1 .560 12O iv NESUw 3ALFE' , C~ AA

!4~~ ?YPL Or 1tPP 9 PLU;O: COVEL:i

TAda: Con;ile., Va'.idation Surrma:ry Report :TeleSoft, 10 June 1989 to 10 June 1990~ \AX/ ..~.Cross Compihiatior "Y'stem, Version 3.*23, *PRmb~A.j3 JWj

7. I,~~j1. CO&7AAZI7 01 &akAh h~jM -jj)

Da'.:cr-, OH. USA

S. FL~krORN~k ORAhZA10N AN: AZ))LSS 1C. FP: Aa 1109:k:'.1A"A~qA & W:.I Uh:1 %j.5R

Wright-Patterson AFEDayton, OF, USA

1CO'AZ.011 0"ICI kAh': AN: ADDAISS 1Z. ftEP, ;7 D~jAda Joint Froga~ Of fice

t~n~td Staes D patment o1f Defense ~~Washing;ton, DC 2 D301-3061

14. A~ih:i hAw. & AZ:)RSS(ifa~fer~tranCOnroi,,nS.OIsC,) 1. £L:A2' CLASS ,se~.~

UNCLASSIFIEDWright-Patterson AF*BDayton, OF, USA

6L ~ /

It. VS7K2E2I.'1 SIA'LKWN' (f ~.

Aproved for p'Thl~ic release; distribution unljimited.

* Ei '.;: (Conor,., 01'e.ve'jes'o (ie (rCip e-y Vto Idf7g,fy by 610(1 numbe r)

Ada Prccrar-.% r lang,.a9e, Ada Com~piler Validation Summnary Re-: rt, AdaCo-.pile: Validation Capability, AZCVC, Validation Testing, AdaValidation Office, AVO, Ada Validation Facility, AVF, ANSI/Y1L-S7D:-1815A, Ada Joint Program Office, AJPO

2D. AIS7?A1 Cn n, n'.cs ~,ifle~~~? by block nwumber)

TeleSoft, TeleGen2 VAX/1750a Cross Compilation System, Version 3.23, Wright-Patterson AFBMicroVAX II under VAX/VHS,.Version V5.1 (Host) to MIL-STD--1750a ECSPO ITS Simulator,Version 4.0, (bare) executing on the host (Target), AGVC 1.10.

DO ~ 47 i S/o.ii s10-LI014v6C UNSrCLASSIFIED

Page 2: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

AVF Control Number: AVF-VSR-295.078989-04-14-TEL

Ada COMPILERVALIDATION SUMMARY REPORT:

Certificate Number: 890710W1.I0110TeleSoft

TeleGen2 VAX/1750a Cross Compilation System, Version 3.23MicroVAX II Host and

MIL-STD-1750a ECSPO ITS Simulator, Version 4.0, Target

Completion of On-Site Testing:10 July 1989

Prepared By:Ada Validation Facility

ASD/SCELWright-Patterson AFB OH 45433-6503

Prepared For:

Ada Joint Program OfficeUnited States Department of Defense

Washington DC 20301-3081

Im mlmmmmm l l m mI

Page 3: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

Ada Compiler Validation Summary Report:

Compiler Name: TeleGen2 VAX/1750a Cross Compilation System,Version 3.23

Certificate Number: 890710W1.10110

Host: MicroVAX II underVAX/VMS, Version V5.1

Target: MIL-STD-1750a ECSPO ITS Simulator, Version 4.0,(bare) executing on the host

Testing Completed 10 July 1989 Using ACVC 1.10

This report has been reviewed and is approved.

Ada Validation FacilitySteve P. WilsonTechnical DirectorASD/SCELWright-Patterson AFB OH 45433-6503

Ada aliatin Oganization

Dr. John F. KramerInstitute for Defense AnalysesAlexandria VA 22311

~4 ~r~aJoit Ptoirram Office 0Dr. John Solomond bau i-x-/'o40D i r e c t o r A c c s s on-oDepartment of DefenseWashington DC 20301 NTIS GRA&I

D'G TAB LIUnannouAced LIJustification

ByN4 st rihut I oL/Availability Codes

Avail and/orDist Special

Page 4: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

TABLE OF CONTENTS

CHAPTER 1 INTRODUCTION

1.1 PURPOSE OF THIS VALIDATION SUMMARY REPORT . . . 1-21.2 USE OF THIS VALIDATION SUMMARY REPORT ......... 1-21.3 REFERENCES ........ .................... 1-31.4 DEFINITION OF TERMS ..... ............... .. 1-31.5 ACVC TEST CLASSES ...... ................ ..1-4

CHAFTER 2 CONFIGURATION INFORMATION

2.1 CONFIGURATION TESTED ..... ............... ..2-12.2 IMPLEMENTATION CHARACTERISTICS ............. .2-2

CHAPTER 3 TEST INFORMATION

3.1 TEST RESULTS ....... ................... .3-13.2 SUMMARY OF TEST RESULTS BY CLASS ............ .3-13.3 SUMMARY OF TEST RESULTS BY CHAPTER ........... ..3-23.4 WITHDRAWN TESTS ...... ................. .. 3-23.5 INAPPLICABLE TESTS ...... ................ ..3-23.6 TEST, PROCESSING, AND EVALUATION MODIFICATIONS. . 3-53.7 ADDITIONAL TESTING INFORMATION .... .......... 3-53.7.1 Prevalidation ...... ................. .. 3-53.7.2 Test Method ....... .................. ..3-63.7.3 Test Site ........ ................... .3-7

APPENDIX A DECLARATION OF CONFORMANCE

APPENDIX B APPENDIX F OF THE Ada STANDARD

APPENDIX C TEST PARAMETERS

APPENDIX D WITHDRAWN TESTS

Page 5: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

CHAPTER 1

INTRODUCTION

This Validation Summary Report -(VSR) 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 it and thoroughlyreports the results of -testing this compiler using the Ada CompilerValidation Capability; (ACVC).- An Ada compiler must be implementedaccording to the Ada Standard, and any implementation-dependent featuresmust conform to the requirements of the Ada Standard. The Ada Standardmust be implemented in its entirety, and nothing can be implemented that isnot in the Standard.

Even though all validated Ada compilers conform to the Ada Standard, itmust be understood that some differences do exist between implementations.The Ada Standard permits some implementation dependencies--for example, themaximum length of identifiers or the maximum values of integer types.Other differences between compilers result from the characteristics ofparticular operating systems, hardware, or implementation strategies. Allthe dependencies observed during the process of testing this compiler aregiven in this report.

The information in this report is derived from the test results producedduring validation testing. The validation process includes submitting asuite of standardized tests, the ACVC, as inputs to an Ada compiler andevaluating the results. The purpose of validating is to ensure conformityof the compiler to the Ada Standard by testing that the compiler properlyimplements legal language constructs and that it identifies and rejectsillegal language constructs. The testing also identifies behavior that isimplementation-dependent but is permitted by the Ada Standard. Six classesof tests are used. These tests are designed to perform checks at compiletime, at link time, and during execution.

1-1

Page 6: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

INTRODUCTION

1.1 PURPOSE OF THIS VALIDATION SUMMARY REPORT

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

* To attempt to identify any language constructs supported by tnecompiler that do not conform to the Ada Standard

• To attempt to identify any language constructs not supported bythe compiler but required by the Ada Standard

* To determine that the implementation-dependent behavior is allowedby the Ada Standard

Testing of this compiler was conducted by SofTech, Inc. under thedirection of the AVF according to procedures established by the Ada JointProgram Office and administered by the Ada Validation Organization (AVO).On-site testing was completed 10 July 1989 at San Diego CA.

1.2 USE OF THIS VALIDATION SUMMARY REPORT

Consistent with the national laws of the originating country, the AVO maymake full and free public disclosure of this report. In the United States,this is provided in accordance with the "Freedom of Information Act" (5U.S.C.#552). The results of this validation apply only to the computers,operating systems, and compiler versions identified in this report.

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 compiler has no nonconformitiesto the Ada Standard other than those presented. Copies of this report areavailable to the public from:

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

or from:

Ada Validation FacilityASD/SCELWright-Patterson AFB OH 45433-6503

1-2

Page 7: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

INTRODUCTION

Ouestions regarding this report or the validation test results should bedirected to the AVF listed above or to:

Ada Validation OrganizationInstitute for Defense Analyses1801 North Beauregard StreetAlexandria VA 22311

1.3 REFERENCES

1. Reference Manual for the Ada Programming Language,ANSI!MIL-STD-fT5A,-Fe ii'y 1983 and ISO 8652-1987.

2. Ada Compiler Validation Procedures and Guidelines, Ada JointProgram Office, 1 Januar7y T7.

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

4. Ada Compiler Validation Capability User's Guide, December 1986.

1.4 DEFINITION OF TERMS

ACVC The Ada Compiler Validation Capability. The set of Adaprograms that tests the conformity of an Ada compiler to theAda programming language.

Ada An Ada Commentary contains all information relevant to theCommentary point addressed by a comment on the Ada Standard. These

comments are given a unique identification number having theform AI-ddddd.

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

Applicant The agency requesting validation.

AVF The Ada Validation Facility. The AVF is responsible forconducting compiler validations according to procedurescontained in the Ada Compiler Validation Procedures andGuidelines.

AVO The Ada Validation Organization. The AVO has oversightauthority over all AVF practices for the purpose ofmaintaining a uniform process for validation of Adacompilers. The AVO provides administrative and technicalsupport for Ada validations to ensure consistent practices.

Compiler A processor for the Ada language. In the context of thisreport, a compiler is any language processor, including

1-3

Page 8: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

INTRODUCTION

cross-compilers, translators, and interpreters.

Failed test An ACVC test for which the compiler generates a result thatdemonstrates nonconformity to trie Ada Standard.

Host The computer on which the compiler resides.

Inapplicable An ACVC test that uses features of the language that atest compiler is not required to support or may legitimately

support in a way other than the one expecteu by the test.

Passed test An ACVC test for which a compiler generates the expectedresult.

Target The computer for which a compiler generates code.

Test A program that checks a compiler's conformity regarding aparticular feature or a combination of features to the AdaStandard. In the context of this report, the term is used todesignate a single test, which may comprise one or morefiles.

Withdrawn An ACVC test found to be incorrect and not used to checktest conformity to the Ada Standard. A test may be incorrect

because it has an invalid test objective, fails to meet itstest objective, or contains illegal or erroneous use of thelanguage.

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 name identifiesthe class to which it belongs. Class A, C, D, and E tests are executable,and special program units are used to report their results duringexecution. Class B tests are expected to produce compilation errors.Class L tests are expected to produce compilation or link errors because ofthe way in which a program library is used at link time.

C~ass A tests ensure the successful compilation of legal Ada programs withcertain language constructs which cannot be verified at compile time.There are no explicit program components in a Class A test to checksemantics. For example, a Class A test checks that reserved words ofanother language (other than those already reserved in the Ada language)are not treated as reserved words by an Ada compiler. A Class A test ispassed if no errors are detected at compile time and the program executesto produce a PASSED message.

Class B tests check that a compiler detects illegal language usage. ClassB tests are not executable. Each test in this class is compiled and theresulting compilation listing is examined to verify that every syntax orsemantic error in the test is detected. A Class B test is passed if every

1-4

Page 9: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

INTRODUCTION

illegal construct that it contains is detected by the compiler.

Class C tests check the run time system to ens,,re that legal Ada programscan be correctly compiled and executed. Each Class C test is self-checkingand produces a PASSED, FAILED, or NOT APPLICABLE message indicating theresult when it is executed.

Class D tests check the compilation and execution capacities of a compiler.Since there are no capacity requirements placed on a compiler by the AdaStandard for some parameters--for example, the number of identifierspermitted in a compilation or the number of units in a library--a compilermay refuse to compile a Class D test and still be a conforming compiler.Therefore, if a Class D test fails to compile because the capacity of thecompiler is exceeded, the test is classified as inapplicable. If a Class Dtest compiles successfully, it is self-checking and produces a PASSED orFAILED message during execution.

Class E tests are expected to execute successfully and checkimplementation-dependent options and resolutions of ambiguities in the AdaStandard. Each Class E test is self-checking and produces a NOTAPPLICABLE, 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 during compilation.Therefore, a Class E test is passed by a compiler if it is compiledsuccessfully and executes to produce a PASSED message, or if it is rejectedby 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 is attempted.A Class L test passes if it is rejected at link time--that is, an attemptto execute the main program must generate an error message before anydeclarations in the main program or any units referenced by the mainprogram are elaborated. In some cases, an implementation may legitimatelydetect errors during compilation of the test.

Two library units, the package REPORT and the procedure CHECK FILE, supportthe self-checking features of the executable tests. The package REPORTprovides the mechanism by which executable tests report PASSED, FAILED, orNOT APPLICABLE results. It also provides a set of identity functions usedto defeat some compiler optimizations allowed by the Ada Standard thatwould circumvent a test objective. The procedure CHECK FILE is used tocheck the contents of text files written by some of the Class C tests forchapter 14 of the Ada Standard. The operation of REPORT and CHECK FILE ischecked by a set of executable tests. These tests produce messages thatare examined to verify that the units are operating correctly. If theseunits are not operating correctly, then the validation is not attempted.

The text of each test in the ACVC follows conventions that are intended toensure that the tests are reasonably portable without modification. Forexample, the tests make use of only the basic set of 55 characters, containlines with a maximum length of 72 characters, use small numeric values, andplace features that may not be supported by all implementations in separate

1-5

Page 10: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

INTRODU2TION

tests. However, some tests contain values that require the test to becustomized according to implementation-specific values--for example, anillegal file name. A list of the values used for this validation isprovided in Appendix 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 is inapplicable tothe implementation. The applicability of a test to an implementation isconsidered each time the implementation is validated. A test that isinapplicable for one validation is not necessarily inapplicable for asubsequent validation. Any test that was determined to contain an illegallanguage construct or an erroneous language construct is withdrawn from theACVC and, therefore, is not used in testing a compiler. The testswithdrawn at the time of this validation are given in Appendix D.

1-6

Page 11: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

CHAPTER 2

CONFIGURATION INFORMATION

2.1 CONFIGURATION TESTED

The candidate compilation system for this validation was tested under thefollowing configuration:

Compiler: TeleGen2 VAX/1750a Cross Compilation System,

Version 3.23

ACVC Version: 1.10

Certificate Number: 890710W1.10110

Host Computer:

Machine: MicroVAX II

Operating System: VAX/VMSVersion V5.1

Memory Size: 9 Megabytes

Target Computer:

Machine: MIL-STD-1750a ECSPO ITS Simulator,Version 4.0, executing on the host

Operating System: Bare machine

Memory Size: 64 Kilowords

2-1

Page 12: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

CONFIGURATION INFORMATION

2.2 IMPLEMENTATION CHARACTERISTICS

One of the purposes of validating compilers is to determine the behavior ofa compiler in those areas of the Ada Standard that permit implementationsto differ. Class D and E tests specifically check for such implementationdifferences. However, tests in other classes also characterize animplementation. The tests demonstrate the following characteristics:

a. Capacities.

(1) The compiler correctly processes a compilation containing 723variables in the same declarative part. (See test D29002K.)

(2) The compiler correctly processes tests containing loopstatements nested to 65 levels. (See tests D55AO3A..H (8tests).)

(3) The compiler correctly processes tests containing blockstatements nested to 65 levels. (See test D56001B.)

(4) The compiler correctly processes tests containing recursiveprocedures separately compiled as subunits nested to 17levels. (See tests D64005E..G (3 tests).)

b. Predefined types.

(1) This implementation supports the additional predefined typesLONG INTEGER and LONG FLOAT in package STANDARD. (See testsB860O1T..Z (7 tests).)

c. Expression evaluation.

The order in which expressions are evaluated and the time at whichconstraints are checked are not defined by the language. Whilethe ACVC tests do not specifically attempt to determine the orderof evaluation of expressions, test results indicate the following:

(1) Some of the default initialization expressions for recordcomponents are evaluated before any value is checked formembership in a component's subtype. (See test C32117A.)

(2) Assignments for subtypes are performed with the same precisionas the base type. (See test C35712B.)

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

2-2

Page 13: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

CONFIGURATION INFORMATION

(4) Sometimes NUMERIC ERROR is raised when an integer literaloperand in a comparison or membership test is outside therange of the base type. (See test C45232A.)

(5) NUMERIC ERROR is raised when a literal operand in afixed-point comparison or membership test is outside the rangeof the base type. (See test C45252A.)

(6) Underflow iL not gradual. (See tests C45524A..Z.)

d. Rounding.

The method by which values are rounded in type conversions is notdefined by the language. While the ACVC tests do not specificallyattempt to determine the method of rounding, the test resultsindicate the following:

(1) The method used for rounding to integer is round away fromzero. (See tests C46012A..Z.)

(2) The method used for rounding to longest integer is round awayfrom zero. (See tests C46012A..Z.)

(3) The method used for rounding to integer in static universalreal expressions is round away from zero. (See test C4AOl4A.)

e. Array types.

An implementation is allowed to raise NUMERIC ERROR orCONSTRAINT ERROR for an array having a 'LENGTH that exceedsSTANDARD.INTEGER'LAST and/or SYSTEM.MAXINT.

For this implementation:

(1) Declaration of an array type or subtype declaration with morethan SYSTEM.MAXINT components raises no exception. (See testC36003A.)

(2) NU;NERIC ERROR is raised when 'LENGTH is applied to a nullarray Type with INTEGER'LAST + 2 components. (See testC36202A )

(3) NUME1J -?aROR is raised when 'LENGTH is applied to a nullarray cyoe with SYSTEM.MAXINT + 2 components. (See testC36202B.)

(4) A parked BOOLEAN array having a 'LENGTH exceeding INTEGER'LASTraises NUMERIC ERROR when the array objects are sliced. (Seetest C52103X.)

2-3

Page 14: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

CONFIGURATION INFORMATION

(5) A packed two-dimensional BOOLEAN array with more thanINTEGER'LAST components raises CONSTRAINT ERROR when thelength of a dimension is calculated and exceeds INTEGER'LAST.(See test C52104Y.)

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

(7) In assigning one-dimensional array types, the expression isevaluated in its entirety before CONSTRAINT ERROR is raisedwhen checking whether the expression's subtype is compatiblewith the target's subtype. (See test C52013A.)

(8) In assigning two-dimensional array types, the expression isnot evaluated in its entirety before CONSTRAINT ERROR israised when checking whether the expression's subtype iscompatible with the target's subtype. (See test C52013A.)

f. Discriminated types.

(1) In assigning record types with discriminants, the expressionis evaluated in its entirety before CONSTRAINT ERROR is raisedwhen checking whether the expression's subtype is compatiblewith the target's subtype. (See test C52013A.)

g. Aggregates.

(1) In the evaluation of a multi-dimensional aggregate, indexsubtype checks are made as choices are evaluated. (See testsC43207A and C43207B.)

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

(3) CONSTRIINT ERROR is raised after all choices are evaluatedwhen a bound in a non-null range of a non-null aggregate doesnot belong to an index subtype. (See test E43211B.)

h. Pragmas.

(1) The pragma INLINE is supported for procedures. (See testsLA3004A..B, EA3004C..D, and CA3004E..F.)

2-4

Page 15: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

CONFIGURATION INFORMATION

i. Generics

(1) Generic unit declarations, bodies and subunits can be compiledin separate compilations. (See tests CA1012A and CA3011A.)

(2) If a generic unit body or one of its subunits is compiled orrecompiled after the generic unit is instantiated, the unitinstantiating the generic is made obsolete. The obsolescenceis recognized at binding time, and the binding is stopped.(See tests CA2009C, CA2009F, BC3204C, and BC3205D.)

j. Input and output

(1) The package SEQUENTIAL 10 cannot be instantiated withunconstrained array types or record types with discriminantswithout defaults. (See tests AE2101C, EE2201D, and EE2201E.)

(2) The package DIRECT 10 cannot be instantiated withunconstrained array types or record types with discriminantswithout defaults. (See tests AE2101H, EE2401D, and EE2401G.)

(3) Sequential, Direct, and Text files are not supported by thisimplementation.

2-5

Page 16: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

CHAPTER 3

TEST INFORMATION

3.1 TEST RESULTS

Version 1.10 of the ACVC comprises 3717 tests. When this compiler wastested, 44 tests had been withdrawn because of test errors. The AVFdetermined that 617 tests were inapplicable to this implementation. Allinapplicable tests were processed during validation testing except for 285executable tests that use floating-point precision exceeding that supportedby the implementation and 238 executable tests that use file operations notsupported by the implementation . Modifications to the code, processing,or grading for 8 tests were required to successfully demonstrate the testobjective. (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 TOTALA B C D E L

Passed 127 1129 1723 17 15 45 3056

Inapplicable 2 9 592 0 13 1 617

Withdrawn 1 2 35 0 6 0 44

TOTAL 130 1140 2350 17 34 46 3717

3-1

Page 17: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

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 192 543 496 245 172 99 160 332 132 36 250 325 74 3056

Inappl 20 106 184 3 0 0 6 0 5 0 2 44 247 617

Wdrn 1 1 0 0 0 0 0 2 0 0 1 35 4 44

TOTAL 213 650 680 248 172 99 166 334 137 36 253 404 325 3717

3.4 WITHDRAWN TESTS

The following 44 tests were withdrawn from ACVC Version 1.10 at the time ofthis validation:

E28005C A39005G B97102E C97116A BC3009B CD2A62DCD2A63A CD2A63B CD2A63C CD2A63D CD2A66A CD2A66BCD2A66C CD2A66D CD2A73A CD2A73B CD2A73C CD2A73DCD2A76A CD2A76B CD2A76C CD2A76D CD2A81G CD2A83GCD2A84M CD2A84N CD2B1SC CD2D11B CD5007B CD50110ED7004B ED7005C ED7005D ED7006C ED7006D CD71O5ACD7203B CD7204B CD7205C CD7205D CE2107I CE3111CCE3301A CE3411B

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 of featuresthat a compiler is not required by the Ada Standard to support. Others maydepend on the result of another test that is either inapplicable orwithdrawn. The applicability of a test to an implementation is consideredeach time a validation is attempted. A test that is inapplicable for onevalidation attempt is not necessarily inapplicable for a subsequentattempt. For this validation attempt, 617 tests were inapplicable for thereasons indicated:

a. The following 285 tests are not applicable because they havefloating-point type declarations requiring more digits thanSYSTEM.MAXDIGITS:

C24113F..Y C35705F..Y C35706F..Y C35707F..YC35708F..Y C35802F..Z C45241F..Y C45321F..YC45421F..Y C45521F..Z C45524F..Z C45621F..Z

3-2

Page 18: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

TEST INFORMATION

C45641F..Y C46012F..Z

b. C355081. C35508J, C35508M, and C35508N are not applicable becausethey include enumeration representation clauses for BOOLEAN typesin which the representation values are other than (FALSE => 0,TRUE => I). Under the terms of AI-00325, this implementation isnot required to support such representation clauses.

c. C35702A and B86001T are not applicable because this implementationsupports no predefined type SHORTFLOAT.

d. The following 16 tests are not applicable because thisimplementation does not support a predefined type SHORT-INTEGER:

C45231B C45304B C45502B C45503B C45504BC45504E C45611B C45613B C45614B C45631BC45632B B52004E C55B07B B55BO9D B86001VCD7101E

e. C45231D, B86001X, and CD7101G are not applicable because thisimplementation does not support any predefined integer type with aname other than INTEGER, LONGINTEGER, or SHORTINTEGER.

f. C45531M..P (4 tests) and C45532M..P (4 tests) are not applicablebecause the value of SYSTEM.MAXMANTISSA is less than 47.

g. C86001F is not applicable because, for this implementation, thepackage TEXT 10 is dependent upon package SYSTEM. These testsrecompile package SYSTEM, making package TEXTIO, and hencepackage REPORT, obsolete.

h. B86001Y is not applicable because this implementation supports nopredefined fixed-point type other than DURATION.

i. B8600lZ is not applicable because this implementation supports nopredefined floating-point type with a name other than FLOAT,LONG-FLOAT, or SHORTFLOAT.

j. CA2009C, CA2009F, BC3204C, and BC3205D are not applicable becausethis implementation does not support separate compilation ofgeneric specifications, bodies, and subunits, if an instantiationis given before compilation of its bodies or subunits. Thecreated dependency is detected at bind time.

k. LA3004B, EA3004D, and CA3004F are not applicable because thisimplementation does not support pragma INLINE for functions.

1. CD1009C, CD2A41A..B (2 tests), CD2A41E, and CD2A42A..J (10 tests)are not applicable because this implementation does not supportsize clauses of less than 32 bits for floating point types.

m. CD2A61I and CD2A61J are not applicable because this implementationdoes not support size clauses for array types, which imply

3-3

Page 19: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

TEST INFORMATION

compression, with component types of composite or floating pointtypes. This implementation requires an explicit size clause onthe component type.

n. CD2A71A..D (4 tests), CD2A72A..D (4 tests), CD2A74A..D (4 tests),and CD2A75A..D (4 tests) are not applicable because thisimplementation reouires that a size specification for a recordtype be a multiple -f 16 bits.

o. CD2A84B..I (8 tests) and CD2A84K..L (2 tests) arE not applicablebecause this implementation does not support size clauses of lessthan 16 bits for access types.

p. AE2101C, EE2201D, and EE2201E use instantiations of packageSEQUENTIALIO with unconstrained array types and record types withdiscriminants without defaults. These instantiations are rejectedby this compiler.

q. CE2103A, CE2103B, and CE3107A are not applicable because thisimplementation does not support external file CREATE and OPENoperation. These tests raise the exception USEERROR.

r. AE2101H, EE2401D, and EE2401G use instantiations of packageDIRECT 10 with unconstrained array types and record types withdiscriminants without defaults. These instantiations are rejectedby this compiler.

s. The following 238 tests are inapplicable because sequential, text,and direct access files are not supported:

CE2102A..C(3) CE2102G..H(2) CE2102K CE2102N..Y(12)CE2103C..D(2) CE2104A..D(4) CE2105A..B(2) CE2106A..B(2)2E2107A..H(8) CE2107L CE2108A..B(2) CE2108C..H(6)CE2109A..C(3) CE2110A..D(4) CE2111A..I(9) CE2115A..B(2)CE2201A..C(3) CE2201F..N(9) CE2204A..D(4) CE2205ACE2208B CE2401A..C(3) CE2401E..F(2) CE2401H..L(5)CE2404A..B(2) CE2405B CE2406A CE2407A..B(2)CE2408A..B(2) CE2409A..B(2) CE2410A..B(2) CE2411ACE3102A..B(2) EE3102C CE3102F..H(3) CE3102J..K(2)CE3103A CE3104A..C(3) CE3107B CE3108A..B(2)CE3109A CE3110A CE3111A..B(2) CE3111D..E(2)CE3112A..D(4) CE3114A..B(2) CE3115A EE3203ACE3208A EE3301B CE3302A CE3305ACE3402A EE3402B CE3402C..D(2) CE3403A..C(3)CE3403E..F(2) CE3404B..D(3) CE3405A EE3405BCE3405C..D(2) CE3406A..D(4) CE3407A..C(3) CE3408A..C(3)CE3409A CE3409C..E(3) EE3409F CE3410ACE3410C..E(3) EE341OF CE3411A CE3411CCE3412A EE3412C CE3413A CE3413CCE3602A..D(4) CE3603A CE3604A..B(2) CE3605A..E(5)CE3606A..B(2) CE3704A..F(6) CE3704M..0(3) CE3706DCE3706F..G(2) CE3804A..P(16) CE3805A..B(2) CE3806A..B(2)CE3806D..E(2) CE3806G..H(2) CE3905A..C(3) CE3905L

3-4

Page 20: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

TEST INFORMATION

CE3906A..C(3) CE3906E..F(2)

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 cases wherelegitimate implementation behavior prevents the successful completion of an(otherwise) applicable test. Examples of such modifications include:adding a length clause to alter the default size of a collection; splittinga Class B test into subtests so that all errors are detected; andconfirming that messages produced by an executable test demonstrateconforming behavior that wasn't anticipated by the test (such as raisingone exception instead of another).

Modifications were required for 8 tests.

The following tests were split because syntax errors at one point resultedin the compiler not detecting other errors in the test:

BA3006A BA3006B BA3007B BA3008A BA3008B BA303A

C34005G and C34006D required evaluation modifications because the testsinclude some comparisons that use the 'SIZE attribute under assumptionsthat are not fully supported by the Ada Standard and are subject to ARGreview. Thus, the AVO ruled that an implementation is considered to havepassed these tests if the only REPORT.FAILED output is because of various'SIZE checks. This implementation produced the messages "INCORRECTTYPE'SIZE", "INCORRECT OBJECT'SIZE, and "INCORRECT'BASE'SIZE" for C34005Gand the message "INCORRECT TYPE'SIZE" for C34006D.

3.7 ADDITIONAL TESTING INFORMATION

3.7.1 Prevalidation

Prior to validation, a set of test results for ACVC Version 1.10 producedby the TeleGen2 VAX/1750a Cross Compilation System was submitted to the AVFby the applicant for review. Analysis of these results demonstrated thatthe compiler successfully passed all applicable tests, and the compilerexhibited the expected behavior on all inapplicable tests.

3-5

Page 21: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

TEST INFORMATION

3.7.2 Test Method

Testing of the Tele~en2 VAX/1750a Cross Compilation System using ACVCVersion 1.10 was conducted on-site by z validation team from the AVF. Theconfiguration in which the testing was performed is described by thefollowing designations of hardware and software components:

Host computer: MicroVAX IIHost operating system: VAX/VMS, Version V5.1Target computer: MIL-STD-1750a ECSPO ITS Simulator,

Version 4.0, executing on the hostTarget operating system: Bare machineCompiler: TeleGen2 VAX/1750a Cross Compilation

Version 3.23

A magnetic tape containing all tests except for withdrawn tests and testsrequiring unsupported floating-point precisions was taken on-site by thevalidation team for processing. Tests that make use ofimplementation-specific values were customized before being written to themagnetic tape. Tests requiring modifications during the prevalidationtesting were included in their modified form on the magnetic tape.

The contents of the magnetic tape were loaded directly onto the hostcomputer.

After the test files were loaded to disk, the full set of tests wascompiled and linked on a MicroVAX II, then all executable images were runon a MicroVAX II using MIL-STD-1750a ECSPO ITS Simulator, Version 4.0.Results were printed from the from the host computer.

The compiler was tested using command scripts provided by TeleSoft andreviewed by the validation team. The compiler was tested using all defaultoption settings except for the following:

OPTION EFFECT

BIND Link the test programsRUN Execute the test programs on the simulatorOPTIMIZE Run the optimizer as part of compilationFILE LIST Interrupt input file as a list of files/commandsBATCR Run the tests on the specified batch queueCLEAN Remove temporary files created by the toolTEXT Tests produce text output instead of register outputMONITOR Turn on monitor operation for every toolOPTIONS Use the specified linker options file instead of

default

3-6

Page 22: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

TEST INFORMATION

Tests were compiled, linked, and executed (as appropriate) using 2 or morecomputers. Test output, compilation listings, and job logs were capturedon magnetic tape and archived at the AVF. The listings examined on-site bythe validation team were also archived.

3.7.3 Test Site

Testing was conducted a: San Diego CA and was completed on 10 July 1989.

3-7

Page 23: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX A

DECLARATION OF CONFORMANCE

TeleSoft has submitted the following Declaration ofConformance concerning the TeleGen2 VAX/1750a CrossCozmpilation System.

A-i

Page 24: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

DECLARATION OF CONFORMANCE

DECLARATION OF CONFORMANCE

Compiler Implementor: TeleSoftAda Validation Facility: ASD/SCEL, Wright-Patterson AFB OH 45433-6503Ada Compiler Validation Capability (ACVC) Version: 1.10

Base Configuration

Base Compiler Name: TeleGen2 VAX/1750a Cross Compilation System,Version 3.23Host Architecture ISA: MicroVAX IIHost OS and Version: VAX/VMS, Version V5.1Target Architecture ISA: MIL-STD-1750a ECSPO ITS Simulator,

Version 4.0, executing on the hostTarget OS and Version: Bare machine

Implementor's Declaration

I, the undersigned, representing TeleSoft, have implemented no deliberateextensions to the Ada Language Standard ANSI/MIL-STD-1815A in thecompiler(s) listed in this declaration. I declare that TeleSoft is theowner of record of the Ada language compiler(s) listed above and, as such,is responsible for maintaining said compiler(s) in conformance toANSI/MIL-STD-1815A. All certificates and registrations for Ada languagecompiler(s) listed in this declaration shall be made only in the owner'scorporate name.

I' -

/ , ' . .. .. . Da te :TeleSof t

Raymond A. Parra, Director, Contracts/Legal

Owner's Declaration

I, the undersigned, representing TeleSoft, take full responsibility forimplementation and maintenance of the Ada compiler(s) listed above, andagree to the public disclosure of the final Validation Summary Report. Ideclare that all of the Ada language compilers listed, and theirhost/target performance, are in compliance with the Ada Language StandardANSI/MIL-STD-1815A.

1'

_ _ _ _ _ _Date:TeleSof tRaymond A. Parra, Director, Contracts/Legal

A-2

Page 25: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX B

APPENDIX F OF THE Ada STANDARD

The only allowed implementation dependencies correspond toimplementation-dependent pragmas, to certain machine-dependent conventionsas mentioned in chapter 13 of the Ada Standard, and to certain allowedrestrictions on representation clauses. The implementation-dependentcharacteristics of the TeleGen2 VAX/1750a Cross Compilation System, Version3.23, as described in this Appendix, are provided by TeleSoft. Unlessspecifically noted otherwise, references in this Appendix are to compilerdocumentation and not to this report. Implementation-specific portions ofthe package STANDARD, which are not a part of Appendix F, are:

package STANDARD is

type INTEGER is range -32768 .. 32767;

type LONG INTEGER is range -2147483648 .. 2147483647;

type FLOAT is digits 6 range -1.0479E+38 .. +1.0479E+38;type LONGFLOAT is digits 9 range -1.6891629E+38 .. +1.6891629E+38;

type DURATION is delta 2#1.0#E-14 range -86400.0 .. +86400.0;

end STANDARD;

B-1

Page 26: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F

1. Implementation Dependent Pragmas

pragma CONP'IENT(< string _literal >):It may only appear with.n a compilation unit.

The pragma comment has the effect of embedding the givensequence of characters in the object code of the compilation unit.

pragma LINKNAME(<subprogram _name>, <stringliteral>);It may appear in any declaration section of a unit.This pragma must also appear directly after an interface pragmafor the same <subprogram _name>. The pragma linkname has theeffect of making string_literal apparent to the linker.

pragma INTERRUPT(Function _Mapping);It may only appear immediately before a simple accept statement,a while loop directly enclosing only a single accept statement,or a select statement that includes an interrupt accept alternative.The pragma interrupt has the effect that entry calls to theassociated entry. on behalf of an interrupt, are made with a

reduced call overhead.

pragma IMAGES( < enumerationtype >,Deferred) orpragma IMAG ES(<enumeration _type >,Immediate):It may only appear within a compilation unit.The pragma images controls the creation and allocation ofthe image table for a specified enumeration type. Thedefault is Deferred. which saves space in the literal poolby not creating an image table for an enumeration typeunless the 'Image. 'Value. or 'Width attribute for the typeis used. If one of these attributes is used. an image tableis generated in the literal pool of the compilation unit inwhich the attribute appears. If the attributes are used in

more than one compilation unit. more than one image table isgenerated. eliminating the benefits of deferring the table.

pragma STATEPARTITION-SET;It may appear in library level package specifications only.This pragma identifies the root package of a package familythat is placed into a 1750a address state by the linker.

B-2

Page 27: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

2. Impiementation Dependent Attributes

"Offse Attri ,6e

'Offset along with the attribute 'Address. facilitates machine codeinsertions. For a prefix P that denotes a declared parameter

object. P'Offset yields the statically known portion of the

address of the first of the storage units allocated to P. Thevalue is the object's offset relative to a base register and isof type Long _Integer.

INTEGER ATTRIBUTES

'Extended _Image Attribute

Usage: X'Extended Image(Item.Width.Base.Based,Space-IF Positive)

Returns the image associated with Item as per the Text lo definition.The Text Io definition states that the value of Item is an integerliteral with no underlines, no exponent, no leading zeros(but a single zero for the zero value) and a minus sign if negative.If the resulting sequence of characters to be output has fewer thanWidth characters then leading spaces are first output to make up

the difference. (LRM 14.3.7:10.14.3.7:11)

For a prefix X that is a discrete type or subtype: this attributeis a function that may have more than one parameter. The parameterItem must be an integer value. The resulting string iswithout underlines, leading zeros. or trailing spaces.

B-3

Page 28: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

Parameter Descriptions:

Item -- The u,! - specifies the itcrn that h( wvarit. heimage of and passes It i1111 tile function. Thisparameter is required.

Width -_ The user may specify the minimum number ofcharacters to be in the string that is returned.If no width is specified then the default (0) isassumed.

Base -- The user may specify the base that the image isto be displayed in. If no base is specified thenthe default (10) is assumed.

Based -- The user may specify wheth r he wants the stringreturned to be in base notation or not. If nopreference is specified then the default (false)is assumed.

SpaceIfPositive -- The user may specify whether or not the sign bitof a positive integer is included in the stringreturned. If no preference is specified thenthe default (false) is assumed.

Examples:

Suppose the following subtype was declared:

'Subtype X is Integer Range -10-.16:

Then the following would be true:

X'Extended _iage(5) 11"5"X'Extended _Image(5.Q) = "5"X'Extended _Image(5.2) = " 5"1

X'Extended lmage(5.0.2) 11"101"

X'Extended _lmage(5.4.2) - " 10]"tX'Extended _Image (5.0.2. True) " 2;- 10 1"X'Extended _Image (5.0. 10.F alse) = "5

X'Extended _Image(5.0.1O.False.True) = "5

X'Extended Image(- 1.0, 10. False, False) =-1X'Extended _]Im age(- 1.0. 10. False,True) =-1X'Extended _lmage(- 1. 1. 10. F ase.T rue) =-1X'Extended Ilm age (- 1.0.2.T rue.T rue) ="-2] 1 F;X'Extended _Image(- 1.l10.2.True.True) -2"

B -4

Page 29: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

'Extended Vaiue Attribute

Usage: X'Extended _Value(ltem)

Returns the value associated with Item as per the Text lo definition.

The Text lo definition states that given a string, it reads aninteger value from the beginning of the string. The value returnedcorresponds to the sequence input. (LRM 14.3.7:14)

For a prefix X that is a discrete type or subtype; this attributeis a function with a single parameter. The actual parameter Itemmust be of predefined type string. Any leading or trai,4ngspaces in the string X are ignored. In the case where an illegalstring is passed. a CONSTRAINT ERROR is raised.

Parameter Descriptions:

Item -- The user passes to the function a parameter of thepredefined type string. The type of the returnedvalue is the base type X.

Exampies:

Suppose the following subtype was declared:

Subtype X is Integer Range -10..16;

Then the following would be true:

X'Extended Value("5") = 5

X'Extended Value(" 5") = 5X'Extended Value("2# 101#") 5X'Extended Value("-1") = -X'Extended Value(" -1") = -I

B-5

Page 30: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

Exterided Width Attribute

Usage: X'EXtendecd WNidth(Base.Baised.S pace If Positive)

Returns the width for subty'pe Of X.

For a prefix _X that is a discrete subtype; this attributeis a function that, may' have multiple parameters. This attributeyields the maximum image length over all v'alue~s of the typeor subtype X.

Parameter Descriptions:

Base - The user specifies the base for which the widthwill be calculated. If no base is specifiedthen the default (10) is assumed.

Based -- The user specifies whether the subtype is statedin based notation. If no value for based isspecified then the default (false) is assumed.

SpaceIfPositive -- The user may specify whether or not the sign bitof a positive integer is included in the stringreturned. If no preference is specified then thedefault, (false) is assumed.

E xam pies:

Suppose the following subtype was declared:

Subtype X is Integer Range -10-.16:

Then the foliowing would be true:

X'Extendied Width -3 19 -101"X*Extended Width(10) -3 - "-10"1X'Extended Width(2) -5 -- "10000"X*Extended Width(10.True) = 7- -1010F

X'EXtenoed Width(2,True) - "2*i100004"X'Extended Width (I .False,True) =3 " "16"1X'Extended -Width(I 10.True,False) =7 -"- 10#10: i'VXendledWidth (I0.TrueTrue) -- 7 104 16="X'Extenled Width (2.True.True) = 9 - 210000"X'Ex tended-Width(2.F alse.True) = 6 -"10000"

B -6

Page 31: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

ENUMERATION ATTRIBUTES

'Extended Image Attribute

Usage: X'Extended J-:, _ge(Item.Width.Uppercase)

Returns the image associated with h,em as per the Text lo definition.The Text Io definition states that given an enumeration literal,it will output the value of the enumeration literal (either anidentifier or a character literal). The character case paramCteris ignored for character literals. (LRM 14.3.9:9)

For a prefix X that is a discrete type or subtype; this attributeis a function that may have more that one parameter. The parameterItem must be an enumeration value. The image of an enumerationvalue is the corresponding identifier which may have character caseand return string width specified.

Parameter Descriptions:

Item - The user specifies the item that he wants the image of andpasses it into the function. This parameter is required.

Width -- The user may specify the minimum number of characters tobe in the string that is returned. If no width isspecified then the default (0) is assumed. If the Widthspecified is larger than the image of Item. then thereturn string is padded with trailing spaces: if theWidth specified is smaller than the image of Item thenthe default is assumed and the image of the enumerationvalue is output completely.

Uppercase -- The user may specify whether the returned string is inuppercase characters. In the case of an enumerationtype where the enumeration literals are characterliterals, the Uppercase is ignored and the casespecified by the type definition is taken. If nopreference is specified then the default (true) isassumed.

B-7

Page 32: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

Examples:

Suppose the following types were declared:

Type X is (red, green, blue, purple):Type Y is ('a', 'B', 'c', 'D');

Then the following would be true:

X'Extended lmage(red) = "RED"X'Extended Image(red. 4) = "REDX'Extended Image(red,2) = "RED"X'Extended Image(red.O.false) = "red"X'Extended lmage(red.10.false) = "redY'Extended lmage(a') = "Y'Extended Image('B') --"'B'"

Y'Extended Image('a',6) "'a' "

Y'Extended Image('a'.O,true) = "'

'ExtendedValue Attribute

Usage: X'Extended_Value(Item)

Returns the image associated with Item as per the Text Io definition.The Text lo definition states that it reads an enumeration valuefrom the beginning of the given string and returns the value ofthe enumeration literal that corresponds to the sequence input.(LRM 14.3.9:11)

For a prefix X that is a discrete type or subtype; this attributeis a function with a single parameter. The actual parameter Itemmust be of predefined type string. Any leading or trailingspaces in the string X are ignored. In the case where an illegalstring is passed, a CONSTRAINTERROR is raised.

B-8

Page 33: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

Parameter Descriptions:

Item -- The user passes to the function a parameter of thepredcefined type string. The type of the returnedvalue is the base type of X.

Examples:

Suppose the following type was declared:

Type X is (red, green. blue, purple);

Then the following would be true:

X'Extended _Value("red") = redX'Extended _Value(" green") = greenX'ExtendedValue(" Purple") = purpleX'Extended Value(" GreEn ") = green

'Extended Width Attribute

Usage: X'Extended Width

Returns the width for subtype of X.

For a prefix X that is a discrete type or subtype: this attributeis a function. This attribute yields the maximum image length overa!! values of the enumeration type or subtype X.

Parameter Descriptions:

There are no parameters to this function. This functionreturns the width of the largest (width) enumeration literalin the enumeration type specified by X.

B-9

Page 34: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

Examples:

Suppose the following types were declared:

Type X is (red. green. blue, purple);Type Z is (XI. X12. X123, X1234).

Then the following would be true:

X'Extended Width = 6 -"purple"

Z'Extended Width = 5 -- "X1234"

FLOATING POINT ATTRIBUTES

*ExtendedImage Attribute

Usage: X ExtendedImage(Item,F ore.Aft.Exp.BaseBased)

Returns the image associated with Item as per the Text lo definition.The Text lo definition states that it outputs the value of theparameter Item as a decimal literal with the format defined by theother parameters. If the value is negative then a minus signis included in the integer part of the value of Item. If Expis 0 then the integer part of the output has as many digits asare needed to represent the integer part of the value of Item oris zero if the value of Item has no integer part. (LRM 14.3.8:13.14.3.8:15)

For a prefix X that is a discrete type or subtype: this attributeis a function that may have more than one parameter. The parameterItem must be a Real value. The resulting string iswithout underlines or trailing spaces.

B-10

Page 35: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

Parameter Descriptions:

Item -- The user specifies tie item that he wants the image of andpasses it into the function. This parameter is required.

Fore -- The user may specify the minimum number of characters forthe integer part of the decimal representation in thereturn string. This includes a minus sign if thevalue is negative and the base with the '" if basednotation is specified. If the integer part to be outputhas fewer characters than specified by Fore. then leadingspaces are output first to make up the difference. If noFore is specified then the default (2) value is assumed.

Aft -- The user may specify the minimum number of decimal digitsafter the decimal point to accommodate the precision desired.If the delta of the type or subtype is greater than0.1 then Aft is one. If no Aft is specified then thedefault (X'Digits-1) is assumed. If based notation isspecified the trailing '#' is included in aft.

Exp -- The user may specify the minimum number of digits in theexponent: the exponent consists of a sign and the exponent.possibly with leading zeros. If no Exp is specified thenthe default (3 ) is assumed. If Exp is 0 then no exponentis used.

Base -- The user may specify the base that the image is to bedisplayed in. If no base is specified then the default

(10) is assumed.Based -- The user may specify whether he wants the string returned

to be in based notation or not. If no preference isspecified then the default (false) is assumed.

Examples:

Suppose the following type was declared:

Type X is digits 5 range -10.0 .. 16.0:

Then the following would be true:

B-Il

Page 36: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPEINDIX F, Cont.

X'Extended _lrage(5.O) -"5.0000E,0-0"

X*Extended _lmage,'.O.l) = 5.OOOOE-OO"1)UExterided _lrnage(-5.0.1) ="-5.OOOOE-0O"'

X'Extended Irniag(1 0.2.0) ="5.oE-00"

X'Extended imnage(5.u..0.0U) "5. 0"X'Extended image(5..2.0.0.2) = "101.0"1X'Extended lrnage(5.0.2.0.0.2.T rue) = "2# 101 .0O -X'Ex tended- _mage (5.0.2.2.3,2. True) = "2# 1.1 #E-02"

'Extended -Value Attribute

Usage: VXtended -Value (Itemn)

Returns the value associated with Item as per the Text lo definition.The Text lo definition States that it skips any leading zeros.then reads a plus or minus sign if present then reads the stringaccording to the syntax of a real literal. The return value isthat which corresponds to the sequence input. (LRM 14.3.8:9.14.3.8S: 10)

For a prefix X that is a discrete type or subtype: this attributeis a function with a single parameter. The actual parameter Itemmust be of predefined type string. Any leading or trailingspaces in the string X are ignored. In the case where an illegalst-:ng, is passed. a CONSTRAINT_-ERROR is raised.

Parameter Descriptions:

item -- The user passes to the function a parameter of thepredefined type string. The type of the returnedvalue is the base type of the input string.

Examples:

Suppose the following type was declared:

Type X is digits 5 range -10.0 .. 16.0.

Then the following would be true:

X'Extended _Value("5i.0") =5.0

X'Extended _Valu.'("0.5E1") 5.0X*Extended _Value("2-1 1.01 - E2") = 5.0

B- 12

Page 37: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

'Extended _Digits Attribute

Usage: X*Extended _Digits(Base)

Returns the number of digits using base in the mantissa of modelnumbers of the subtype X.

Parameter Descriptions:

Base - The user may specify the base that the subtype isdefined in. If no base is specified then the default(10) is assumed.

Examples:

Suppose the following type was declared:

Type X is digits 5 range -10.0 .. 16.0;

Then the following would be true:

X'ExtendedDigits = 5

FIXED POINT ATTRIBUTES

'ExtendedImage Attribute

Usage: X'Extended _Image(Item.Fore.Aft.Exp.Base.Based)

Returns the image associated with Item as per the Text lo definition.The Text lo definition states that it outputs the value of theparameter Item as a decimal literal with the format defined by theother parameters. If the value is negative then a minus signis included in the integer part of the value of Item. If Expis 0 then the integer part of the output has as many digits asare needed to represent the integer part of the value of Item oris zero if the value of Item has no integer part. (LRM 14.3.8:13.14.3.8:15)

B-13

Page 38: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

For a prefix X that is a discrete type or subtype: this attributeis a function that may have more than one parameter. The parameterItem must be a Real value. The resulting string iswithout underlines or trailing spaces.

Parameter Descriptions:

Item -- The user specifies the item that he wants the image of andpasses it into the function. This parameter is required.

Fore -- The user may specify the minimum number of characters forthe integer part of the decimal representation in thereturn string. This includes a minus sign if thevalue is negative and the base with the '#' if basednotation is specified. If the integer part to be outputhas fewer characters than specified by Fore, then lr dingspaces are output first to make up the difference. If noFore is specified then the default (2) value is assumed.

Aft -- The user may specify the minimum number of decimal digitsafter the decimal point to accommodate the precision desired.If the delta of the type or subtype is greater than0.1 then Aft is one. If no Aft is specified then thedefault (X'DigiLs-1) is assumed. If based notation isspecified the trailing '#' is included in aft.

Exp -- The user may specify the minimum number of digits in theexponent: the exponent consists of a sign and the exponent.possibly with leading zeros. If no Exp is specified thenthe default (3) is assumed. If Exp is 0 then no exponentis used.

Base -- The user may specify the base that the image is to bedisplayed in. If no base is specified then the default(10) is assumed.

Based -- The user may specify whether he wants the string returnedto be in based notation or not. If no preference isspecified then the default (false) is assumed.

B-14

Page 39: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cant.

7xam.-,ies:

Sunpt- thne foliO i Vpe waE at-clared:

:c is del-,a(.' rangf -10.0 1.0:

Theni the following would be true:

X'Extended lmage(5.O) -"5,OOE.-00"

X'Extended _Image(5.0.1) - "5.00E-00"VXtended _Image(-5.0.1) ="-5.OOE-t-00"

X'Extended lmage(5.0.2.0) -" 5.OE&t-00"X'Extended _lrage(5.0,2.Q.0) = " 5.0"1X'Extended _Image (5.0.2.0,0,2) = "101.0"1X'Extended _lmage(5.0.2.0.0.2.True) = "2*101.0*"X Extended _Image (5.0.2,2.3,2. True) ="2-,1.1#E-tO2"

'Extended Jalue Attribute

Usage: X *Extended Jaiue( Image)

Returns the value associated with Item as per the Text lo definition.The Text lo definition States that it skips any leading zeros.then reads a plus or minus sign if present then reads the stringaccording to the syntax of a real literal. The return value isthat which corresponds to the sequence input. (LRM 14.3.8:9.14.3.8: 10)

For a prefix X that is a discrete type or subtype: this attributeis a function with a sinigle parameter. The actual parameter ItemMust be o preriefined type string. Any leading or trailingspaces in the string X are ignored. In the case where an illegalstring is passed. a CON STRAINT_-ERROR is raised.

Parameter Descriptions:

Image -- The user passes to the function a parameter of thepredefined type string. The type of the returnedvalue is the base type of the input string.

B- 15

Page 40: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

Exampies:

Suppose the following type was declared:

Type X is delta 0.1 range -10.0 .. 17.0:

Then the following would be true:

X'Extended Value("5.0") = 5.0X'Extencied Value("0.5E 1") = 5.0X'Extended Value("2,-l.01=E2") = 5.0

'Extended Fore Attribute

Usage: X'Extended _Fore(Base.Based)

Returns the minimum nur'.ber of characters required for the integerpart of the based represeatation of X.

Parameter Descriptions:

Base -- The user may specify the base that the subtype would bedisplayed in. If no base is specified then the default(10) is assumed.

Based -- The user may specify whether he wants the string returnedto be in based notation or not. If no preference isspecified then the default (false) is assumed.

B-16

Page 41: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

Exampies:

Suppo the following type wa declared:

Type X is delta 0.1 range -10.0 .. 17.1:

Then the following would be true:

X'Extended Fore = I3 -- "-10"

X'Extended Fore(2) = 6 -- " 10001"

'Extended Aft Attribute

Usage: X'Ex tended _Aft (BaseBased)

Returns the minimum number of characters required for the fractionalpart of the based representation of X.

Parameter Descriptions:

Base -- The user may specify the base that the subtype would bedisplayed in. if no base is specified then the default(10) is assumed.

Based -- The user may specify whether he wants the string returnedto be in based notation or not. If no preference isspecined then the default (false) is assumed.

Examples:Suppose the following type was declared:

Type X is delta 0.1 range -10.0 .. 17.1;

Then the following would be true:

X'Extended Aft = I -- "1" from 0.1X'ExtendedAft(2) 4 -- "0001" from 270.0001#

B-17

Page 42: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

3.Specification of Packa2e SYSTI

Package system IF

Type address Is Pri'aLe:null address : Consant address:Subtype physical _address Is long_integer Range 16=0=..j 6- FFFFF#:Subtype target logical address is address:Subtype target _address state Is integer Range 0..15:

Type subprogram _value IsRecord

logical _address target _logical _address;address state target _addres5 state;parameter size natural;static base : target logical _address;

End Record:

Type name Is (telesoftada);

system name : Constant name := telesoft ada:storage unit : Constant : 16:memory size : Constant := 65536:min int : Constant := -(2 " 31);max int : Constant :=2 " 31) - 1:max _digits Constant : 9:max mant;sa : Constant := 31,:fine delta : Constant := 1.0 ' (2 - (max mantissa)):tick : Constant := 0.0001:

Subtype priority Is integer Range 0..31:

max_object size : Constant := max int:max record count : Constant := max int:max text io count : Constant := max int-i:max text io field : Constant := 1000:

Private

Type address Is Access integer:null address : Constant address := null:

End system;

B- 18

Page 43: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

4. Restrictions on Representation Clauses

The Compiler supports the following representation clauses:

Length Clauses: for enumeration and derived integer types 'SIZEattribute (LRM 13.2(a))

Length Clauses: for array types 'SIZE attribute (LRM 13.2(a))Length Clauses: for record types 'SIZE attribute (LRM 13.2(a))

with restriction that simple expression mustbe a multiple of 16.

Length Clauses: for access types 'STORAGE SIZE attritube (LRM13.2(b))Length Clauses: for access types 'SIZE attribute (LRM 13.2(a))

with restriction that simple expression mustbe equal to 16.

Length Clauses: for float types 'SIZE attribute (LRM 13.2(a))with restriction that simple expression mustbe equal to the required hardware length forthe type (32 or 48).

Length Clauses: for tasks types 'STORAGE SIZE attribute (LRM 13.2(c))Length Clauses: for fixed point types 'SMALL attribute (LRM13.2(d))Enumeration Clauses: for character and enumeration types other than

boolean (LRM 13.3)Record representation Clauses (LRM 13.4) with following constraints:

- Each component of the record must bespecified with a component clause.

- Bits are ordered right to left within a byte.Address Clauses: for objects. entries, and external subprograms

(LRM 13.5(a)(c))

This compiler does NOT suppor the following representation clauses:

Enumeration Clauses: for boolean (LRM 13.3)

Address Clauses for packages. task units. or non-external Adasubprograms (LRM1 13.5(b))

5. Implementation dependent naming conventions

There are no implementation-generated names denotingimplementation dependent components.

B-19

Page 44: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX F, Cont.

6. Interpretation of Expressions in Address Clause

Expressions that appear in address specifications are interpretedas the first storage unit of the object.

7. Restrictions on Unchecked Conversions

Unchecked conversions are allowed between any types or subtypes unlessthe target type is an unconstrained record or array type.

8. 10 Package Characteristics

Sequential1 and Direct10 cannot be instantiated forunconstrained array types or unconstrained types with discriminantswithout default values.

External files are not supported. All open and create calls willresult in USE ERROR (LRM 14.2.1 (4)).

Only console I/O (I/O to default device) is supported.

9. Restrictions on Pragma Inline

Pragma inline is only implemented for procedures. A functionname cannot be used as an argument to the inline pragma.

B-20

Page 45: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX C

TEST PARAMETERS

Certain tests in the ACVC make use of implementation-dependent values, suchas the maximum length of an input line and invalid file names. A test thatmakes use of such values is identified by the extension .TST in its filename. Actual values to be substituted are represented by names that beginwith a dollar sign. A value must be substituted for each of these namesbefore the test is run. The values used for this validation are givenbelow.

Name and Meaning Value

SACC SIZE 16An integer literal whose valueis the number of bits sufficientto hold any value of an accesstype.

SBIG IDl (1..199 => 'A', 200 => '1')An identifier the size of themaximum input line length whichis identical to $BIG ID2 exceptfor the last character.

$BIG ID2 (i-199 => 'A', 200 => '2')An identifier the size of themaximum input line length whichis identical to SBIG IDI exceptfor the last character.

$BIG ID3 (1-.99 => 'A', 100 => '3',An identifier the size of the 101..200 => 'A')maximum input line length whichis identical to $BIG ID4 exceptfor a character near the middle.

C-i

Page 46: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

TEST PARAMETERS

Name and Meaning Value

$BIG ID4 (1..99 => 'A', 100 => '4',An identifier the size of the 101..200 => 'A')maximum input line length whichis identical to $BIG ID3 exceptfor a character near the middle.

$BIG INT LIT (1..197 => '0', 198..200 => "298")An integer literal of value 298with enough leading zeroes sothat it is the size of themaximum line length.

$BIG REAL LIT (1..195 => '0', 196..200 => "690.0")2 universal real literal ofvalue 690.0 with enough leadingzeroes to be the size of themaximum line length.

$BIG STRING1 (1 => '"', 2..101 => 'A', 102 => '"')A string literal which whencatenated with BIG STRING2yields the image of BIGIDl.

$BIG STRING2 (I => '"' 2..100 => 'A',A string literal which when 101 => '1', 102 => '"')catenated to the end ofBIG STRING1 yields the image ofBIG-IDI.

$BLANKS (1..180 => 'A sequence of blanks twentycharacters less than the sizeof the maximum line length.

$COUNT LAST 2 147 483 646

"" A universal integer

literal whose value isTEXT IO.COUNT'LAST.

$DEFAULT MEM SIZE 65536An integer literal whose valueis SYSTEM.MEMORYSIZE.

$DEFAULT STOR UNIT 16An integer literal whose valueis SYSTEM.STORAGE UNIT.

C-2

Page 47: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

TEST PARAMETERS

Name and Meaning Value

SDEFAULT SYS NAME TELESOFT ADAThe - value of the constantSYSTEM.SYSTEMNAME.

SDELTA DOC 2#1.0#E-31A real literal whose value isSYSTEM.FINE DELTA.

$FIELDLAST 1000A universal integerliteral whose value isTEXTIO.FIELD'LAST.

$FIXED NAME NOSUCH TYPEThe name of a predefinedfixed-point type other thanDURATION.

$FLOAT NAME NOSUCH TYPEThe name of a predefinedfloating-point type other thanFLOAT, SHORTFLOAT, orLONGFLOAT.

$GREATER THAN DURATION 100_000.0A universal real literal thatlies between DURATION'BASE'LASTand DURATION'LAST or any valuein the range of DURATION.

$GREATER THAN DURATION BASE LAST 131_073.0A universal real literal that isgreater than DURATION'BASE'LAST.

SHIGH PRIORITY 31An integer literal whose valueis the upper bound of the rangefor the subtype SYSTEM.PRIORITY.

$ILLEGAL EXTERNAL FILE NAME1 BADCHAR*'/%An external file name whichcontains invalid characters.

$ILLEGAL EXTERNAL FILE NAME2 /NONAME/DIRECTORYAn -external- file name whichis too long.

$INTEGER FIRST -32768A universal integer literalwhose value is INTEGER'FIRST.

C-3

Page 48: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

TEST PARAMETERS

Name and Meaning Value

SINTEGER LAST 32767A universal integer literalwhose value is INTEGER'LAST.

SINTEGER LAST PLUS 1 32768A universal - integer literalwhose value is INTEGER'LAST + 1.

$LESS THAN DURATION -100_000.0A universal real literal thatlies between DURATION'BASE'FIRSTand DURATION'FIRST or any valuein the range of DURATION.

$LESS THAN DURATION BASE FIRST -131 073.0A universal real literal that isless than DURATION'BASE'FIRST.

SLOW PRIORITY 0An integer literal whose valueis the lower bound of the rangefor the subtype SYSTEM.PRIORITY.

SMANTISSA DOC 31An integer literal whose valueis SYSTEM.MAXMANTISSA.

SMAX DIGITS 9Maximum digits supported forfloating-point types.

SMAX IN LEN 200Maximum input line lengthpermitted by the implementation.

SMAX INT 2147483647j universal integer literalwhose value is SYSTEM.MAXINT.

SMAX INT PLUS 1 2147483648X universal integer literalwhose value is SYSTEM.MAXIhT+1.

SMAX LEN INT BASED LITERAL (1.2 => "2:", 3..197 = '0',1 universal - integer based 198..200 -> "11:")literal whose value is 2#11#with enough leading zeroes inthe mantissa to be MAX INLENlong.

C-4

Page 49: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

TEST PARAMETERS

Name and Meaning Value

SMAX LEN REAL BASED LITERAL (1..3 => "16:", 4..196 => '0',; universal real based literal 197..200 => "F.E:")whose value is 16:F.E: withenough leading zeroes in themantissa to be MAX IN LEN long.

SMAX STRING LITERAL ( = > '"', 2..199 => 'C', 200 => '"')

A string literal of sizeMAX IN LEN, including the quotecharacters.

SMIN INT -2147483648universal integer literal

whose value is SYSTEM.MININT.

$MIN TASK SIZE 16An integer literal whose valueis the number of bits requiredto hold a task object which hasno entries, no declarations, and"NULL;" as the only statement inits body.

$NAME NO SUCH TYPE AVAILABLEA name of a predefined numerictype other than FLOAT, INTEGER,SHORT FLOAT, SHORT INTEGER,LONGFLOAT, or LONGINTEGER.

$NAME LIST TeleSoftADAA list of enumeration literalsin the type SYSTEM.NAME,separated by commas.

$NEG BASED INT 16#FFFFFFFE#based integer literal whose

highest order nonzero bitfalls in the sign bitposition of the representationfor SYSTEM.MAXINT.

$NEW MEM SIZE 65536An integer literal whose valueis a permitted argument forpragma MEMORY SIZE, other than$DEFAULT HEM SIZE. If there isno other value, then useSDEFAULT MEM SIZE.

C-5

Page 50: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

TEST PARAMETERS

Name and Meaning Value

SNEW STOR UNIT 16An integer literal whose valueis a permitted argument forpragma STORAGE UNIT, other thanSDEFAULT STOR _NIT. If there isno other permitted value, thenuse value of SYSTEM.STORAGEUNIT.

SNEW SYS NAME TELESOFTADA; value of the type SYSTEM.NAME,other than $DEFAULT SYS NAME. Ifthere is only one value-of thattype, then use that value.

$TASK SIZE 16An integer literal whose valueis the number of bits requiredto hold a task object which hasa single entry with one 'IN OUT'parameter.

STICK 0.0001A real literal whose value isSYSTEM.TICK.

C-6

Page 51: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

APPENDIX D

WITHDRAWN TESTS

Some tests are withdrawn from the ACVC because they do not conform to theAda Standard. The following 44 tests had been withdrawn at the time ofvalidation testing for the reasons indicated. A reference of the formAI-ddddd is to an Ada Commentary.

a. E28005C: This test expects that the string "-- TOP OF PAGE. --63" ofline 204 will appear at the top of the listing page due to a pragmaPAGE in line 203; but line 203 contains text that follows the pragma,and it is this text that must appear at the top of the page.

b. A39005G: This test unreasonably expects a component clause to pack anarray component into a minimum size (line 30).

c. B97102E: This test contains an unintended illegality: a selectstatement contains a null statement at the place of a selective waitalternative (line 31).

d. C97116A: This test contains race conditions, and it assumes thatguards are evaluated indivisibly. A conforming implementation may useinterleaved execution in such a way that the evaluation of the guardsat lines 50 & 54 and the execution of task CHANGING OF THE GUARDresults in a call to REPORT.FAILED at one of lines 52 or 56. -

e. BC3009B: This test wrongly expects that circular instantiations willbe detected in several compilation units even though none of the unitsis illegal with respect to the units it depends on; by AI-00256, theillegality need not be detected until execution is attempted (line95).

f. CD2A62D: This test wrongly requires that an array object's size be nogreater than 10 although its subtype's size was specified to be 40(line 137).

g. CD2A63A..D, CD2A66A..D, CD2A73A..D, and CD2A76A..D (16 tests): These

D-1

Page 52: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

WITHDRAWN TESTS

tests wrongly attempt to check the size of objects of a derived type(for which a 'SIZE length clause is given) by passing them to aderived subprogram (which implicitly converts them to the parent type(Ada standard 3.4:14)). Additionally, they use the 'SIZE lengthclause and attribute, whose interpretation is considered problematicby the WG9 ARG.

h. CD2A81G, CD2A83G, CD2A84M..N, and CD50110 (5 tests): These testsassume that dependent tasks will terminate while the main programexecutes a loop that simply tests for task termination; this is notthe case, and the main program may loop indefinitely (lines 74, 85,86, 96, and 58, respectively).

i. CD2B15C and CD7205C: These tests expect that a 'STORAGE SIZE lengthclause provides precise control over the number of designated objectsin a collection; the Ada standard 13.2:15 allows that such controlmust not be expected.

j. CD2DIlB: This test gives a SMALL representation clause for a derivedfixed-point type (at line 30) that defines a set of model numbers thatare not necessarily represented in the parent type; by CommentaryAI-00099, all model numbers of a derived fixed-point type must berepresentable values of the parent type.

k. CD5007B: This test wrongly expects an implicitly declared subprogramto be at the address that is specified for an unrelated subprogram(line 303).

1. ED7004B, ED7005C..D, and ED7006C..D (5 tests): These tests checkvarious aspects of the use of the three SYSTEM pragmas; the AVOwithdraws these tests as being inappropriate for validation.

m. CD71O5A: This test requires that successive calls to CALENDAR.CLOCKchange by at least SYSTEM.TICK; however, by Commentary AI-00201, it isonly the expected frequency of change that must be at leastSYSTEM.TICK--particular instances of change may be less (line 29).

n. CD7203B and CD7204B: These tests use the 'SIZE length clause andattribute, whose interpretation is considered problematic by the WG9ARG.

o. CD7205D: This test checks an invalid test objective: it treats thespecification of storage to be reserved for a task's activation asthough it were like the specification of storage for a collection.

p. CE21071: This test requires that objects of two similar scalar typesbe distinguished when read from a file--DATA ERROR is expected to beraised by an attempt to read one object as of the other type.However, it is not clear exactly how the Ada standard 14.2.4:4 is tobe interpreted; thus, this test objective is not considered valid(line 90).

D-2

Page 53: NESUw 3ALFE' C~ AA · passed if no errors are detected at compile time and the program executes to produce a PASSED message. Class B tests check that a compiler detects illegal language

WITHDRAWN TESTS

q. CE3111C: This test requires certain behavior, when two files areassociated with the same external file, that is not required by theAda standard.

r. CE3301A: This test contains several calls to END OF LINE andENDOFPAGE that have no parameter: these calls were intended tospecify a file, not to refer to STANDARDINPUT (lines 103, 107, 118,132. and 136).

s. CE3.IlB: This test requires that a text file's column number be set toCOUNT'LAST in order to check that LAYOUT ERROR is raised by asubsequent PUT operation. But the former operation will generallyraise an exception due to a lack of available disk space, and the testwould thus encumber validation testing.

D-3