CVS difference for ai12s/ai12-0399-1.txt

Differences between 1.3 and version 1.4
Log of other versions for file ai12s/ai12-0399-1.txt

--- ai12s/ai12-0399-1.txt	2020/12/17 04:14:26	1.3
+++ ai12s/ai12-0399-1.txt	2021/02/13 04:56:11	1.4
@@ -1,4 +1,53 @@
-!standard 9.5(53/5)                                  20-12-14  AI12-0399-1/03
+!standard 9.5(53/5)                                  21-02-10  AI12-0399-1/04
+!standard 3.9(6/5)
+!standard 7.6(5/2)
+!standard 7.6(7/2)
+!standard 11.4.1(2/5)
+!standard 11.4.1(3/2)
+!standard 13.11(6/2)
+!standard 13.11.4(4/5)
+!standard 13.11.4(5/5)
+!standard 13.13.1(3/2)
+!standard A.4.2(4/2)
+!standard A.4.2(20/2)
+!standard A.4.5(4/2)
+!standard A.4.7(4/2)
+!standard A.4.7(20/2)
+!standard A.4.8(4/2)
+!standard A.4.8(20/2)
+!standard A.12.1(5/4)
+!standard A.18.2(8/5)
+!standard A.18.2(9/2)
+!standard A.18.2(79.2/5)
+!standard A.18.2(79.3/5)
+!standard A.18.3(6/5)
+!standard A.18.3(7/2)
+!standard A.18.3(50.2/5)
+!standard A.18.3(50.3/5)  
+!standard A.18.5(3/5)
+!standard A.18.5(4/2)
+!standard A.18.5(37.3/5)
+!standard A.18.5(37.4/5)
+!standard A.18.6(4/5)
+!standard A.18.6(5/2)
+!standard A.18.6(51.4/5)
+!standard A.18.6(51.5/5)
+!standard A.18.8(3/5)
+!standard A.18.8(4/2)
+!standard A.18.8(58.2/5)
+!standard A.18.8(58.3/5)  
+!standard A.18.9(4/5)
+!standard A.18.9(5/2)
+!standard A.18.9(74.2/5)
+!standard A.18.9(74.3/5)  
+!standard A.18.10(8/5)
+!standard A.18.10(9/3)
+!standard A.18.10(70.2/5)
+!standard A.18.10(70.3/5)
+!standard A.18.18(6/5)
+!standard B.3.1(5/2)
+!standard C.7.1(2/5)
+!standard G.1.1(4/2)
 !class Amendment 20-10-15
 !status Amendment 1-2012 20-10-21
 !status ARG Approved 13-1-0  20-10-21
@@ -99,18 +148,19 @@
 
   type Character_Set is private[;]
    [pragma]{with} Preelaborable_Initialization[(Character_Set)];
-   
+
+Modify A.4.2(20/2):
+   -- Representation for a character to character mapping:
+   type Character_Mapping is private[;]
+   [pragma]{with} Preelaborable_Initialization[(Character_Mapping)];
+
 Modify A.4.5(4/2):
   type Unbounded_String is private[;]
    [pragma]{with} Preelaborable_Initialization[(Unbounded_String)];
    
-Modify A.4.7(4/2):
-
-  type Wide_Character_Set is private[;]
-    [pragma]{with} Preelaborable_Initialization[(Wide_Character_Set)];
-    
 In a corresponding fashion:
 
+  Modify A.4.7(4/2), (20/2)
   Modify A.4.8(4/2), (20/2)
   Modify A.12.1(5/4)
   Modify A.18.2(8/5), (9/2), (79.2/5), (79.3/5)
@@ -129,15 +179,523 @@
 
 (See !proposal.)
 
+!corrigendum 3.9(6/2)
+
+@drepl
+@xcode<@b<package> Ada.Tags @b<is>
+    @b<pragma> Preelaborate(Tags);
+    @b<type> Tag @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Tag);>
+@dby
+@xcode<@b<package> Ada.Tags
+    @b<with> Preelaborate, Nonblocking, Global =@> @b<in out synchronized> @b<is>
+    @b<type> Tag @b<is private> 
+       @b<with> Preelaborable_Initialization;>
+
+!corrigendum  7.06(5/2)
+
+@drepl
+@xcode<    @b<type> Controlled @b<is abstract tagged private>;
+    @b<pragma> Preelaborable_Initialization(Controlled);>
+@dby
+@xcode<    @b<type> Controlled @b<is abstract tagged private>
+       @b<with> Preelaborable_Initialization;>
+
+!corrigendum  7.06(7/2)
+
+@drepl
+@xcode<    @b<type> Limited_Controlled @b<is abstract tagged limited private>;
+    @b<pragma> Preelaborable_Initialization(Limited_Controlled);>
+@dby
+@xcode<    @b<type> Limited_Controlled @b<is abstract tagged limited private>
+       @b<with> Preelaborable_Initialization;>
+
+!corrigendum 9.5(17/3)
+
+@dinsa
+In addition to the places where Legality Rules normally apply (see 12.3),
+these rules also apply in the private part of an instance of a generic unit. 
+@dinss
+@s8<@i<Static Semantics>>
+
+{{The remainder of this change is found in the conflict file.}}
+
+!corrigendum 11.4.1(2/2)
+
+@drepl
+@xcode<@b<with> Ada.Streams;
+@b<package> Ada.Exceptions @b<is>
+    @b<pragma> Preelaborate(Exceptions);
+    @b<type> Exception_Id @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Exception_Id);
+    Null_Id : @b<constant> Exception_Id;
+    @b<function> Exception_Name(Id : Exception_Id) @b<return> String;
+    @b<function> Wide_Exception_Name(Id : Exception_Id) @b<return> Wide_String;
+    @b<function> Wide_Wide_Exception_Name(Id : Exception_Id)
+        @b<return> Wide_Wide_String;>
+@dby
+@xcode<@b<with> Ada.Streams;
+@b<package> Ada.Exceptions
+    @b<with> Preelaborate, Nonblocking, Global =@> @b<in out synchronized> @b<is>
+    @b<type> Exception_Id @b<is private>
+        @b<with> Preelaborable_Initialization;
+    Null_Id : @b<constant> Exception_Id;
+    @b<function> Exception_Name(Id : Exception_Id) @b<return> String;
+    @b<function> Wide_Exception_Name(Id : Exception_Id) @b<return> Wide_String;
+    @b<function> Wide_Wide_Exception_Name(Id : Exception_Id)
+        @b<return> Wide_Wide_String;>
+
+!corrigendum 11.4.1(3/2)
+
+@drepl
+@xcode<    @b<type> Exception_Occurrence @b<is limited private>;
+    @b<pragma> Preelaborable_Initialization(Exception_Occurrence);
+    @b<type> Exception_Occurrence_Access @b<is access all> Exception_Occurrence;
+    Null_Occurrence : @b<constant> Exception_Occurrence;>
+@dby
+@xcode<    @b<type> Exception_Occurrence @b<is limited private>
+        @b<with> Preelaborable_Initialization;
+    @b<type> Exception_Occurrence_Access @b<is access all> Exception_Occurrence;
+    Null_Occurrence : @b<constant> Exception_Occurrence;>
+
+!corrigendum  13.11(6/2)
+
+@drepl
+@xcode<    @b<type> Root_Storage_Pool @b<is>
+        @b<abstract new> Ada.Finalization.Limited_Controlled @b<with private>;
+    @b<pragma> Preelaborable_Initialization(Root_Storage_Pool);>
+@dby
+@xcode<    @b<type> Root_Storage_Pool @b<is>
+        @b<abstract new> Ada.Finalization.Limited_Controlled @b<with private>
+        @b<with> Preelaborable_Initialization;>
+
+!corrigendum 13.11.4(4/3)
+
+@drepl
+@xcode<   @b<type> Root_Storage_Pool_With_Subpools @b<is>
+      @b<abstract new> Root_Storage_Pool @b<with private>;>
+@dby
+@xcode<   @b<type> Root_Storage_Pool_With_Subpools @b<is>
+      @b<abstract new> Root_Storage_Pool @b<with private>
+      @b<with> Preelaborable_Initialization;>
+
+!corrigendum 13.11.4(5/3)
+
+@drepl
+@xcode<   @b<type> Root_Subpool @b<is abstract tagged limited private>;>
+@dby
+@xcode<   @b<type> Root_Subpool @b<is abstract tagged limited private>
+      @b<with> Preelaborable_Initialization;>
+
+!corrigendum  13.13.1(3/2)
+
+@drepl
+@xcode<    @b<type> Root_Stream_Type @b<is abstract tagged limited private>;
+    @b<pragma> Preelaborable_Initialization(Root_Stream_Type);>
+@dby
+@xcode<    @b<type> Root_Stream_Type @b<is abstract tagged limited private>
+        @b<with> Preelaborable_Initialization;>
+
+!corrigendum  A.4.2(4/2)
+
+@drepl
+@xcode<    --@ft<@i< Representation for a set of character values:>>
+    @b<type> Character_Set @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Character_Set);>
+@dby
+@xcode<    --@ft<@i< Representation for a set of character values:>>
+    @b<type> Character_Set @b<is private>
+       @b<with> Preelaborable_Initialization;>
+
+!corrigendum  A.4.2(20/2)
+
+@drepl
+@xcode<    --@ft<@i< Representation for a character to character mapping:>>
+    @b<type> Character_Mapping @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Character_Mapping);>
+@dby
+@xcode<    --@ft<@i< Representation for a character to character mapping:>>
+    @b<type> Character_Mapping @b<is private>
+       @b<with> Preelaborable_Initialization;>
+
+!corrigendum  A.4.5(4/2)
+
+@drepl
+@xcode<    @b<type> Unbounded_String @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Unbounded_String);>
+@dby
+@xcode<    @b<type> Unbounded_String @b<is private>
+       @b<with> Preelaborable_Initialization;>
+
+!corrigendum  A.4.7(4/2)
+
+@drepl
+@xcode<    --@ft<@i< Representation for a set of Wide_Character values:>>
+    @b<type> Wide_Character_Set @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Wide_Character_Set);>
+@dby
+@xcode<    --@ft<@i< Representation for a set of Wide_Character values:>>
+    @b<type> Wide_Character_Set @b<is private>
+       @b<with> Preelaborable_Initialization;>
+
+!corrigendum  A.4.7(20/2)
+
+@drepl
+@xcode<    --@ft<@i< Representation for a Wide_Character to Wide_Character mapping:>>
+    @b<type> Wide_Character_Mapping @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Wide_Character_Mapping);>
+@dby
+@xcode<    --@ft<@i< Representation for a Wide_Character to Wide_Character mapping:>>
+    @b<type> Wide_Character_Mapping @b<is private>
+       @b<with> Preelaborable_Initialization;>
+
+!corrigendum  A.4.8(4/2)
+
+@drepl
+@xcode<    -- @ft<@i<Representation for a set of Wide_Wide_Character values:>>
+    @b<type> Wide_Wide_Character_Set @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Wide_Wide_Character_Set);>
+@dby
+@xcode<    -- @ft<@i<Representation for a set of Wide_Wide_Character values:>>
+    @b<type> Wide_Wide_Character_Set @b<is private>
+       @b<with> Preelaborable_Initialization;>
+
+!corrigendum  A.4.8(20/2)
+
+@drepl
+@xcode<    -- @ft<@i<Representation for a Wide_Wide_Character to Wide_Wide_Character>>
+    -- @ft<@i<mapping:>>
+    @b<type> Wide_Wide_Character_Mapping @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Wide_Wide_Character_Mapping);>
+@dby
+@xcode<    -- @ft<@i<Representation for a Wide_Wide_Character to Wide_Wide_Character>>
+    -- @ft<@i<mapping:>>
+    @b<type> Wide_Wide_Character_Mapping @b<is private>
+       @b<with> Preelaborable_Initialization;>
+
+!corrigendum A.12.1(5/4)
+
+@drepl
+@xcode<    @b<type> File_Type @b<is limited private>;
+    @b<pragma> Preelaborable_Initialization(File_Type);>
+@dby
+@xcode<    @b<type> File_Type @b<is limited private>
+        @b<with> Preelaborable_Initialization;>
+
+!corrigendum A.18.2(8/3)
+
+@drepl
+@xcode<   @b<type> Vector @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Variable_Indexing =@> Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type;
+   @b<pragma> Preelaborable_Initialization(Vector);>
+@dby
+@xcode<   @b<type> Vector @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Variable_Indexing =@> Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type,
+           Iterator_View     =@> Stable.Vector,
+           Aggregate         =@> (Empty          =@> Empty,
+                                 Add_Unnamed    =@> Append,
+                                 New_Indexed    =@> New_Vector,
+                                 Assign_Indexed =@> Replace_Element),
+           Stable_Properties =@> (Length, Capacity,
+                                 Tampering_With_Cursors_Prohibited,
+                                 Tampering_With_Elements_Prohibited),
+           Default_Initial_Condition =@> 
+              Length (Vector) = 0 @b<and then>
+              (@b<not> Tampering_With_Cursors_Prohibited (Vector)) @b<and then>
+              (@b<not> Tampering_With_Elements_Prohibited (Vector)),
+           Preelaborable_Initialization;>
+
+!corrigendum A.18.2(9/2)
+
+@drepl
+@xcode<    @b<type> Cursor @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Cursor);>
+@dby
+@xcode<    @b<type> Cursor @b<is private>
+        @b<with> Preelaborable_Initialization;>
+
+!corrigendum A.18.3(6/3)
+
+@drepl
+@xcode<   @b<type> List @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Variable_Indexing =@> Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type;
+   @b<pragma> Preelaborable_Initialization(List);>
+@dby
+@xcode<   @b<type> List @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Variable_Indexing =@> Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type,
+           Iterator_View     =@> Stable.List,
+           Aggregate         =@> (Empty       =@> Empty,
+                                 Add_Unnamed =@> Append),
+           Stable_Properties =@> (Length, 
+                                 Tampering_With_Cursors_Prohibited,
+                                 Tampering_With_Elements_Prohibited),
+           Default_Initial_Condition =@> 
+              Length (List) = 0 @b<and then>
+              (@b<not> Tampering_With_Cursors_Prohibited (List)) @b<and then>
+              (@b<not> Tampering_With_Elements_Prohibited (List)),
+           Preelaborable_Initialization;>
+
+!comment A.18.2(79/2) is not formatted in AI12-0111-1, and will not be handled here, either.
+
+!corrigendum A.18.3(7/2)
+
+@drepl
+@xcode<    @b<type> Cursor @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Cursor);>
+@dby
+@xcode<    @b<type> Cursor @b<is private>
+        @b<with> Preelaborable_Initialization;>
+
+!comment A.18.3(51/2) is not formatted in AI12-0111-1, and will not be handled here, either.
+
+!corrigendum A.18.5(3/2)
+
+@drepl
+@xcode<   @b<type> Map @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Variable_Indexing =@> Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type;
+   @b<pragma> Preelaborable_Initialization(Map);>
+@dby
+@xcode<   @b<type> Map @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Variable_Indexing =@> Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type,
+           Iterator_View     =@> Stable.Map,
+           Aggregate         =@> (Empty     =@> Empty,
+                                 Add_Named =@> Insert),
+           Stable_Properties =@> (Length, 
+                                 Tampering_With_Cursors_Prohibited,
+                                 Tampering_With_Elements_Prohibited),
+           Default_Initial_Condition =@>
+              Length (Map) = 0 @b<and then>
+              (@b<not> Tampering_With_Cursors_Prohibited (Map)) @b<and then>
+              (@b<not> Tampering_With_Elements_Prohibited (Map)),
+           Preelaborable_Initialization;>
+
+!corrigendum A.18.5(4/2)
+
+@drepl
+@xcode<    @b<type> Cursor @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Cursor);>
+@dby
+@xcode<    @b<type> Cursor @b<is private>
+        @b<with> Preelaborable_Initialization;>
+
+!comment A.18.5(37/2) is not formatted in AI12-0111-1, and will not be handled here, either.
+
+!corrigendum A.18.6(4/3)
+
+@drepl
+@xcode<   @b<type> Map @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Variable_Indexing =@> Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type;
+   @b<pragma> Preelaborable_Initialization(Map);>
+@dby
+@xcode<   @b<type> Map @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Variable_Indexing =@> Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type,
+           Iterator_View     =@> Stable.Map,
+           Aggregate         =@> (Empty     =@> Empty,
+                                 Add_Named =@> Insert),
+           Stable_Properties =@> (Length, 
+                                 Tampering_With_Cursors_Prohibited,
+                                 Tampering_With_Elements_Prohibited),
+           Default_Initial_Condition =@> 
+              Length (Map) = 0 @b<and then>
+              (@b<not> Tampering_With_Cursors_Prohibited (Map)) @b<and then>
+              (@b<not> Tampering_With_Elements_Prohibited (Map)),
+           Preelaborable_Initialization;>
+
+!corrigendum A.18.6(5/2)
+
+@drepl
+@xcode<    @b<type> Cursor @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Cursor);>
+@dby
+@xcode<    @b<type> Cursor @b<is private>
+        @b<with> Preelaborable_Initialization;>
+
+!comment A.18.6(51/2) is not formatted in AI12-0111-1, and will not be handled here, either.
+
+!corrigendum A.18.8(3/3)
+
+@drepl
+@xcode<   @b<type> Set @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type;
+   @b<pragma> Preelaborable_Initialization(Set);>
+@dby
+@xcode<   @b<type> Set @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type,
+           Iterator_View     =@> Stable.Set,
+           Aggregate         =@> (Empty       =@> Empty,
+                                 Add_Unnamed =@> Include),
+           Stable_Properties =@> (Length, 
+                                 Tampering_With_Cursors_Prohibited),
+           Default_Initial_Condition =@>
+              Length (Set) = 0 @b<and then>
+              (@b<not> Tampering_With_Cursors_Prohibited (Set)),
+           Preelaborable_Initialization;>
+
+!corrigendum A.18.8(4/2)
+
+@drepl
+@xcode<    @b<type> Cursor @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Cursor);>
+@dby
+@xcode<    @b<type> Cursor @b<is private>
+        @b<with> Preelaborable_Initialization;>
+
+!comment A.18.8(58/2) is not formatted in AI12-0111-1, and will not be handled here, either.
+
+!corrigendum A.18.9(4/3)
+
+@drepl
+@xcode<   @b<type> Set @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type;
+   @b<pragma> Preelaborable_Initialization(Set);>
+@dby
+@xcode<   @b<type> Set @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type,
+           Iterator_View     =@> Stable.Set,
+           Aggregate         =@> (Empty       =@> Empty,
+                                 Add_Unnamed =@> Include),
+           Stable_Properties =@> (Length,
+                                 Tampering_With_Cursors_Prohibited),
+           Default_Initial_Condition =@> 
+              Length (Set) = 0 @b<and then>
+              (@b<not> Tampering_With_Cursors_Prohibited (Set)),
+           Preelaborable_Initialization;>
+
+!corrigendum A.18.9(5/2)
+
+@drepl
+@xcode<    @b<type> Cursor @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Cursor);>
+@dby
+@xcode<    @b<type> Cursor @b<is private>
+        @b<with> Preelaborable_Initialization;>
+
+!comment A.18.9(74/2) is not formatted in AI12-0111-1, and will not be handled here, either.
+
+!corrigendum A.18.10(8/3)
+
+@drepl
+@xcode<   @b<type> Tree @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Variable_Indexing =@> Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type;
+   @b<pragma> Preelaborable_Initialization(Tree);>
+@dby
+@xcode<   @b<type> Tree @b<is tagged private>
+      @b<with> Constant_Indexing =@> Constant_Reference,
+           Variable_Indexing =@> Reference,
+           Default_Iterator  =@> Iterate,
+           Iterator_Element  =@> Element_Type,
+           Iterator_View     =@> Stable.Tree,
+           Stable_Properties =@> (Node_Count,
+                                 Tampering_With_Cursors_Prohibited,
+                                 Tampering_With_Elements_Prohibited),
+           Default_Initial_Condition =@> 
+              Node_Count (Tree) = 1 @b<and then>
+              (@b<not> Tampering_With_Cursors_Prohibited (Tree)) @b<and then>
+              (@b<not> Tampering_With_Elements_Prohibited (Tree)),
+           Preelaborable_Initialization;>
+
+!corrigendum A.18.10(9/3)
+
+@drepl
+@xcode<    @b<type> Cursor @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Cursor);>
+@dby
+@xcode<    @b<type> Cursor @b<is private>
+        @b<with> Preelaborable_Initialization;>
+
+!comment A.18.10(70/3) is not formatted in AI12-0111-1, and will not be handled here, either.
+
+!corrigendum A.18.18(6/3)
+
+@drepl
+@xcode<   @b<type> Holder @b<is tagged private>;
+   @b<pragma> Preelaborable_Initialization (Holder);>
+@dby
+@xcode<   @b<type> Holder @b<is tagged private> 
+      @b<with> Stable_Properties =@> (Is_Empty,
+                                 Tampering_With_The_Element_Prohibited),
+           Default_Initial_Condition =@> Is_Empty (Holder),
+           Preelaborable_Initialization;>
+
+
+
+!corrigendum  B.3.1(5/2)
+
+@drepl
+@xcode<   @b<type> chars_ptr @b<is private>;
+   @b<pragma> Preelaborable_Initialization(chars_ptr);>
+@dby
+@xcode<   @b<type> chars_ptr @b<is private>
+      @b<with> Preelaborable_Initialization;>
+
+!corrigendum C.7.1(2/2)
+
+@drepl
+@xcode<@b<package> Ada.Task_Identification @b<is>
+   @b<pragma> Preelaborate(Task_Identification);
+   @b<type> Task_Id @b<is private>;
+   @b<pragma> Preelaborable_Initialization (Task_Id);
+   Null_Task_Id : @b<constant> Task_Id;
+   @b<function>  "=" (Left, Right : Task_Id) @b<return> Boolean;>
+@dby
+@xcode<@b<package> Ada.Task_Identification
+   @b<with> Preelaborate, Nonblocking, Global =@> @b<in out synchronized> @b<is>
+   @b<type> Task_Id @b<is private>
+      @b<with> Preelaborable_Initialization;
+   Null_Task_Id : @b<constant> Task_Id;
+   @b<function>  "=" (Left, Right : Task_Id) @b<return> Boolean;>
+
+!corrigendum G.1.1(4/2)
+
+@drepl
+@xcode<    @b<type> Imaginary @b<is private>;
+    @b<pragma> Preelaborable_Initialization(Imaginary);>
+@dby
+@xcode<    @b<type> Imaginary @b<is private>
+        @b<with> Preelaborable_Initialization;>
+
 !ASIS
 
-[Not sure. It seems like some new capabilities might be needed,
-but I didn't check - Editor.]
+No ASIS effect.
 
 !ACATS test
 
-ACATS B- and C-Tests are needed to check that the new capabilities are
-supported.
+No ACATS tests needed.
 
 
 !appendix

Questions? Ask the ACAA Technical Agent