ACAA Header
 

Submitted Tests by Subclause

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). These tests are provided as a service to the Ada community.
Tests may appear in more than one clause if multiple clauses are appropriate. These tests are also indexed by AI number, language version, and can be downloaded in ZIP files.

Tests for 2.8

  • B28002A.A
    Check that Pragma_Argument_Associations without a Pragma_Argument_Identifier shall precede any associations with a Pragma_Argument_Identifier.

Tests for 3.1

  • B313001.A (Amendment 1)
    Check that a null_procedure_declaration may not be declared at library level.

Tests for 3.4

  • 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.
  • CY30045.A (Amendment 1)
    Check limited in derived and private types, with the ancestors being formal types.

Tests for 3.5.8

  • 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.

Tests for 3.5.10

  • B35A02A.ADA (Corrigendum 1)
    Check that 'Small cannot be specified for derived fixed point types and for decimal fixed point types.

Tests for 3.6

  • C36022A.ADA (Corrigendum 1)
    Check that per-object expressions are evaluated as specified for task and protected entry families.
  • C36022B.ADA (Corrigendum 1)
    Check that per-object expressions are evaluated as specified for protected components.
  • CY30001.A (Amendment 1)
    Check AI-230 (Generalized use of anonymous access types).

Tests for 3.7

  • B37008A.ADA (Corrigendum 1)
    Check that unknown_discriminant_parts are not allowed on generic formal types that are either array types or elementary types.

Tests for 3.8

  • 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.

Tests for 3.9

  • C3900TK.A (Ada 2012)
    Check that an instance of Generic_Dispatching_Constructor raises Tag_Error if called with the tag of a type declared in a different, unrelated task than the instance.

Tests for 3.9.1

  • 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.

Tests for 3.9.4

  • 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.
  • 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 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 the protected type.
  • 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.
  • 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.
  • 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 overridden 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.

Tests for 3.10

  • CY30040.A (Amendment 1)
    Check null-excluding access subtypes.

Tests for 3.10.1

  • B3A10010.A (Amendment 1)
    Part of test B3A1001C.AM.
  • B3A10011.A (Amendment 1)
    Part of test B3A1001C.AM.
  • B3A10012.A (Amendment 1)
    Part of test B3A1001C.AM.
  • B3A10013.A (Amendment 1)
    Part of test B3A1001C.AM.
  • B3A10014.A (Amendment 1)
    Part of test B3A1001C.AM.
  • B3A10015.A (Amendment 1)
    Part of test B3A1001C.AM.
  • B3A10016.A (Amendment 1)
    Part of test B3A1001C.AM.
  • B3A10017.A (Amendment 1)
    Part of test B3A1001C.AM.
  • B3A10018.A (Amendment 1)
    Part of test B3A1001C.AM.
  • B3A10019.A (Amendment 1)
    Part of test B3A1001C.AM.
  • B3A1001A.A (Amendment 1)
    Part of test B3A1001C.AM.
  • B3A1001B.A (Amendment 1)
    Part of test B3A1001C.AM.
  • 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.
  • B3A1801.ADA (Amendment 1)
    Check the legal and illegal uses of tagged incomplete types.
  • C3A10RB.A (Ada 2012)
    Check that a tagged incomplete type whose completion is deferred to a package body can have non-primitive operations and that those operations can be called from a child unit, even though the child unit does not have visibility on the completion of the type.

Tests for 3.10.2

  • BY30004.A (Amendment 1)
    Check AI-254 (Anonymous access to subprograms). [Profile errors in 'Access.]

Tests for 4.1.3

  • 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.

Tests for 4.1.6

  • C4160RB.A (Ada 2012)
    When both Constant_Indexing and Variable_Indexing are specified, check that the variable indexing function is called in variable contexts if the prefix is a variable, and that the constant indexing function is called in all other cases (including variable indexing contexts when the prefix is a constant).

Tests for 4.3.1

  • 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.

Tests for 4.3.3

  • 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).

Tests for 4.5.2

  • 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.

Tests for 4.6

  • B4600JC.A
    Check that a type conversion of a specific tagged object is rejected if it is not descended from the target type.
  • C4600JC.A
    Check that a check is performed when converting a variable of a class-wide type to a descendant specific type.

Tests for 4.8

  • C4800RB.A (Ada 2012)
    If the designated type of an initialized allocator is class-wide, check that Program_Error is raised if the master of the type of the tag of the qualified expression of the allocator does not include the elaboration of the type of the allocator. Case 2: Incomparable accessibility.

Tests for 4.9.1

  • BY30030.A (Amendment 1)
    Check static matching rules for anonymous access-to-object types.

Tests for 7.2

  • B7200010.A
    Part of test B7200016.A
  • B7200011.A
    Part of test B7200016.A
  • B7200012.A
    Part of test B7200016.A
  • B7200013.A
    Part of test B7200016.A
  • B7200014.A
    Part of test B7200016.A
  • B7200015.A
    Part of test B7200016.A
  • B7200016.A
    Check that if a library package declaration or library generic package declaration does not require a body, that a body is not allowed. Check that pragma Elaborate_Body can be used to require a body even if not otherwise required. (Add case of generic children.)

Tests for 7.3

  • 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).
  • B73106A.ADA (Corrigendum 1)
    Check that operations of a type are not declared in an inner declarative region.
  • 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.
  • BY30028.A (Amendment 1)
    Check the no hidden interfaces rule.
  • C730005.A
    Check that a subtype of a private type is allowed, where the full type has a discriminant.
  • 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.
  • CY30046.A (Amendment 1)
    Check the no hidden interfaces rule.

Tests for 7.3.2

  • C7320JC.A (Ada 2012)
    Check that Assertion_Error is raised when the policy requires checks and there is an object for which the invariant check fails, but not when the invariant check passes - unconstrained array version.
  • C7320JC_A.A (Ada 2012)
    Part of test C7320JC.
  • C732AJC.A (Ada 2012)
    Check that an assertion error is raised when the policy requires checks and there is a parameter with a part of a type with an invariant that does not hold true, but not when the invariant does hold true, constrained array version.
  • C732AJC_A.A (Ada 2012)
    Part of test C732AJC.
  • C732AJC_B.A (Ada 2012)
    Part of test C732AJC.
  • C732BJC.A (Ada 2012)
    Check that an assertion error is raised when the policy requires checks and there is a parameter with a part of a type with an invariant that does not hold true, but not when the invariant does hold true, discriminant record version.
  • C732BJC_A.A (Ada 2012)
    Part of test C732BJC.
  • C732BJC_B.A (Ada 2012)
    Part of test C732BJC.
  • C732BJC_C.A (Ada 2012)
    Part of test C732BJC.

Tests for 7.4

  • 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 package 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.

Tests for 7.6.1

  • C76114A.ADA (Corrigendum 1)
    Check that it is not a bounded error for an explicit call to Adjust or Finalize to propagate an exception.

Tests for 8.2

  • C82001A.A
    Check that a generic subprogram's identifier can be used in its instantiation.

Tests for 8.3

  • 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.)

Tests for 8.3.1

  • 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.
  • B832607.A (Amendment 1)
    Check the legality of overriding indicators in a case where a subprogram is primitive for more than one type.

Tests for 8.4

  • 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 for modular types declared in a package are not made visible until after the end of a use clause for the package.

Tests for 8.5.1

  • 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.

Tests for 8.5.4

  • 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.

Tests for 8.6

  • 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.)

Tests for 9.1

  • CY30043.A (Amendment 1)
    Check dispatching in interfaces operations "implemented by" task entries and protected operations.

Tests for 9.4

  • 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 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 the protected type.
  • CY30033.A (Amendment 1)
    Check protected types: interface primitives overridden by means of
    protected entries and
    normal subprograms.
  • CY30043.A (Amendment 1)
    Check dispatching in interfaces operations "implemented by" task entries and protected operations.

Tests for 9.5.2

  • 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 incorrect 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 incorrect overriding / not overriding entries in the context of task types.

Tests for 9.6

  • C96026A.ADA (Corrigendum 1)
    Check that Month, Day and Seconds raise Time_Error when Year_Number is out of range.

Tests for 9.7.2

  • 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.

Tests for 10.1.1

  • 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).

Tests for 10.1.2

  • BY100001.A (Amendment 1)
    Check limited with clauses. Check that the limited_with clause can not be used neither with with generics nor instances.
  • 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.

Tests for 10.1.4

  • BA146010.A (Amendment 1)
    An implementation may require that a unit be legal before it can be mentioned in a limited_with_clause.
  • BA146011.A (Amendment 1)
    Part of test BA146010.A.
  • BA146012.A (Amendment 1)
    Part of test BA146010.A.
  • BA146013.A (Amendment 1)
    Part of test BA146010.A.
  • BA146014.A (Amendment 1)
    Part of test BA146010.A.

Tests for 10.1.5

  • 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.

Tests for 12.3

  • 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).

Tests for 12.7

  • 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.)

Tests for 13.13.1

  • BDD109A.DEP (Corrigendum 1)
    Check that the implementation permission for components of Stream_Element_Array is used if its condition is met.

Tests for 13.14

  • 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.

Tests for A.1

  • BXA1007.ADA (Corrigendum 1)
    Check that the predefined boolean operators have the parameter type Boolean'Base.

Tests for A.3.3

  • BXA3001.A
    Check that Ada.Characters.Latin_1 has no alphanumeric characters.

Tests for A.5.1

  • CXA5109A.DEP (Corrigendum 1)
    Check that Ada.Numerics.Short_Elementary_Functions is declared pure.
  • CXA5109B.A (Corrigendum 1)
    Check that Ada.Numerics.Elementary_Functions is declared pure.
  • CXA5109C.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.

Tests for B.1

  • BXB1009.ADA (Corrigendum 1)
    Check that out-of-order arguments are not allowed in pragmas Import, Export and Convention.

Tests for B.3

  • 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.

Tests for C.3.1

  • BXC30TV.A (Ada 2012)
    Check that if either the Attach_Handler or Interrupt_Handler aspect is specified for a protected procedure, the corresponding protected declaration must be at library-level.

Tests for D.7

  • 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.

Tests for G.1.1

  • 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.

Tests for H.3

  • 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.