===================================================================
@@ -264,6 +264,13 @@
-- Import_Pragma Node35
+ -- (unused) Node36
+ -- (unused) Node37
+ -- (unused) Node38
+ -- (unused) Node39
+ -- (unused) Node40
+ -- (unused) Node41
+
---------------------------------------------
-- Usage of Flags in Defining Entity Nodes --
---------------------------------------------
@@ -10063,6 +10070,78 @@
end case;
end Write_Field35_Name;
+ ------------------------
+ -- Write_Field36_Name --
+ ------------------------
+
+ procedure Write_Field36_Name (Id : Entity_Id) is
+ begin
+ case Ekind (Id) is
+ when others =>
+ Write_Str ("Field36??");
+ end case;
+ end Write_Field36_Name;
+
+ ------------------------
+ -- Write_Field37_Name --
+ ------------------------
+
+ procedure Write_Field37_Name (Id : Entity_Id) is
+ begin
+ case Ekind (Id) is
+ when others =>
+ Write_Str ("Field37??");
+ end case;
+ end Write_Field37_Name;
+
+ ------------------------
+ -- Write_Field38_Name --
+ ------------------------
+
+ procedure Write_Field38_Name (Id : Entity_Id) is
+ begin
+ case Ekind (Id) is
+ when others =>
+ Write_Str ("Field38??");
+ end case;
+ end Write_Field38_Name;
+
+ ------------------------
+ -- Write_Field39_Name --
+ ------------------------
+
+ procedure Write_Field39_Name (Id : Entity_Id) is
+ begin
+ case Ekind (Id) is
+ when others =>
+ Write_Str ("Field39??");
+ end case;
+ end Write_Field39_Name;
+
+ ------------------------
+ -- Write_Field40_Name --
+ ------------------------
+
+ procedure Write_Field40_Name (Id : Entity_Id) is
+ begin
+ case Ekind (Id) is
+ when others =>
+ Write_Str ("Field40??");
+ end case;
+ end Write_Field40_Name;
+
+ ------------------------
+ -- Write_Field41_Name --
+ ------------------------
+
+ procedure Write_Field41_Name (Id : Entity_Id) is
+ begin
+ case Ekind (Id) is
+ when others =>
+ Write_Str ("Field41??");
+ end case;
+ end Write_Field41_Name;
+
-------------------------
-- Iterator Procedures --
-------------------------
===================================================================
@@ -8001,6 +8001,12 @@
procedure Write_Field33_Name (Id : Entity_Id);
procedure Write_Field34_Name (Id : Entity_Id);
procedure Write_Field35_Name (Id : Entity_Id);
+ procedure Write_Field36_Name (Id : Entity_Id);
+ procedure Write_Field37_Name (Id : Entity_Id);
+ procedure Write_Field38_Name (Id : Entity_Id);
+ procedure Write_Field39_Name (Id : Entity_Id);
+ procedure Write_Field40_Name (Id : Entity_Id);
+ procedure Write_Field41_Name (Id : Entity_Id);
-- These routines are used in Treepr to output a nice symbolic name for
-- the given field, depending on the Ekind. No blanks or end of lines are
-- output, just the characters of the field name.
===================================================================
@@ -2553,6 +2553,42 @@
return Nodes.Table (N + 5).Field11;
end Field35;
+ function Field36 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 6).Field6;
+ end Field36;
+
+ function Field37 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 6).Field7;
+ end Field37;
+
+ function Field38 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 6).Field8;
+ end Field38;
+
+ function Field39 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 6).Field9;
+ end Field39;
+
+ function Field40 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 6).Field10;
+ end Field40;
+
+ function Field41 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 6).Field11;
+ end Field41;
+
function Node1 (N : Node_Id) return Node_Id is
begin
pragma Assert (N <= Nodes.Last);
@@ -2763,6 +2799,42 @@
return Node_Id (Nodes.Table (N + 5).Field11);
end Node35;
+ function Node36 (N : Node_Id) return Node_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Node_Id (Nodes.Table (N + 6).Field6);
+ end Node36;
+
+ function Node37 (N : Node_Id) return Node_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Node_Id (Nodes.Table (N + 6).Field7);
+ end Node37;
+
+ function Node38 (N : Node_Id) return Node_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Node_Id (Nodes.Table (N + 6).Field8);
+ end Node38;
+
+ function Node39 (N : Node_Id) return Node_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Node_Id (Nodes.Table (N + 6).Field9);
+ end Node39;
+
+ function Node40 (N : Node_Id) return Node_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Node_Id (Nodes.Table (N + 6).Field10);
+ end Node40;
+
+ function Node41 (N : Node_Id) return Node_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Node_Id (Nodes.Table (N + 6).Field11);
+ end Node41;
+
function List1 (N : Node_Id) return List_Id is
begin
pragma Assert (N <= Nodes.Last);
@@ -5334,6 +5406,42 @@
Nodes.Table (N + 5).Field11 := Val;
end Set_Field35;
+ procedure Set_Field36 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field6 := Val;
+ end Set_Field36;
+
+ procedure Set_Field37 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field7 := Val;
+ end Set_Field37;
+
+ procedure Set_Field38 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field8 := Val;
+ end Set_Field38;
+
+ procedure Set_Field39 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field9 := Val;
+ end Set_Field39;
+
+ procedure Set_Field40 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field10 := Val;
+ end Set_Field40;
+
+ procedure Set_Field41 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field11 := Val;
+ end Set_Field41;
+
procedure Set_Node1 (N : Node_Id; Val : Node_Id) is
begin
pragma Assert (N <= Nodes.Last);
@@ -5544,6 +5652,42 @@
Nodes.Table (N + 5).Field11 := Union_Id (Val);
end Set_Node35;
+ procedure Set_Node36 (N : Node_Id; Val : Node_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field6 := Union_Id (Val);
+ end Set_Node36;
+
+ procedure Set_Node37 (N : Node_Id; Val : Node_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field7 := Union_Id (Val);
+ end Set_Node37;
+
+ procedure Set_Node38 (N : Node_Id; Val : Node_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field8 := Union_Id (Val);
+ end Set_Node38;
+
+ procedure Set_Node39 (N : Node_Id; Val : Node_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field9 := Union_Id (Val);
+ end Set_Node39;
+
+ procedure Set_Node40 (N : Node_Id; Val : Node_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field10 := Union_Id (Val);
+ end Set_Node40;
+
+ procedure Set_Node41 (N : Node_Id; Val : Node_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 6).Field11 := Union_Id (Val);
+ end Set_Node41;
+
procedure Set_List1 (N : Node_Id; Val : List_Id) is
begin
pragma Assert (N <= Nodes.Last);
===================================================================
@@ -68,11 +68,11 @@
-- Size of Entities --
----------------------
- -- Currently entities are composed of 6 sequentially allocated 32-byte
+ -- Currently entities are composed of 7 sequentially allocated 32-byte
-- nodes, considered as a single record. The following definition gives
-- the number of extension nodes.
- Num_Extension_Nodes : Node_Id := 5;
+ Num_Extension_Nodes : Node_Id := 6;
-- This value is increased by one if debug flag -gnatd.N is set. This is
-- for testing performance impact of adding a new extension node. We make
-- this of type Node_Id for easy reference in loops using this value.
@@ -213,8 +213,8 @@
-- Elist6 Synonym for Field6 typed as Elist_Id (Empty = No_Elist)
-- Uint6 Synonym for Field6 typed as Uint (Empty = Uint_0)
- -- Similar definitions for Field7 to Field35 (and also Node7-Node35,
- -- Elist7-Elist35, Uint7-Uint35, Ureal7-Ureal35). Note that not all
+ -- Similar definitions for Field7 to Field41 (and also Node7-Node41,
+ -- Elist7-Elist41, Uint7-Uint41, Ureal7-Ureal41). Note that not all
-- these functions are defined, only the ones that are actually used.
function Last_Node_Id return Node_Id;
@@ -355,13 +355,13 @@
-- Field1-5 fields are set to Empty
- -- Field6-35 fields in extended nodes are set to Empty
+ -- Field6-41 fields in extended nodes are set to Empty
-- Parent is set to Empty
-- All Boolean flag fields are set to False
- -- Note: the value Empty is used in Field1-Field35 to indicate a null node.
+ -- Note: the value Empty is used in Field1-Field41 to indicate a null node.
-- The usage varies. The common uses are to indicate absence of an optional
-- clause or a completely unused Field1-35 field.
@@ -1185,6 +1185,24 @@
function Field35 (N : Node_Id) return Union_Id;
pragma Inline (Field35);
+ function Field36 (N : Node_Id) return Union_Id;
+ pragma Inline (Field36);
+
+ function Field37 (N : Node_Id) return Union_Id;
+ pragma Inline (Field37);
+
+ function Field38 (N : Node_Id) return Union_Id;
+ pragma Inline (Field38);
+
+ function Field39 (N : Node_Id) return Union_Id;
+ pragma Inline (Field39);
+
+ function Field40 (N : Node_Id) return Union_Id;
+ pragma Inline (Field40);
+
+ function Field41 (N : Node_Id) return Union_Id;
+ pragma Inline (Field41);
+
function Node1 (N : Node_Id) return Node_Id;
pragma Inline (Node1);
@@ -1290,6 +1308,24 @@
function Node35 (N : Node_Id) return Node_Id;
pragma Inline (Node35);
+ function Node36 (N : Node_Id) return Node_Id;
+ pragma Inline (Node36);
+
+ function Node37 (N : Node_Id) return Node_Id;
+ pragma Inline (Node37);
+
+ function Node38 (N : Node_Id) return Node_Id;
+ pragma Inline (Node38);
+
+ function Node39 (N : Node_Id) return Node_Id;
+ pragma Inline (Node39);
+
+ function Node40 (N : Node_Id) return Node_Id;
+ pragma Inline (Node40);
+
+ function Node41 (N : Node_Id) return Node_Id;
+ pragma Inline (Node41);
+
function List1 (N : Node_Id) return List_Id;
pragma Inline (List1);
@@ -2500,6 +2536,24 @@
procedure Set_Field35 (N : Node_Id; Val : Union_Id);
pragma Inline (Set_Field35);
+ procedure Set_Field36 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field36);
+
+ procedure Set_Field37 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field37);
+
+ procedure Set_Field38 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field38);
+
+ procedure Set_Field39 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field39);
+
+ procedure Set_Field40 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field40);
+
+ procedure Set_Field41 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field41);
+
procedure Set_Node1 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node1);
@@ -2605,6 +2659,24 @@
procedure Set_Node35 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node35);
+ procedure Set_Node36 (N : Node_Id; Val : Node_Id);
+ pragma Inline (Set_Node36);
+
+ procedure Set_Node37 (N : Node_Id; Val : Node_Id);
+ pragma Inline (Set_Node37);
+
+ procedure Set_Node38 (N : Node_Id; Val : Node_Id);
+ pragma Inline (Set_Node38);
+
+ procedure Set_Node39 (N : Node_Id; Val : Node_Id);
+ pragma Inline (Set_Node39);
+
+ procedure Set_Node40 (N : Node_Id; Val : Node_Id);
+ pragma Inline (Set_Node40);
+
+ procedure Set_Node41 (N : Node_Id; Val : Node_Id);
+ pragma Inline (Set_Node41);
+
procedure Set_List1 (N : Node_Id; Val : List_Id);
pragma Inline (Set_List1);
@@ -3817,8 +3889,10 @@
-- Flags 4-18 for a normal node. Note that Flags 0-3 are stored
-- separately in the Flags array.
- -- The above fields are used as follows in components 2-6 of
- -- an extended node entry.
+ -- The above fields are used as follows in components 2-6 of an
+ -- extended node entry. Currently they are not used in component 7,
+ -- since for now we have all the flags we need, but of course they
+ -- can be used for additional flags when needed in component 7.
-- In_List used as Flag19,Flag40,Flag129,Flag216,Flag287
-- Has_Aspects used as Flag20,Flag41,Flag130,Flag217,Flag288
@@ -3849,11 +3923,12 @@
-- node, this field holds the Node_Kind value. For an extended node,
-- The Nkind field is used as follows:
--
- -- Second entry: holds the Ekind field of the entity
- -- Third entry: holds 8 additional flags (Flag65-Flag72)
- -- Fourth entry: holds 8 additional flags (Flag239-246)
- -- Fifth entry: holds 8 additional flags (Flag247-254)
- -- Sixth entry: holds 8 additional flags (Flag310-317)
+ -- Second entry: holds the Ekind field of the entity
+ -- Third entry: holds 8 additional flags (Flag65-Flag72)
+ -- Fourth entry: holds 8 additional flags (Flag239-246)
+ -- Fifth entry: holds 8 additional flags (Flag247-254)
+ -- Sixth entry: holds 8 additional flags (Flag310-317)
+ -- Seventh entry: currently unused
-- Now finally (on an 32-bit boundary) comes the variant part
@@ -3926,6 +4001,13 @@
-- Field6-11 Holds Field30-Field35
-- Field12 Holds Flag255-Flag286
+ -- In the seventh component, the extension format as described
+ -- above is used to hold additional general fields as follows.
+ -- Flags are also available potentially, but not used now, as
+ -- we are not short of entity flags.
+
+ -- Field6-11 Holds Field36-Field41
+
end case;
end record;
@@ -3979,8 +4061,8 @@
Field5 => Empty_List_Or_Node);
-- Default value used to initialize node extensions (i.e. the second
- -- through sixth components of an extended node). Note we are cheating
- -- a bit here when it comes to Node12, which really holds flags and (for
+ -- through seventh components of an extended node). Note we are cheating
+ -- a bit here when it comes to Node12, which often holds flags and (for
-- the third component), the convention. But it works because Empty,
-- False, Convention_Ada, all happen to be all zero bits.
===================================================================
@@ -448,6 +448,12 @@
#define Field33(N) (Nodes_Ptr[(N) - First_Node_Id + 5].V.EX.field9)
#define Field34(N) (Nodes_Ptr[(N) - First_Node_Id + 5].V.EX.field10)
#define Field35(N) (Nodes_Ptr[(N) - First_Node_Id + 5].V.EX.X.field11)
+#define Field36(N) (Nodes_Ptr[(N) - First_Node_Id + 6].V.EX.field6)
+#define Field37(N) (Nodes_Ptr[(N) - First_Node_Id + 6].V.EX.field7)
+#define Field38(N) (Nodes_Ptr[(N) - First_Node_Id + 6].V.EX.field8)
+#define Field39(N) (Nodes_Ptr[(N) - First_Node_Id + 6].V.EX.field9)
+#define Field40(N) (Nodes_Ptr[(N) - First_Node_Id + 6].V.EX.field10)
+#define Field41(N) (Nodes_Ptr[(N) - First_Node_Id + 6].V.EX.X.field11)
#define Node1(N) Field1 (N)
#define Node2(N) Field2 (N)
@@ -485,6 +491,11 @@
#define Node34(N) Field34 (N)
#define Node35(N) Field35 (N)
#define Node36(N) Field36 (N)
+#define Node37(N) Field37 (N)
+#define Node38(N) Field38 (N)
+#define Node39(N) Field39 (N)
+#define Node40(N) Field40 (N)
+#define Node41(N) Field41 (N)
#define List1(N) Field1 (N)
#define List2(N) Field2 (N)