!comment This file contains Corrigendum conflicts for Amendment 3 (Ada 202x). !comment Conflicts occur when multiple issues change the same !comment paragraph of the standard. !comment This file (and the reading of it in the program) would need to !comment be changed for a new Corrigendum or Amendment. !comment The paragraphs must be in sorted order!! !corrigendum 3.2.4(4/3) !AI-0071-1 !AI-0099-1 @drepl @xbullet @dby @xbullet !corrigendum 3.2.4(31/3) !AI-0054-2 !AI-0071-1 @drepl @xindent or @b parameter that is passed by reference, the predicate of the subtype of the actual is evaluated, and a check is performed that the predicate is True. For an object created by an @fa with no explicit initialization @fa, or by an uninitialized @fa, if any subcomponents have @fas, the predicate of the nominal subtype of the created object is evaluated, and a check is performed that the predicate is True. Assertions.Assertion_Error is raised if any of these checks fail.> @dby @xindent or @b parameter that is passed by reference, a check is performed that the value of the parameter satisfies the predicates of the subtype of the actual. For an object created by an @fa with no explicit initialization @fa, or by an uninitialized @fa, if any subcomponents have @fas, a check is performed that the value of the created object satisfies the predicates of the nominal subtype.> @xindent is evaluated; if the evaluation of the Predicate_Failure @fa propagates an exception occurrence, then this occurrence is propagated for the failure of the predicate check; otherwise, Assertion_Error is raised, with an associated message string defined by the value of the Predicate_Failure @fa. In the absence of such a Predicate_Failure aspect, an implementation-defined message string is associated with the Assertion_Error exception.> !corrigendum 3.2.4(35/3) !AI-0054-2 !AI-0071-1 @dinsa @xindent<@s9<6 A Static_Predicate, like a constraint, always remains True for all objects of the subtype, except in the case of uninitialized variables and other invalid values. A Dynamic_Predicate, on the other hand, is checked as specified above, but can become False at other times. For example, the predicate of a record subtype is not checked when a subcomponent is modified.>> @dinss @xindent<@s9<7 No predicates apply to the base subtype of a scalar type; every value of a scalar type @i is considered to satisfy the predicates of @i'Base.>> @xindent<@s9<8 Predicate_Failure @fas are never evaluated during the evaluation of a membership test (see 4.5.2) or Valid attribute (see 13.9.2).>> @xindent<@s9<9 A Predicate_Failure @fa can be a @fa (see 11.3).>> @s8<@i> @xcode<@b Basic_Letter @b Character -- @ft<@I> @b Static_Predicate =@> Basic_Letter @b 'A'..'Z' | 'a'..'z' | '@unicode<198>' | '@unicode<230>' | '@unicode<208>' | '@unicode<240>' | '@unicode<222>' | '@unicode<254>' | '@unicode<223>';> @xcode<@b Even_Integer @b Integer @b Dynamic_Predicate =@> Even_Integer @b 2 = 0, Predicate_Failure =@> "Even_Integer must be a multiple of 2";> @i @xcode<@b Ada.IO_Exceptions; @b Ada.Text_IO @b> @xcode< @b File_Type @b;> @xcode< @b Open_File_Type @b File_Type @b Dynamic_Predicate =@> Is_Open (Open_File_Type), Predicate_Failure =@> @b Status_Error @b "File not open"; @b Input_File_Type @b Open_File_Type @b Dynamic_Predicate =@> Mode (Input_File_Type) = In_File, Predicate_Failure =@> @b Mode_Error @b "Cannot read file: " & Name (Input_File_Type); @b Output_File_Type @b Open_File_Type @b Dynamic_Predicate =@> Mode (Output_File_Type) /= In_File, Predicate_Failure =@> @b Mode_Error @b "Cannot write file: " & Name (Output_File_Type);> @xcode< ...> @xcode< @b Mode (File : @b Open_File_Type) @b File_Mode; @b Name (File : @b Open_File_Type) @b String; @b Form (File : @b Open_File_Type) @b String;> @xcode< ...> @xcode< @b Get (File : @b Input_File_Type; Item : @b Character);> @xcode< @b Put (File : @b Output_File_Type; Item : @b Character);> @xcode< ...> @xcode< -- @ft<@I>> !corrigendum 3.10.2(7/3) !AI-0067-1 !AI-0089-1 @drepl @xbullet @dby @xbullet !corrigendum 4.4(3/3) !AI-0022-1 !AI-0039-1 @drepl @xcode<@fa@ft<@b>@fa<] >@ft<@b>@fa< membership_choice_list>> @dby @xcode<@fasimple_expression [>@ft<@b>@fa<] >@ft<@b>@fa< membership_choice_list | raise_expression>> !corrigendum 4.5.2(29/3) !AI-0039-1 !AI-0071-1 @drepl @xbullet is a @fa, the tested type is scalar, the value of the @fa belongs to the range of the named subtype, and the predicate of the named subtype evaluates to True.> @dby @xbullet is a @fa, the tested type is scalar, the value of the @i@fa belongs to the range of the named subtype, and the value satisfies the predicates of the named subtype.> !corrigendum 4.5.2(30/3) !AI-0039-1 !AI-0071-1 @drepl @xbullet is a @fa, the tested type is not scalar, the value of the @fa satisfies any constraints of the named subtype, the predicate of the named subtype evaluates to True, and:> @dby @xbullet is a @fa, the tested type is not scalar, the value of the @i@fa satisfies any constraints of the named subtype, the value satisfies the predicates of the named subtype, and:> !corrigendum 5.5.2(6/3) !AI-0047-1 !AI-0120-1 @dinsa In a container element iterator whose @i@fa has type @i, if the @i@fa denotes a constant or the Variable_Indexing aspect is not specified for @i, then the Constant_Indexing aspect shall be specified for @i. @dinss The @i@fa or @i@fa of an @fa shall not denote a subcomponent that depends on discriminants of an object whose nominal subtype is unconstrained, unless the object is known to be constrained. A container element iterator is illegal if the call of the default iterator function that creates the loop iterator (see below) is illegal. A generalized iterator is illegal if the iteration cursor subtype of the @i@fa is a limited type at the point of the generalized iterator. A container element iterator is illegal if the default cursor subtype of the type of the @i@fa is a limited type at the point of the container element iterator. !corrigendum 6.1.1(18/3) !AI-0113-1 !AI-0131-1 @drepl If a Pre'Class or Post'Class aspect is specified for a primitive subprogram of a tagged type @i, then the associated expression also applies to the corresponding primitive subprogram of each descendant of @i. @dby If a Pre'Class or Post'Class aspect is specified for a primitive subprogram @i of a tagged type @i, or such an aspect defaults to True, then a corresponding expression also applies to the corresponding primitive subprogram @i of each descendant of @i. The @i is constructed from the associated expression as follows: @xbullet (or to @i itself) are replaced with references to the corresponding formal parameters of the corresponding inherited or overriding subprogram @i (or to the corresponding subprogram @i itself).> The primitive subprogram @i is illegal if it is not abstract and the corresponding expression for a Pre'Class or Post'Class aspect would be illegal. !corrigendum 7.3.2(3/3) !AI-0041-1 !AI-0150-1 @drepl @xhang<@xterm This aspect shall be specified by an @fa, called an @i. Type_Invariant'Class may be specified on a @fa or a @fa.> @dby @xhang<@xterm This aspect shall be specified by an @fa, called an @i. Type_Invariant'Class may be specified on a @fa, a @fa, or a @fa for an interface type. Type_Invariant'Class determines a @i for a tagged type.> !corrigendum 7.3.2(10/3) !AI-0049-1 !AI-0133-1 @drepl @xbullet, the check is performed on the new object;> @dby @xbullet by default (see 3.3.1), the check is performed on the new object unless the partial view of @i has unknown discriminants;> @xbullet, if the completion is inside the immediate scope of the full view of @i, and the deferred constant is visible outside the immediate scope of @i, the check is performed on the part(s) of type @i;> !corrigendum 7.3.2(19/3) !AI-0042-1 !AI-0044-1 !AI-0149-1 @drepl @xinbull, or one or more parameters with a part of type @i, or an access to variable parameter whose designated type has a part of type @i.> @dby @xinbull @xi2bull, or> @xi2bull or @b parameters with a part of type @i, or> @xi2bull, or> @xi2bull parameter with a part of type @i,> @xinbull @xi2bull<@i is a private type or a private extension and the subprogram or entry is visible outside the immediate scope of type @i or overrides an inherited operation that is visible outside the immediate scope of @i, or> @xi2bull<@i is a record extension, and the subprogram or entry is a primitive operation visible outside the immediate scope of type @i or overrides an inherited operation that is visible outside the immediate scope of @i.> !corrigendum 11.3(2/2) !AI-0022-1 !AI-0152-1 @dinsa @xcode<@fa@ft<@b@fa<; |> @ft<@b @i>@fa>@ft<@b @i>@fa> @dinss @xcode<@fa @i>@fa>@ft<@b @i>@fa> If @fa appears within the @fa of one of the following contexts, the @fa shall appear within a pair of parentheses within the @fa: @xbullet<@fa;> @xbullet<@fa;> @xbullet<@fa;> @xbullet<@fa;> @xbullet<@fa;> @xbullet<@fa;> @xbullet<@fa.> !corrigendum 11.3(4/2) !AI-0022-1 !AI-0062-1 !AI-0152-1 @drepl To @i is to raise a new occurrence of that exception, as explained in 11.4. For the execution of a @fa with an @i@fa, the named exception is raised. If a @i@fa is present, the @fa is evaluated and its value is associated with the exception occurrence. For the execution of a re-raise statement, the exception occurrence that caused transfer of control to the innermost enclosing handler is raised again. @dby To @i is to raise a new occurrence of that exception, as explained in 11.4. For the execution of a @fa with an @i@fa, the named exception is raised. Similarly, for the evaluation of a @fa, the named exception is raised. In both of these cases, if a @i@fa or @i@fa is present, the expression is evaluated and its value is associated with the exception occurrence. For the execution of a re-raise statement, the exception occurrence that caused transfer of control to the innermost enclosing handler is raised again. @xindent<@s9@fa or @i@fa raises an exception, that exception is propagated rather than the one denoted by the @i@fa of the @fa or @fa.>> !corrigendum 11.4.1(10.1/3) !AI-0022-1 !AI-0152-1 @drepl Exception_Message returns the message associated with the given Exception_Occurrence. For an occurrence raised by a call to Raise_Exception, the message is the Message parameter passed to Raise_Exception. For the occurrence raised by a @fa with an @I@fa and a @I@fa, the message is the @i@fa. For the occurrence raised by a @fa with an @i@fa but without a @i@fa, the message is a string giving implementation-defined information about the exception occurrence. For an occurrence originally raised in some other manner (including by the failure of a language-defined check), the message is an unspecified string. In all cases, Exception_Message returns a string with lower bound 1. @dby Exception_Message returns the message associated with the given Exception_Occurrence. For an occurrence raised by a call to Raise_Exception, the message is the Message parameter passed to Raise_Exception. For the occurrence raised by a @fa or @fa with an @I@fa and a @I@fa or @I@fa, the message is the @I@fa or @I@fa. For the occurrence raised by a @fa or @fa with an @i@fa but without a @I@fa or @I@fa, the message is a string giving implementation-defined information about the exception occurrence. For an occurrence originally raised in some other manner (including by the failure of a language-defined check), the message is an unspecified string. In all cases, Exception_Message returns a string with lower bound 1. !corrigendum 13.11.3(5/3) !AI-0003-1 !AI-0136-1 @drepl The language-defined aspect Default_Storage_Pool may be specified for a generic instance; it defines the default pool for access types within an instance. The expected type for the Default_Storage_Pool aspect is Root_Storage_Pool'Class. The @fa must be a name that denotes a variable. This aspect overrides any Default_Storage_Pool pragma that might apply to the generic unit; if the aspect is not specified, the default pool of the instance is that defined for the generic unit. @dby The language-defined aspect Default_Storage_Pool may be specified for a generic instance; it defines the default pool for access types within an instance. The Default_Storage_Pool aspect may be specified as Standard, which is an identifier specific to an aspect (see 13.1.1) and defines the default pool to be Standard. In this case, then there shall not be a declaration with @fa Standard that is immediately visible at the point of the aspect specification, other than package Standard itself. Otherwise, the expected type for the Default_Storage_Pool aspect is Root_Storage_Pool'Class and the @fa shall be a @fa that denotes a variable. This aspect overrides any Default_Storage_Pool pragma that might apply to the generic unit; if the aspect is not specified, the default pool of the instance is that defined for the generic unit. The effect of specifying the aspect Default_Storage_Pool on an instance of a language-defined generic unit is implementation-defined. !corrigendum 13.13.2(38/3) !AI-0106-1 !AI-0121-1 @drepl The stream-oriented attributes may be specified for any type via an @fa. The subprogram name given in such a clause shall statically denote a subprogram that is not an abstract subprogram. Furthermore, if a stream-oriented attribute is specified for an interface type by an @fa, the subprogram name given in the clause shall statically denote a null procedure. @dby The stream-oriented attributes may be specified for any type via an @fa. Alternatively, each of the specific stream-oriented attributes may be specified using an @fa on any @fa, with the aspect name being the corresponding attribute name. Each of the class-wide stream-oriented attributes may be specified using an @fa for a tagged type @i using the name of the stream-oriented attribute followed by 'Class; such class-wide aspects do not apply to other descendants of @i. The subprogram name given in such an @fa or @fa shall statically denote a subprogram that is not an abstract subprogram. Furthermore, if a specific stream-oriented attribute is specified for an interface type, the subprogram name given in the @fa or @fa shall statically denote a null procedure. !corrigendum 13.14(5/3) !AI-0103-1 !AI-0132-1 @dinsa @xbullet causes freezing, except that a @fa which is a generic actual parameter whose corresponding generic formal parameter is a formal incomplete type (see 12.5.1) does not cause freezing. In addition, if a parameter of the instantiation is defaulted, the @fa or @fa for that parameter causes freezing.> @dinss @xbullet that is completion, the @fa of the expression function causes freezing.> @xbullet@fa denotes an expression function, the @fa of the expression function causes freezing.> !corrigendum A(3) !AI-0052-1 !AI-0114-1 @drepl The implementation shall ensure that each language-defined subprogram is reentrant in the sense that concurrent calls on the same subprogram perform as specified, so long as all parameters that could be passed by reference denote nonoverlapping objects. @dby The implementation shall ensure that each language-defined subprogram is reentrant in the sense that concurrent calls on any language-defined subprogram perform as specified, so long as all objects that are denoted by parameters that could be passed by reference or designated by parameters of an access type are nonoverlapping. For the purpose of determining whether concurrent calls on text input-output subprograms are required to perform as specified above, when calling a subprogram within Text_IO or its children that implicitly operates on one of the default input/output files, the subprogram is considered to have a parameter of Current_Input or Current_Output (as appropriate). !corrigendum D.13(6/3) !AI-0055-1 !AI-0073-1 @drepl @xcode<@b Task_Dispatching_Policy (FIFO_Within_Priorities); @b Locking_Policy (Ceiling_Locking); @b Detect_Blocking; @b Restrictions ( No_Abort_Statements, No_Dynamic_Attachment, No_Dynamic_Priorities, No_Implicit_Heap_Allocations, No_Local_Protected_Objects, No_Local_Timing_Events, No_Protected_Type_Allocators, No_Relative_Delay, No_Requeue_Statements, No_Select_Statements, No_Specific_Termination_Handlers, No_Task_Allocators, No_Task_Hierarchy, No_Task_Termination, Simple_Barriers, Max_Entry_Queue_Length =@> 1, Max_Protected_Entries =@> 1, Max_Task_Entries =@> 0, No_Dependence =@> Ada.Asynchronous_Task_Control, No_Dependence =@> Ada.Calendar, No_Dependence =@> Ada.Execution_Time.Group_Budgets, No_Dependence =@> Ada.Execution_Time.Timers, No_Dependence =@> Ada.Task_Attributes, No_Dependence =@> System.Multiprocessors.Dispatching_Domains);> @dby @xcode<@b Task_Dispatching_Policy (FIFO_Within_Priorities); @b Locking_Policy (Ceiling_Locking); @b Detect_Blocking; @b Restrictions ( No_Abort_Statements, No_Dynamic_Attachment, No_Dynamic_CPU_Assignment, No_Dynamic_Priorities, No_Implicit_Heap_Allocations, No_Local_Protected_Objects, No_Local_Timing_Events, No_Protected_Type_Allocators, No_Relative_Delay, No_Requeue_Statements, No_Select_Statements, No_Specific_Termination_Handlers, No_Task_Allocators, No_Task_Hierarchy, No_Task_Termination, Simple_Barriers, Max_Entry_Queue_Length =@> 1, Max_Protected_Entries =@> 1, Max_Task_Entries =@> 0, No_Dependence =@> Ada.Asynchronous_Task_Control, No_Dependence =@> Ada.Calendar, No_Dependence =@> Ada.Execution_Time.Group_Budgets, No_Dependence =@> Ada.Execution_Time.Timers, No_Dependence =@> Ada.Synchronous_Barriers, No_Dependence =@> Ada.Task_Attributes, No_Dependence =@> System.Multiprocessors.Dispatching_Domains);> !corrigendum E.2.2(17/2) !AI-0076-1 !AI-0085-1 @drepl @xbullet shall not be a remote access-to-class-wide type. A remote access-to-class-wide type shall not be an actual parameter for a generic formal access type. The Storage_Size attribute of a remote access-to-class-wide type yields 0; it is not allowed in an @fa.> @dby @xbullet shall not be a remote access-to-class-wide type. A remote access-to-class-wide type shall not be an actual parameter for a generic formal access type. The Storage_Size attribute of a remote access-to-class-wide type yields 0. The Storage_Pool and Storage_Size aspects shall not be specified for a remote access-to-class-wide type.> @s8<@i> Execution is erroneous if some operation (other than the initialization or finalization of the object) modifies the value of a constant object declared in the visible part of a remote types package.