Submitted Tests for Possible Inclusion
in the ACATS
Tests indexed on this page have been submitted by Ada implementers and users
for possible inclusion in future versions of the Ada Conformity Assessment Test
Suite (ACATS). Many of these tests test features of Amendment 1
to the Ada 95 Standard. These tests are provided as a service to the Ada community.
Test names and objectives are as described by the original author. The tests
can be downloaded in ZIP files, accessed individually through
the Version Control System, or accessed individually from the
indexes of objectives. The objectives are organized by the
subclause numbers (as given in
Amendment 1, in the case of tests for Amendment features) and by
AI numbers (for tests inspired by Amendment 1 or Corrigendum 1
changes).
Use these tests at your own risk! The ACAA has not
checked any of these tests. No matter what the tests say internally (many use
the standard ACATS boilerplate text), these tests are not part of the
ACATS test suite, and are not required for conformity assessments. If or when
a test does become part of the test suite, it may be renamed or modified
extensively. These tests are provided as is. Tests may be incorrect, not
portable, or fail to properly test the stated objective.
The ACAA will remove tests from this database only if the test is used as the
basis of an ACATS test with a substantially similar objective and design. We'll
remove tests so that tests that have no appreciable value over those which are part
of the ACATS are potentially wasting the time of the users of this set of tests.
However, if tests check test cases not in the ACATS or have a structure very
different than those in the ACATS, they will
be left here so the Ada community can have additional tests to use for checking
implementations.
Please tell us about problems with these tests. Comments and questions on any
of these tests should be sent to the ACAA Technical Agent,
agent@ada-auth.org.
Interested in submitting tests for future use in the ACATS? Test should be
created following the rules of ACATS tests as described in the
ACATS User Guide, Appendix E.
Contact the ACAA Technical
Agent (agent@ada-auth.org) for
more information.
ZIP files provide a convenient way to download all of the submitted tests for
a section of the standard. The description of each file includes an estimate of
its size and last modification date.
All submitted tests - SUB-ALL.ZIP (334K - 2006-01-11) (contains the ZIP files below)
Section 2 B-Tests - SUB-B2.ZIP ( 1K - 2005-01-17)
Section 3 B-Tests - SUB-B3.ZIP ( 65K - 2006-01-10)
Section 3 C-Tests - SUB-C3.ZIP ( 90K - 2006-01-11)
Section 4 B-Tests - SUB-B4.ZIP ( 6K - 2006-01-11)
Section 4 C-Tests - SUB-C4.ZIP ( 29K - 2005-12-27)
Section 6 B-Tests - SUB-B6.ZIP ( 5K - 2005-01-13)
Section 6 C-Tests - SUB-C6.ZIP ( 2K - 2005-01-12)
Section 7 B-Tests - SUB-B7.ZIP ( 15K - 2006-01-11)
Section 7 C-Tests - SUB-C7.ZIP ( 5K - 2006-01-11)
Section 8 B-Tests - SUB-B8.ZIP ( 21K - 2005-01-13)
Section 8 C-Tests - SUB-C8.ZIP ( 5K - 2005-01-13)
Section 9 B-Tests - SUB-B9.ZIP ( 5K - 2006-01-11)
Section 9 C-Tests - SUB-C9.ZIP ( 14K - 2006-01-11)
Section 10 B-Tests - SUB-BA.ZIP ( 24K - 2006-01-10)
Section 10 C-Tests - SUB-CA.ZIP ( 18K - 2006-01-10)
Section 12 B-Tests - SUB-BC.ZIP ( 7K - 2005-01-13)
Section 12 C-Tests - SUB-CC.ZIP ( 6K - 2005-01-13)
Section 13 B-Tests - SUB-BD.ZIP ( 3K - 2005-01-17)
Section 13 C-Tests - SUB-CD.ZIP ( 1K - 2005-01-17)
Annex A B-Tests - SUB-BXA.ZIP ( 2K - 2005-12-29)
Annex A C-Tests - SUB-CXA.ZIP ( 6K - 2006-01-11)
Annex B B-Tests - SUB-BXB.ZIP ( 6K - 2006-01-11)
Annex B C-Tests - SUB-CXB.ZIP ( 15K - 2006-01-11)
Annex D L-Tests - SUB-LXD.ZIP ( 3K - 2005-12-29)
Annex G C-Tests - SUB-CXG.ZIP ( 2K - 2005-12-27)
Annex H L-Tests - SUB-LXH.ZIP ( 2K - 2005-12-29)
Submitted Tests
Version Control System
The submitted tests are stored in a version control system which is available on
this web site. You can retrieve any version of an individual test file.
Once in the VCS, you can browse the file hierarchy by picking directories
(which have slashes after them, e.g. src/). If you pick a file,
you will see the revision history for that file. Selecting
a revision number or name will download that revision of the file. There
is a link at each revision to display differences between that revision
and the previous one, and a form at the bottom of the page that allows
you to display differences between arbitrary revisions. Items marked as
being in the Attic are deleted. Deleted items are still available
in case they are needed when looking at a previous version of a test.
Test Files in the VCS are stored based on the Standard section that they
are testing, separated by test class. For instance, test BY40001.A can be
found in the directory (folder) B4. Foundations and documentation are found
with the associated tests.
Click here to enter the version
control system.
- B28002A.A
Check that Pragma_Argument_Associations without a Pragma_Argument_Identifier shall
precede any associations with a Pragma_Argument_Identifier.
- B313001.A (Amendment 1)
Check that a null_procedure_declaration may not be declared at library level.
- BY30029.A (Amendment 1)
Check limited in derived and private types.
- BY30031.A (Amendment 1)
Check limited in derived and private types when the parent type is generic.
- CY30044.A (Amendment 1)
Check that a limited interface can be used as a progenitor of a non-limited type.
- CY30044.A (Amendment 1)
Check that a limited interface can be used as a progenitor of a non-limited type.
- CY30045.A (Amendment 1)
Check limited in derived and private types, with the ancestors being formal types.
- C35802A.DEP (Corrigendum 1)
Check that if Short_Float'Machine_Radix is a power of 10, Short_Float'Digits is equal
to Short_Float'Model_Mantissa.
- C35802B.ADA (Corrigendum 1)
Check that if Float'Machine_Radix is a power of 10, Float'Digits is equal
to Float'Model_Mantissa.
- C35802C.DEP (Corrigendum 1)
Check that if Long_Float'Machine_Radix is a power of 10, Long_Float'Digits is equal
to Long_Float'Model_Mantissa.
- B35A02A.ADA (Corrigendum 1)
Check that 'Small cannot be specified for derived fixed point types and
for decimal fixed point types.
- C36022A.ADA (Corrigendum 1)
Check that per-object expressions are evaluated as specified for entry
families and protected components.
- C36022B.ADA (Corrigendum 1)
Check that per-object expressions are evaluated as specified for entry
families and protected components.
- CY30001.A (Amendment 1)
Check AI-230 (Generalized use of anonymous access types).
- B37008A.ADA (Corrigendum 1)
Check that unknown_discriminant_parts are not allowed on generic formal
types that are either array types or elementary types.
- C38018A.ADA (Corrigendum 1)
Check that checks are made properly when a per-object expression contains
an attribute whose prefix denotes the current instance of the type.
- C38018B.ADA (Corrigendum 1)
Check that an expression in a per-object discriminant constraint which is
part of a named association is evaluated once for each association.
- B391001.A
Check that:
A discriminant on a tagged type is not allowed to have a default.
Private record extension is not allowed to be declared
immediately within a subprogram declarative region.
Record extension of a nonlimited type does not allow limited
components.
A record extension may not be declared in a nested package where
it is not accessible from the declaration of its parent type.
Record extension does not allow repeating identifiers used in
the parent declaration.
- B394001.A (Amendment 1)
Check that if a private extension is derived only from interface types, the full
view may also be derived from an additional non-interface type. Check that the
rules in 7.3 regarding private extensions and interface ancestors are still
satisfied when the full view has a non-interface parent. (AI-396 plus AI-401).
- BY30005.A (Amendment 1)
Check abstract interfaces.
- BY30006.A (Amendment 1)
Check task interfaces.
- BY30007.A (Amendment 1)
Check protected interfaces.
- BY30008.A (Amendment 1)
Check synchronized interfaces.
- BY30009.A (Amendment 1)
Check limited interfaces.
- BY30010.A (Amendment 1)
Check task interfaces with private extensions.
- BY30011.A (Amendment 1)
Check protected interfaces with private extensions.
- BY30012.A (Amendment 1)
Check synchronized interfaces with private extensions.
- BY30013.A (Amendment 1)
Check interfaces with generics.
- BY30014.A (Amendment 1)
Check interfaces with generics.
- BY30015.A (Amendment 1)
If an inherited subprogram is implemented by a protected procedure or
an entry, then the first parameter of the inherited subprogram shall be
of mode OUT or IN OUT, or an access-to-variable parameter. Therefore
none of the protected types declared in this program cover the
primitives of the interface.
- BY30016.A (Amendment 1)
Check that the primitives of a protected interface cannot be covered
simultaneously by
- protected subprograms and
- subprograms declared
outside of the protected type.
- BY30017.A (Amendment 1)
Check that the private data of the protected type is not visible in the
subprograms covering a protected interface that are declared outside of
the protected type.
- BY30018.A (Amendment 1)
If an inherited subprogram is implemented by a protected procedure or
an entry, then the first parameter of the inherited subprogram shall be
of mode OUT or IN OUT, or an access-to-variable parameter. Therefore
none of the protected types declared in this program cover the
primitives of the interface.
- BY30019.A (Amendment 1)
Check that the primitives of a protected interface cannot be covered
simultaneously by
- protected subprograms and
- subprograms declared
outside of the protected type.
- CY30008.A (Amendment 1)
This test checks abstract interfaces in which the mode of the
controlling argument of all the primitives is in.
- CY30009.A (Amendment 1)
This test checks abstract interfaces in which the mode of the
controlling argument of all the primitives is in out.
- CY30010.A (Amendment 1)
This test checks abstract interfaces in which the mode of the
controlling argument of all the primitives is out.
- CY30011.A (Amendment 1)
This test checks abstract interfaces in which the mode of the
controlling argument of all the primitives is access.
- CY30012.A (Amendment 1)
Check the equality operator applied to class-wide
interfaces and the membership test applied to interfaces.
- CY30014.A (Amendment 1)
Check private types and interfaces.
- CY30014.A (Amendment 1)
Check private types and interfaces.
- CY30015.A (Amendment 1)
This test checks a type implementing two interfaces that have exactly
the same primitives.
- CY30016.A (Amendment 1)
Check interfaces with discriminants.
- CY30017.A (Amendment 1)
This test checks task interfaces in which the mode of the
controlling argument of all the primitives is in out
- CY30018.A (Amendment 1)
This test checks protected interfaces in which the mode of the
controlling argument of all the primitives is in out
- CY30019.A (Amendment 1)
This test checks synchronized interfaces in which the mode of the
controlling argument of all the primitives is in out
- CY30020.A (Amendment 1)
Test limited interfaces used as the progenitor of task types.
- CY30021.A (Amendment 1)
Similar to test CY30020 but the two tasks implementing the
interface are in the same package. This is done to check
that there is no conflict with the names of the dispatching
subprograms corresponding to the entries of the two tasks.
- CY30022.A (Amendment 1)
Test limited interfaces used as the progenitor of protected types.
- CY30023.A (Amendment 1)
Similar to test CY30022 but the two tasks implementing the
interface are in the same package. This is done to check
that there is no conflict with the names of the dispatching
subprograms corresponding to the entries of the two tasks.
- CY30024.A (Amendment 1)
Similar to test CY30022 but using access types.
- CY30025.A (Amendment 1)
Similar to previous tests but using access types.
- CY30026.A (Amendment 1)
Test based on the example in AI-345.
- CY30027.A (Amendment 1)
Test task interfaces with private extensions.
- CY30028.A (Amendment 1)
Test protected interfaces with private extensions.
- CY30029.A (Amendment 1)
Test synchronized interfaces with private extensions.
- CY30030.A (Amendment 1)
Check interfaces with generics.
- CY30031.A (Amendment 1)
Check task interfaces with generics.
- CY30032.A (Amendment 1)
Protected interfaces and parameter modes.
- CY30033.A (Amendment 1)
Check protected types: interface primitives overriden by means of
- protected entries and
- normal subprograms.
- CY30034.A (Amendment 1)
This test checks the usage of subprograms to cover interface primitives.
- CY30035.A (Amendment 1)
Check protected interfaces overriding function primitives.
- CY30036.A (Amendment 1)
Check task interfaces.
- CY30037.A (Amendment 1)
Check the usage of subprograms to cover task interface primitives.
- CY30038.A (Amendment 1)
Check controlled private types and interfaces.
- CY30039.A (Amendment 1)
Check controlled private types and interfaces.
- CY30041.A (Amendment 1)
Check dispatching calls through interfaces.
- CY30042.A (Amendment 1)
Check Size of classwide types.
- BY30002.A (Amendment 1)
Check AI-231: Null-Excluding access subtypes.
- BY30003.A (Amendment 1)
Check AI-231: access-to-constant parameters.
- CY30003.A (Amendment 1)
Check AI-231 (Null-Excluding access subtypes).
- CY30005.A (Amendment 1)
Check AI-254: Anonymous access to protected subprograms.
- CY30006.A (Amendment 1)
Check AI-254 combined with AI-231 (Anonymous access to null-excluding subprogram types).
- CY30007.A (Amendment 1)
Check AI-254 combined with AI-231 (Anonymous access to null-excluding
protected subprogram types).
- CY30040.A (Amendment 1)
Check null-excluding access subtypes.
- B3A10010.A,
B3A10011.A,
B3A10012.A,
B3A10013.A,
B3A10014.A,
B3A10015.A,
B3A10016.A,
B3A10017.A,
B3A10018.A,
B3A10019.A,
B3A1001A.A,
B3A1001B.A,
B3A1001C.AM (Amendment 1)
Check that incomplete types (including those exported by a limited view)
behave as expected. The various children of this package correspond to
the ARG meetings where various examples have been discussed. Some of the
examples have been corrected to reflect the final wording of the RM.
- B3A1002.A (Amendment 1)
Check that an incomplete type exported by a limited view does not becomes
complete too early.
- B3A1401.ADA (Amendment 1)
Check that if an incomplete type declaration includes the keyword
tagged, then the full type declaration that complete it shall
declare a tagged type.
Case of normal (i.e., non Taft-amendment) types declared in both parts
of a package specification.
- B3A1402.ADA (Amendment 1)
Check that if an incomplete type declaration includes the keyword
tagged, then the full type declaration that complete it shall
declare a tagged type.
Case of Taft-amendment types, and of types declared in bodies and blocks.
- B3A1801.ADA (Amendment 1)
Check the legal and illegal uses of tagged incomplete types.
- B3A1E01.ADA (Amendment 1)
Check that a dereference may be of an incomplete type, but that a prefix may not.
- B3A200X.A (Amendment 1)
Check dangling references as suggested in AI-229.
- B3A2016.A (Amendment 1)
Check that the type of the prefix of X'Access is used to resolve
the expected type (both for X as an object and as a subprogram).
Check that different access-to-subprogram types with the same accessed
profile do not match.
- BY30004.A (Amendment 1)
Check AI-254 (Anonymous access to subprograms). [Profile errors in 'Access.]
- C3A200X.A (Amendment 1)
The revised 3.10.2(2) says that the expected type of an 'Access or
'Unchecked_Access attribute is a single access type whose designated
type covers the prefix. This rule change allows a variety of
interesting overloading scenarios.
This test is intended to insure that expressions allowed by the new
rule are resolved and implemented properly.
- CY40012.A (Amendment 1)
This test checks basic combinations of the object.operation notation
plus its usage combined with record components.
- CY40014.A (Amendment 1)
Check implicit dereference. Test based on the example described
in AI-00252.TXT.
- BY40001.A (Amendment 1)
Check AI-287 for record aggregates. This test checks that the box can not be used
in positional aggregates.
- CY40003.A (Amendment 1)
Check AI-287 for record aggregates. This test checks that the box can be used for
the default initialization of non-limited records (including allocated records.
- CY40007.A (Amendment 1)
Check AI-287 for record aggregates. Check allocators.
- CY40008.A (Amendment 1)
Check AI-287 for record aggregates. This test checks discriminants in records
with limited components.
- CY40009.A (Amendment 1)
Check AI-287 for record aggregates. Checks default initialization of deferred
constants.
- CY40010.A (Amendment 1)
Check AI-287 for record aggregates. Checks default initialization of deferred
constants in library packages.
- CY40011.A (Amendment 1)
Check AI-287 for record aggregates. This test checks limited aggregates used in
the instantiation of generic packages.
- BY40002.A (Amendment 1)
Check AI-287. This test checks that:
- The box can be used when no default initialization is available
- Default initialized components have default initialization value
- If the discrete choice others is used for the default initialization
of components, it must cover at least one component
- CY40001.A (Amendment 1)
Check AI-287 for array aggregates. This test checks that the box can be used for
the default initialization of non-limited unidimensional arrays (including
allocated arrays).
- CY40002.A (Amendment 1)
Check AI-287 for array aggregates. This test checks that the box can be used for the default
initialization of non-limited bidimensional arrays (including
allocated arrays).
- C45232A.ADA (Corrigendum 1)
Check that "=" for all language-defined nonlimited types behaves as if it
is predefined for composition and generic formal type purposes.
- CY30002.A (Amendment 1)
Check AI-230 (Generalized use of anonymous access types).
Check renaming declarations plus the new predefined equality operator
for access types. It is based on the example described in AI-230.
- BY30030.A (Amendment 1)
Check static matching rules for anonymous access-to-object types.
- B648001.A (Amendment 1)
Check that an abstract nondispatching operation is not considered for
name resolution.
Check cases that would be ambiguous in Ada 95.
- CY60001.A (Amendment 1)
Check AI-310 (Abstract nondispatching subprograms during overloading)
Test based on the example described in AI-310.
- B730007.A
Check that if the ancestor subtype of a private extension
has constrained discriminants, then the parent subtype of
the full view shall impose a statically matching constraint
on those discriminants.
- C730005.A
Check that a subtype of a private type is allowed, where the
full type has a discriminant.
- BY30025.A
Check the no hidden interfaces rule.
- BY30027.A
Check the no hidden interfaces rule.
- BY30028.A
Check the no hidden interfaces rule.
- CY30046.A
Check the no hidden interfaces rule.
- B73106A.ADA (Corrigendum 1)
Check that operations of a type are not declared in an inner declarative
region.
- B74001A.ADA
For non-generic packages and subprograms:
- Check that a (limited or non-limited) private type definition cannot appear
in the private part of a package spec, in a pacakge body, a subprogram, a block,
or a task body.
- Check that the full definition of a private type cannot appear in the visible
part, and cannot be omitted from the package specification (even if it is provided
in the package body). [Added access discriminant case.]
- Check that the full declaration of a private type cannot appear in the private
part of a nested or enclosing package spec.
- C76004A.DEP (Corrigendum 1)
Check that Ada.Finalization is a remote types package.
- C76114A.ADA (Corrigendum 1)
Check that it is not a bounded error for an explicit call to Adjust or
Finalize to propagate an exception. Note: (RLB, 3/15/01) Existing test C760010
already checks this.
- C82001A.A
Check that a generic subprogram's identifier can be used in its instantiation.
- B83011A.ADA
Check that within the declaration of an object, number, type, subtype, formal
parameter of a subprogram or entry, or generic formal parameter, the declared
entity is not visible, either directly or by selection. Include checks of
renaming declaration for objects, exceptions, and packages. (Added test cases.)
- B832603.A (Amendment 1)
Check the legality of overriding indicators for proper bodies, stubs and
renaming-as-bodies. Use type derivation, either directly or through a
private type, in which case the specification and body may know different
things about overriding.
- B832604.A (Amendment 1)
Check the legality of overriding indicators in cases involving predefined
operators and enumeration literals.
- B832606.A (Amendment 1)
Check the legality of overriding indicators in the presence of generic
units and instantiations.
- B832607.A (Amendment 1)
Check the legality of overriding indicators in a case where
a subprogram is primitive for more than one type.
- B84007A.ADA
Check that the names made visible by a use clause are not made visible until
after the end of the use clause. (Added cases for "=".)
- B84007B.ADA
Check that logical operators in modular types declared in a package are not
made visible until after the end of a use clause for the package.
- BY30001.A (Amendment 1)
Check generalized use of anonymous access to constants (AI-230
plus AI-231). (Many renames cases; and some accessibility checks.)
- CY30001.A (Amendment 1)
Check AI-230 (Generalized use of anonymous access types).
- CY30002.A (Amendment 1)
Check AI-230 (Generalized use of anonymous access types).
Check renaming declarations plus the new predefined equality operator
for access types. It is based on the example described in AI-230.
- B854002.A
Check renaming of attribute function for extraneous parameters.
- C854001.A
Check that a subprogram declaration can be completed by a
subprogram renaming declaration. In particular, check that such a
renaming-as-body can be given in a package body to complete a
subprogram declared in the package specification. Check that calls
to the subprogram invoke the body of the renamed subprogram. Check
that a renaming allows a copy of an inherited or predefined subprogram
before overriding it later. Check that renaming a dispatching
operation calls the correct body in case of overriding. (Added test case with
default parameters.)
- C85408A.ADA (Corrigendum 1)
Check that a legal circular renaming-as-body is a bounded error and raises
Program_Error or Storage_Error or goes infinitely recursive.
- B87B26A.ADA
Check that the meaning of the prefix of an attribute must be
determinable independently of the attribute designator and
independently of the fact that it is the prefix of an attribute.
In particular, check that the following legality constraints are
not used for overloading resolution:
- For 'Size, 'First_Bit, 'Last_Bit, and 'Position, the requirement that the
prefix denote an object rather than a value is not used for overloading resolution.
The attribute 'Size is not being tested yet.
- For 'Callable and 'Terminated, the requirement that the prefix be appropriate
for a task type is not used for overloading resolution.
- For 'First, 'First(N), 'Last, 'Last(N), 'Lenght,
'Length(N), 'Range, and 'Range(N), the requirement that the prefix be
appropriate for an array type is not used for overloading resolution.
- Even though the prefix of the attribute 'Count must denote an entry of
a task, this information is not used to resolve any overloaded constituents of
the prefix. (Added test case.)
- CY30043.A (Amendment 1)
Check dispatching in interfaces operations "implemented by" task entries and protected operations.
- CY30043.A (Amendment 1)
Check dispatching in interfaces operations "implemented by" task entries and protected operations.
- BY30020.A (Amendment 1)
Check parsing of entry declarations with
overriding indicator in the context of task types.
- BY30021.A (Amendment 1)
Recognition of incorrect overriding / not overriding
entries or subprograms in the context of protected types.
Recognition of incorrect overriding / not overriding
entries in the context of task types.
- BY30024.A (Amendment 1)
Recognition of incorrect overriding / not overriding
entries or subprograms in the context of protected types.
Recognition of incorrect overriding / not overriding
entries in the context of task types. Specialized cases for null procedures.
- CY30047.A (Amendment 1)
Recognition of correct overriding / not overriding
entries or subprograms in the context of protected types.
Recognition of correct overriding / not overriding
entries in the context of task types.
- CY30048.A (Amendment 1)
Recognition of correct overriding / not overriding
entries or subprograms in the context of protected types.
Recognition of correct overriding / not overriding
entries in the context of task types.
- C96026A.ADA (Corrigendum 1)
Check that Month, Day and Seconds raise Time_Error when Year_Number is
out of range.
- CY80001.A (Amendment 1)
Check entries renamed as procedures used in select statements.
- CY90001.A (Amendment 1)
Check dispatching interface procedures used in select statements.
- CY90003.A (Amendment 1)
Check dispatching interface procedures used in select statements.
- BA1101G.ADA
Check that a Use_Clause cannot mention a name made visible by a preceding
Use_Clause in the same context specification (including a child unit).
- BY100001.A (Amendment 1)
Check limited with clauses. Check that the limited_with clause can not be used neither with
with generics nor instances.
- BY100002.A (Amendment 1)
Check limited with clauses. Check that the limited_with clause can not be used neither with
with generics nor instances. In addition, check that a limited view cannot be used in a use_clause.
- BY100003.A (Amendment 1)
Check limited with clauses. Check that the limited view is not allowed in a child unit if the
full view is visible in the parent. Based in an example described
by the ARG in AI-217-6.
- BY100008.A (Amendment 1)
Check limited with clauses plus renamings.
- CY100001.A (Amendment 1)
Check limited with clauses. Basic tests.
- CY100002.A (Amendment 1)
Check limited with clauses. Check the use of the limited view in local packages.
- CY100003.A (Amendment 1)
Check limited with clauses. Check the use of the limited view in a hierarchical library.
- CY100005.A (Amendment 1)
Check private with clause. In this test we have a private child package and we check all the basic
usages of the private-with clause.
- CY100006.A (Amendment 1)
Check limited private with clauses. This test is based on the example proposed by the ARG and discussed
in AI-217-06.
- CY100007.A (Amendment 1)
Check limited with clauses. This test is based on the example proposed by the ARG and discussed
in AI-217-06, but implemented with a hierarchical library.
- CY10000X.A
In this test we have a private child package and we check all the basic
usages of the with-clause available in Ada 95.
- BA1507A.ADA (Corrigendum 1)
Check that a library unit pragma applied to a generic does not apply to
its instances.
- BA1507B.DEP (Corrigendum 1)
Check that a library unit pragma applied to a generic does not apply to
its instances.
- CA1507A.ADA (Corrigendum 1)
Check that a library unit pragma applied to a generic does not apply to
its instances.
- CA1507B.DEP (Corrigendum 1)
Check that a library unit pragma applied to a generic does not apply to
its instances.
- CC3015A.ADA
Check that when a generic package instantiation is elaborated, statements in its
package body are executed and expressions requiring evaluation are evaluated
(e.g., defaults for object declarations are evaluated).
- BC64001.A (Amendment 1)
Check that a subprogram default of null shall not be specified for a
formal function.
- BC6G001.A (Amendment 1)
Check that a null procedure as a subprogram default has convention
Intrinsic.
- BC1012A.ADA
Check that the name of a generic package (i.e. the template) cannot be used
in use_clauses, nor as the package name in selected components outside of the
generic package (i.e. the name of an instantiation should be used). (Added
formal package cases.)
- BC3009C.ADA
Check that a generic unit may not require an instantiation of itself. (Added formal
package case.)
- BC70006.A
Check that if a formal package actual part is not (<>), the generic
formal part of the template is not part of the visible part of the
formal package. Check for the case where the formal package is
declared in a library-level generic subprogram. (Added overloaded case.)
- CC70001.A
Check that the template for a generic formal package may be a child
package, and that a child instance which is an instance of the
template may be passed as an actual to the formal package. Check that
the visible part of the generic formal package includes the first list
of basic declarative items of the package specification. (Added grandchild case.)
- BDD109A.DEP (Corrigendum 1)
Check that the implementation permission for components of
Stream_Element_Array is not used if its condition is not met.
- BDE0009.A (Corrigendum 1)
Check the following:
- An object name causes freezing where it occurs, unless the name is
part of a default_expression, a default_name, or a per-object expression
of a component's constraint, in which case, the freezing occurs later as
part of another construct.
- An implicit_dereference freezes entities according to the same rule
that applies to a name that is an explicit_dereference.
- An implicit call, such as an implicit call to Initialize, freezes the
called subprogram. This is true even if the implicit call is removed
via the implementation permissions in 7.6(18-21).
- If a name or expression is implicitly converted to a type or subtype,
then that type or subtype is frozen at the same place where the name or
expression causes freezing.
- CDE003A.ADA (Corrigendum 1)
Check that renaming-as-bodies do not freeze.
- BXA1007.ADA (Corrigendum 1)
Check that the predefined boolean operators have the parameter type
Boolean'Base.
- BXA3001.A (Corrigendum 1)
Check that Ada.Charaters.Latin_1 has no alphanumeric characters.
- CXA4368.ADA (Corrigendum 1)
Check that Constraint_Error is raised by Ada.Strings.Fixed.Find_Token if
Source'First is not in Positive.
- CXG5109A.DEP (Corrigendum 1)
Check that Ada.Numerics.Short_Elementary_Functions is declared pure.
- CXG5109B.A (Corrigendum 1)
Check that Ada.Numerics.Elementary_Functions is declared pure.
- CXG5109C.DEP (Corrigendum 1)
Check that Ada.Numerics.Long_Elementary_Functions is declared pure.
- CXA5B08.A
Check that the function Arccot returns results in the correct
quadrant and of the correct sign for results close to zero.
- CXAA0Z1.A
Check RM A.10.6(8) for enumeration literals, i.e. that long output that
does not fit on the current line is handled correctly.
- CYA0001.A (Amendment 1)
Check Bounded_IO, Wide_Bounded_IO, and Wide_Wide_Bounded_IO.
- BXB1009.ADA (Corrigendum 1)
Check that out-of-order arguments are not allowed in pragmas Import,
Export and Convention.
- BXB3060.ADA (Corrigendum 1)
Check that convention C_Pass_By_Copy cannot be applied to subprograms or
objects, and that it cannot be applied to elementary types, array types,
or record types with discriminants.
- CXB3020.ADA (Corrigendum 1)
Check that Interfaces.C.Char and Interfaces.C.Wchar_T are discrete types.
- CXB3012.A (Amendment 1)
Check that Procedure Update modifies the value pointed to by
the chars_ptr parameter Item, starting at the position
corresponding to parameter Offset, using the chars in
char_array parameter Chars.
Check that the version of Procedure Update with a String parameter
behaves in the manner described above, but with the character
values in the String overwriting the char values in Item.
Check that both of the above versions of Procedure Update will
propagate Update_Error if Check is True, and if the length of
the new chars in Chars, when overlaid starting from position
Offset, will overwrite the first nul in Item.
This version of the test requires the semantics described in AI-242.
- BYB0001.A (Amendment 1)
Check pragma Unchecked_Union, B.3.3(7): If a component subtype of the type is subject
to a per-object constraint, then the component subtype shall be an unchecked union
subtype.
- BYB0002.A (Amendment 1)
Check pragma Unchecked_Union, B.3.3(8): Any name that denotes a discriminant of
an object of an unchecked union type shall occur within the declarative region
of the type.
- BYB0003.A (Amendment 1)
Check pragma Unchecked_Union, B.3.3(10): The completion of an incomplete or private type
declaration having a known_discriminant_part shall not be an unchecked union type.
- CYB0001.A (Amendment 1)
Check pragma Unchecked_Union, B.3.3(19): Program_Error is raised when evaluating
the predefined equality operator for an unchecked union type if either of the
operands lacks inferable discriminants.
- CYB0002.A (Amendment 1)
Check pragma Unchecked_Union, B.3.3(20): Program_Error is raised when evaluating
the predefined equality operator for a type which has a subcomponent of an
unchecked union type whose nominal subtype is unconstrained.
- CYB0003.A (Amendment 1)
Check pragma Unchecked_Union, B.3.3(21): Program_Error is raised when evaluating
the membership test if the subtype_mark denotes a constrained unchecked
union subtype and the expression lacka inferable discriminants.
- CYB0004.A (Amendment 1)
Check pragma Unchecked_Union, B.3.3(22): Program_Error is raised when converting
from a derived unchecked union type to an unconstrained non-unchecked union
subtype if the operand of the conversion lacks inferable discriminants.
- LXD7003.ADA (Corrigendum 1)
Check that the rules for checking restrictions are followed for No_Task_Hierarchy.
- LXD7004.ADA (Corrigendum 1)
Check that the rules for checking restrictions are followed for No_Nested_Finalization.
- CXG1125A.DEP (Corrigendum 1)
Check that Ada.Numerics.Short_Complex_Types and
Ada.Numerics.Short_Complex_Elementary_Functions are declared pure.
- CXG1125B.A (Corrigendum 1)
Check that Ada.Numerics.Complex_Types and
Ada.Numerics.Complex_Elementary_Functions are declared pure.
- CXG1125C.DEP (Corrigendum 1)
Check that Ada.Numerics.Long_Complex_Types and
Ada.Numerics.Long_Complex_Elementary_Functions are declared pure.
- LXH4008.ADA (Corrigendum 1)
Check that the rules for checking restrictions are followed. Also check
that the No_Local_Allocators restriction allows instantiations of generic
packages, but that nested instantiations of such packages containing
allocators are detected.
Corrigendum 1 AIs
- B73106A.ADA
Check that operations of a type are not declared in an inner declarative
region.
- BXB1009.ADA Corrigendum 1
Check that out-of-order arguments are not allowed in pragmas Import,
Export and Convention.
- CXB3020.ADA
Check that Interfaces.C.Char and Interfaces.C.Wchar_T are discrete types.
- BA1507A.ADA
Check that a library unit pragma applied to a generic does not apply to
its instances.
- BA1507B.DEP
Check that a library unit pragma applied to a generic does not apply to
its instances.
- CA1507A.ADA
Check that a library unit pragma applied to a generic does not apply to
its instances.
- CA1507B.DEP
Check that a library unit pragma applied to a generic does not apply to
its instances.
- B35A02A.ADA
Check that 'Small cannot be specified for derived fixed point types and
for decimal fixed point types.
- CDE003A.ADA
Check that renaming-as-bodies do not freeze.
- B37008A.ADA
Check that unknown_discriminant_parts are not allowed on generic formal
types that are either array types or elementary types.
- BDE0009.A
Check the following:
- An object name causes freezing where it occurs, unless the name is
part of a default_expression, a default_name, or a per-object expression
of a component's constraint, in which case, the freezing occurs later as
part of another construct.
- An implicit_dereference freezes entities according to the same rule
that applies to a name that is an explicit_dereference.
- An implicit call, such as an implicit call to Initialize, freezes the
called subprogram. This is true even if the implicit call is removed
via the implementation permissions in 7.6(18-21).
- If a name or expression is implicitly converted to a type or subtype,
then that type or subtype is frozen at the same place where the name or
expression causes freezing.
- C96026A.ADA
Check that Month, Day and Seconds raise Time_Error when Year_Number is
out of range.
- C45232A.ADA
Check that "=" for all language-defined nonlimited types behaves as if it
is predefined for composition and generic formal type purposes.
- C76004A.DEP
Check that Ada.Finalization is a remote types package.
- CXG5109A.DEP
Check that Ada.Numerics.Short_Elementary_Functions is declared pure.
- CXG5109B.A
Check that Ada.Numerics.Elementary_Functions is declared pure.
- CXG5109C.DEP
Check that Ada.Numerics.Long_Elementary_Functions is declared pure.
- CXG1125A.DEP
Check that Ada.Numerics.Short_Complex_Types and
Ada.Numerics.Short_Complex_Elementary_Functions are declared pure.
- CXG1125B.A
Check that Ada.Numerics.Complex_Types and
Ada.Numerics.Complex_Elementary_Functions are declared pure.
- CXG1125C.DEP
Check that Ada.Numerics.Long_Complex_Types and
Ada.Numerics.Long_Complex_Elementary_Functions are declared pure.
- CXA4368.ADA
Check that Constraint_Error is raised by Ada.Strings.Fixed.Find_Token if
Source'First is not in Positive.
- LXD7003.ADA
Check that the rules for checking restrictions are followed for No_Task_Hierarchy.
- LXD7004.ADA
Check that the rules for checking restrictions are followed for No_Nested_Finalization.
- LXH4008.ADA
Check that the rules for checking restrictions are followed. Also check
that the No_Local_Allocators restriction allows instantiations of generic
packages, but that nested instantiations of such packages containing
allocators are detected.
- BXB3060.ADA
Check that convention C_Pass_By_Copy cannot be applied to subprograms or
objects, and that it cannot be applied to elementary types, array types,
or record types with discriminants.
- C85408A.ADA
Check that a legal circular renaming-as-body is a bounded error and raises
Program_Error or Storage_Error or goes infinitely recursive.
- BXA1007.ADA
Check that the predefined boolean operators have the parameter type
Boolean'Base.
- C76114A.ADA
Check that it is not a bounded error for an explicit call to Adjust or
Finalize to propagate an exception. Note: (RLB, 3/15/01) Existing test C760010
already checks this.
- C36022A.ADA
Check that per-object expressions are evaluated as specified for entry
families and protected components.
- C36022B.ADA
Check that per-object expressions are evaluated as specified for entry
families and protected components.
- C38018A.ADA
Check that checks are made properly when a per-object expression contains
an attribute whose prefix denotes the current instance of the type.
- C38018B.ADA
Check that an expression in a per-object discriminant constraint which is
part of a named association is evaluated once for each association.
- BDD109A.DEP
Check that the implementation permission for components of
Stream_Element_Array is not used if its condition is not met.
- C35802B.ADA
Check that if Float'Machine_Radix is a power of 10, Float'Digits is equal
to Float'Model_Mantissa.
Amendment 1 AIs
- BYB0001.A
Check pragma Unchecked_Union, B.3.3(7): If a component subtype of the type is subject
to a per-object constraint, then the component subtype shall be an unchecked union
subtype.
- BYB0002.A
Check pragma Unchecked_Union, B.3.3(8): Any name that denotes a discriminant of
an object of an unchecked union type shall occur within the declarative region
of the type.
- BYB0003.A
Check pragma Unchecked_Union, B.3.3(10): The completion of an incomplete or private type
declaration having a known_discriminant_part shall not be an unchecked union type.
- CYB0001.A
Check pragma Unchecked_Union, B.3.3(19): Program_Error is raised when evaluating
the predefined equality operator for an unchecked union type if either of the
operands lacks inferable discriminants.
- CYB0002.A
Check pragma Unchecked_Union, B.3.3(20): Program_Error is raised when evaluating
the predefined equality operator for a type which has a subcomponent of an
unchecked union type whose nominal subtype is unconstrained.
- CYB0003.A
Check pragma Unchecked_Union, B.3.3(21): Program_Error is raised when evaluating
the membership test if the subtype_mark denotes a constrained unchecked
union subtype and the expression lacka inferable discriminants.
- CYB0004.A
Check pragma Unchecked_Union, B.3.3(22): Program_Error is raised when converting
from a derived unchecked union type to an unconstrained non-unchecked union
subtype if the operand of the conversion lacks inferable discriminants.
- B3A1002.A
Check that an incomplete type exported by a limited view does not become
complete too early.
- BA146010.A,
BA146011.A,
BA146012.A,
BA146013.A,
BA146014.A
An implementation may require that a unit be legal before it can be
mentioned in a limited_with_clause.
- BY100001.A
Check limited with clauses. Check that the limited_with clause can not be used neither with
with generics nor instances.
- BY100002.A
Check limited with clauses. Check that the limited_with clause can not be used neither with
with generics nor instances. In addition, check that a limited view cannot be used in a use_clause.
- BY100003.A
Check limited with clauses. Check that the limited view is not allowed in a child unit if the
full view is visible in the parent. Based in an example described
by the ARG in AI-217-6.
- BY100008.A
Check limited with clauses plus renamings.
- CY100001.A
Check limited with clauses. Basic tests.
- CY100002.A
Check limited with clauses. Check the use of the limited view in local packages.
- CY100003.A
Check limited with clauses. Check the use of the limited view in a hierarchical library.
- CY100006.A
Check limited private with clauses. This test is based on the example proposed by the ARG and discussed
in AI-217-06.
- CY100007.A
Check limited with clauses. This test is based in the example proposed by the ARG and discussed
in AI-217-06, but implemented with a hierarchical library.
- B832601.A
Check that a subprogram that has an overriding indicator is a
primitive operation for some type.
Check not overriding for all the spec-like constructs, no derived types.
- B832602.A
Check that a subprogram that has an overriding indicator is a
primitive operation for some type. Also check the legality of the
indicators for simple derived types.
- B832603.A
Check the legality of overriding indicators for proper bodies, stubs and
renaming-as-bodies. Use type derivation, either directly or through a
private type, in which case the specification and body may know different
things about overriding.
- B832604.A
Check the legality of overriding indicators in cases involving predefined
operators and enumeration literals.
- B8326050.A,
B8326051.A,
B8326052.A,
B8326053.A,
B8326054.A
Check the legality of overriding indicators in a case where
characteristics of the type are revealed in more than one place.
- B832606.A
Check the legality of overriding indicators in the presence of generic
units and instantiations.
- B832607.A
Check the legality of overriding indicators in a case where
a subprogram is primitive for more than one type.
- B3A200X.A
Check dangling references as suggested in AI-229.
- BY30001.A
Check generalized use of anonymous access to constants (AI-230
plus AI-231).
- CY30001.A
Check AI-230 (Generalized use of anonymous access types).
- CY30002.A
Check AI-230 (Generalized use of anonymous access types).
Check renaming declarations plus the new predefined equality operator
for access types. It is based on the example described in AI-230.
- BY30001.A
Check generalized use of anonymous access to constants (AI-230
plus AI-231).
- BY30002.A
Check AI-231: Null-Excluding access subtypes.
- BY30003.A
Check AI-231: access-to-constant parameters.
- BY30030.A
Check static matching rules for anonymous access-to-object types.
- CY30003.A
Check AI-231 (Null-Excluding access subtypes).
- CY30006.A
Check AI-254 combined with AI-231 (Anonymous access to null-excluding subprogram
types).
- CY30007.A
Check AI-254 combined with AI-231 (Anonymous access to null-excluding
protected subprogram types).
- CY30040.A
Check null-excluding access subtypes.
- B3A2016.A
Check that the type of the prefix of X'Access is used to resolve
the expected type (both for X as an object and as a subprogram).
Check that different access-to-subprogram types with the same accessed
profile do not match.
- C3A200X.A
The revised 3.10.2(2) says that the expected type of an 'Access or
'Unchecked_Access attribute is a single access type whose designated
type covers the prefix. This rule change allows a variety of
interesting overloading scenarios.
This test is intended to insure that expressions allowed by the new
rule are resolved and implemented properly.
- CXB3012.A
Check that Procedure Update modifies the value pointed to by
the chars_ptr parameter Item, starting at the position
corresponding to parameter Offset, using the chars in
char_array parameter Chars.
Check that the version of Procedure Update with a String parameter
behaves in the manner described above, but with the character
values in the String overwriting the char values in Item.
Check that both of the above versions of Procedure Update will
propagate Update_Error if Check is True, and if the length of
the new chars in Chars, when overlaid starting from position
Offset, will overwrite the first nul in Item.
This version of the test requires the semantics described in AI-242.
- BY30005.A
Check abstract interfaces.
- BY30009.A
Check limited interfaces.
- BY30013.A
Check interfaces with generics.
- BY30014.A
Check interfaces with generics.
- CY30008.A
This test checks abstract interfaces in which the mode of the
controlling argument of all the primitives is in.
- CY30009.A
This test checks abstract interfaces in which the mode of the
controlling argument of all the primitives is in out.
- CY30010.A
This test checks abstract interfaces in which the mode of the
controlling argument of all the primitives is out.
- CY30011.A
This test checks abstract interfaces in which the mode of the
controlling argument of all the primitives is access.
- CY30012.A
Check the equality operator applied to class-wide
interfaces and the membership test applied to interfaces.
- CY30014.A
Check private types and interfaces.
- CY30015.A
This test checks a type implementing two interfaces that have exactly
the same primitives.
- CY30016.A
Check interfaces with discriminants.
- CY30030.A
Check interfaces with generics.
- CY30038.A
Check controlled private types and interfaces.
- CY30039.A
Check controlled private types and interfaces.
- CY30041.A
Check dispatching calls through interfaces.
- CY30042.A
Check Size of classwide types.
- CY40012.A
This test checks basic combinations of the object.operation notation
plus its usage combined with record components.
- CY40014.A
Check implicit dereference. Test based on the example described
in AI-00252.TXT.
- BY30004.A
Check AI-254 (Anonymous access to subprograms).
- CY30005.A
Check AI-254: Anonymous access to protected subprograms.
- CY30006.A
Check AI-254 combined with AI-231 (Anonymous access to null-excluding subprogram types).
- CY30007.A
Check AI-254 combined with AI-231 (Anonymous access to null-excluding
protected subprogram types).
- CY100005.A (Amendment 1)
Check private with clause. In this test we have a private child package and we check all the basic
usages of the private-with clause.
- BY40001.A
Check AI-287 for record aggregates. This test checks that the box can not be used
in positional aggregates.
- BY40002.A
Check AI-287 for array aggregates. This test checks that:
- The box can be used when no default initialization is available
- Default initialized components have default initialization value
- If the discrete choice others is used for the default initialization
of components, it must cover at least one component
- CY40001.A
Check AI-287 for array aggregates. This test checks that the box can be used for
the default initialization of non-limited unidimensional arrays (including
allocated arrays).
- CY40002.A
Check AI-287 for array aggregates. This test checks that the box can be used for the default
initialization of non-limited bidimensional arrays (including
allocated arrays).
- CY40003.A
Check AI-287 for record aggregates. This test checks that the box can be used for
the default initialization of non-limited records (including allocated records.
- CY40007.A
Check AI-287 for record aggregates. Check allocators.
- CY40008.A
Check AI-287 for record aggregates. This test checks discriminants in records
with limited components.
- CY40009.A
Check AI-287 for record aggregates. Checks default initialization of deferred
constants.
- CY40010.A
Check AI-287 for record aggregates. Checks default initialization of deferred
constants in library packages.
- CY40011.A
Check AI-287 for record aggregates. This test checks limited aggregates used in
the instantiation of generic packages.
- B648001.A
Check that an abstract nondispatching operation is not considered for
name resolution.
Check cases that would be ambiguous in Ada 95.
- CY60001.A
Check AI-310 (Abstract nondispatching subprograms during overloading)
Test based on the example described in AI-310.
- B3A1002.A
Check that an incomplete type exported by a limited view does not become
complete too early.
- B3A1401.ADA
Check that if an incomplete type declaration includes the keyword
tagged, then the full type declaration that complete it shall
declare a tagged type.
Case of normal (i.e., non Taft-amendment) types declared in both parts
of a package specification.
- B3A1402.ADA
Check that if an incomplete type declaration includes the keyword
tagged, then the full type declaration that complete it shall
declare a tagged type.
Case of Taft-amendment types, and of types declared in bodies and blocks.
- B3A1801.ADA
Check the legal and illegal uses of tagged incomplete types.
- B3A1E01.ADA
Check that a dereference may be of an incomplete type, but that a prefix may not.
- BY30006.A
Check task interfaces.
- BY30007.A
Check protected interfaces.
- BY30008.A
Check synchronized interfaces.
- BY30010.A
Check task interfaces with private extensions.
- BY30011.A
Check protected interfaces with private extensions.
- BY30012.A
Check synchronized interfaces with private extensions.
- BY30013.A
Check interfaces with generics.
- BY30014.A
Check interfaces with generics.
- BY30015.A
If an inherited subprogram is implemented by a protected procedure or
an entry, then the first parameter of the inherited subprogram shall be
of mode OUT or IN OUT, or an access-to-variable parameter. Therefore
none of the protected types declared in this program cover the
primitives of the interface.
- BY30016.A
Check that the primitives of a protected interface cannot be covered
simultaneously by
- protected subprograms and
- subprograms declared
outside of the protected type.
- BY30017.A
Check that the private data of the protected type is not visible in the
subprograms covering a protected interface that are declared outside of
the protected type.
- BY30018.A
If an inherited subprogram is implemented by a protected procedure or
an entry, then the first parameter of the inherited subprogram shall be
of mode OUT or IN OUT, or an access-to-variable parameter. Therefore
none of the protected types declared in this program cover the
primitives of the interface.
- BY30019.A
Check that the primitives of a protected interface cannot be covered
simultaneously by
- protected subprograms and
- subprograms declared
outside of the protected type.
- CY30017.A
This test checks task interfaces in which the mode of the
controlling argument of all the primitives is in out
- CY30018.A
This test checks protected interfaces in which the mode of the
controlling argument of all the primitives is in out
- CY30019.A
This test checks synchronized interfaces in which the mode of the
controlling argument of all the primitives is in out
- CY30020.A
Test limited interfaces used as the progenitor of task types.
- CY30021.A
Similar to test CY30020 but the two tasks implementing the
interface are in the same package. This is done to check
that there is no conflict with the names of the dispatching
subprograms corresponding to the entries of the two tasks.
- CY30022.A
Test limited interfaces used as the progenitor of protected types.
- CY30023.A
Similar to test CY30022 but the two tasks implementing the
interface are in the same package. This is done to check
that there is no conflict with the names of the dispatching
subprograms corresponding to the entries of the two tasks.
- CY30024.A
Similar to test CY30022 but using access types.
- CY30025.A
Similar to previous tests but using access types.
- CY30026.A
Test based on the example in AI-345.
- CY30027.A
Test task interfaces with private extensions.
- CY30028.A
Test protected interfaces with private extensions.
- CY30029.A
Test synchronized interfaces with private extensions.
- CY30030.A
Check interfaces with generics.
- CY30031.A
Check task interfaces with generics.
- CY30032.A
Protected interfaces and parameter modes.
- CY30033.A
Check protected types: interface primitives overriden by means of
- protected entries and
- normal subprograms.
- CY30034.A
This test checks the usage of subprograms to cover interface primitives.
- CY30035.A
Check protected interfaces overriding function primitives.
- CY30036.A
Check task interfaces.
- CY30037.A
Check the usage of subprograms to cover task interface primitives.
- CY30043.A
Check dispatching in interfaces operations "implemented by" task entries and protected operations.
- CY80001.A
Check entries renamed as procedures used in select statements.
- CY90001.A
Check dispatching interface procedures used in select statements.
- CY90003.A
Check dispatching interface procedures used in select statements.
- B313001.A
Check that a null_procedure_declaration may not be declared at library level.
- BC64001.A
Check that a subprogram default of null shall not be specified for a
formal function.
- BC6G001.A
Check that a null procedure as a subprogram default has convention
Intrinsic.
- B394001.A
Check that if a private extension is derived only from interface types, the full
view may also be derived from an additional non-interface type. Check that the
rules in 7.3 regarding private extensions and interface ancestors are still
satisfied when the full view has a non-interface parent. (AI-396 plus AI-401).
- BY30025.A
Check the no hidden interfaces rule.
- BY30027.A
Check the no hidden interfaces rule.
- BY30028.A
Check the no hidden interfaces rule.
- CY30046.A
Check the no hidden interfaces rule.
- BY30020.A
Check parsing of entry declarations with
overriding indicator in the context of task types.
- BY30021.A
Recognition of incorrect overriding / not overriding
entries or subprograms in the context of protected types.
Recognition of incorrect overriding / not overriding
entries in the context of task types.
- BY30024.A
Recognition of incorrect overriding / not overriding
entries or subprograms in the context of protected types.
Recognition of incorrect overriding / not overriding
entries in the context of task types. Specialized cases for null procedures.
- CY30047.A
Recognition of correct overriding / not overriding
entries or subprograms in the context of protected types.
Recognition of correct overriding / not overriding
entries in the context of task types.
- CY30048.A
Recognition of correct overriding / not overriding
entries or subprograms in the context of protected types.
Recognition of correct overriding / not overriding
entries in the context of task types.
- BY30015.A
If an inherited subprogram is implemented by a protected procedure or
an entry, then the first parameter of the inherited subprogram shall be
of mode OUT or IN OUT, or an access-to-variable parameter. Therefore
none of the protected types declared in this program cover the
primitives of the interface.
- BY30016.A
Check that the primitives of a protected interface cannot be covered
simultaneously by
- protected subprograms and
- subprograms declared
outside of the protected type.
- BY30017.A
Check that the private data of the protected type is not visible in the
subprograms covering a protected interface that are declared outside of
the protected type.
- BY30018.A
If an inherited subprogram is implemented by a protected procedure or
an entry, then the first parameter of the inherited subprogram shall be
of mode OUT or IN OUT, or an access-to-variable parameter. Therefore
none of the protected types declared in this program cover the
primitives of the interface.
- BY30019.A
Check that the primitives of a protected interface cannot be covered
simultaneously by
- protected subprograms and
- subprograms declared
outside of the protected type.
- CY30033.A
Check protected types: interface primitives overriden by means of
- protected entries and
- normal subprograms.
- CY30034.A
This test checks the usage of subprograms to cover interface primitives.
- CY30035.A
Check protected interfaces overriding function primitives.
- CY30036.A
Check task interfaces.
- CY30037.A
Check the usage of subprograms to cover task interface primitives.
- B394001.A
Check that if a private extension is derived only from interface types, the full
view may also be derived from an additional non-interface type. Check that the
rules in 7.3 regarding private extensions and interface ancestors are still
satisfied when the full view has a non-interface parent. (AI-396 plus AI-401).
- BY30029.A
Check limited in derived and private types.
- BY30031.A
Check limited in derived and private types when the parent type is generic.
- CY30044.A
Check that a limited interface can be used as a progenitor of a non-limited type.
- CY30045.A
Check limited in derived and private types, with the ancestors being formal types.
- CYA0001.A
Check Bounded_IO, Wide_Bounded_IO, and Wide_Wide_Bounded_IO.
- CXAA0Z1.A
Check RM A.10.6(8) for enumeration literals, i.e. that long output that
does not fit on the current line is handled correctly.
Click here to return to the ACAA Home.
Click here to return to the ACATS Home.