Commit 165eab5f by Arnaud Charlet

atree.adb: Add a fifth component to entities This allows us to add 32 flags and four new fields

	* atree.adb: Add a fifth component to entities
	This allows us to add 32 flags and four new fields

	* atree.ads: Add a fifth component to entities
	This allows us to add 32 flags and four new fields

	* einfo.ads, einfo.adb: Document new fields and new flags now available
	Add routines for printing new fields

	* treepr.adb: Call routines to print out additional fields if present

From-SVN: r92830
parent 5f3ab6fb
......@@ -89,8 +89,9 @@ package body Atree is
function To_Flag_Byte_Ptr is new
Unchecked_Conversion (Node_Kind_Ptr, Flag_Byte_Ptr);
-- The following declarations are used to store flags 73-96 in the
-- Field12 field of the third component of an extended (entity) node.
-- The following declarations are used to store flags 73-96 and the
-- Convention field in the Field12 field of the third component of an
-- extended (Entity) node.
type Flag_Word is record
Flag73 : Boolean;
......@@ -189,11 +190,11 @@ package body Atree is
function To_Flag_Word2_Ptr is new
Unchecked_Conversion (Union_Id_Ptr, Flag_Word2_Ptr);
-- The following declarations are used to store flags 97-120 in the
-- The following declarations are used to store flags 152-183 in the
-- Field12 field of the fourth component of an extended (entity) node.
type Flag_Word3 is record
Flag152 : Boolean;
Flag152 : Boolean;
Flag153 : Boolean;
Flag154 : Boolean;
Flag155 : Boolean;
......@@ -242,6 +243,59 @@ package body Atree is
function To_Flag_Word3_Ptr is new
Unchecked_Conversion (Union_Id_Ptr, Flag_Word3_Ptr);
-- The following declarations are used to store flags 184-215 in the
-- Field11 field of the fifth component of an extended (entity) node.
type Flag_Word4 is record
Flag184 : Boolean;
Flag185 : Boolean;
Flag186 : Boolean;
Flag187 : Boolean;
Flag188 : Boolean;
Flag189 : Boolean;
Flag190 : Boolean;
Flag191 : Boolean;
Flag192 : Boolean;
Flag193 : Boolean;
Flag194 : Boolean;
Flag195 : Boolean;
Flag196 : Boolean;
Flag197 : Boolean;
Flag198 : Boolean;
Flag199 : Boolean;
Flag200 : Boolean;
Flag201 : Boolean;
Flag202 : Boolean;
Flag203 : Boolean;
Flag204 : Boolean;
Flag205 : Boolean;
Flag206 : Boolean;
Flag207 : Boolean;
Flag208 : Boolean;
Flag209 : Boolean;
Flag210 : Boolean;
Flag211 : Boolean;
Flag212 : Boolean;
Flag213 : Boolean;
Flag214 : Boolean;
Flag215 : Boolean;
end record;
pragma Pack (Flag_Word4);
for Flag_Word4'Size use 32;
for Flag_Word4'Alignment use 4;
type Flag_Word4_Ptr is access all Flag_Word4;
function To_Flag_Word4 is new
Unchecked_Conversion (Union_Id, Flag_Word4);
function To_Flag_Word4_Ptr is new
Unchecked_Conversion (Union_Id_Ptr, Flag_Word4_Ptr);
-- Default value used to initialize default nodes. Note that some of the
-- fields get overwritten, and in particular, Nkind always gets reset.
......@@ -404,6 +458,8 @@ package body Atree is
Ext1 : Node_Record := Default_Node_Extension;
Ext2 : Node_Record := Default_Node_Extension;
Ext3 : Node_Record := Default_Node_Extension;
Ext4 : Node_Record := Default_Node_Extension;
begin
if Present (Src) then
Nod := Nodes.Table (Src);
......@@ -412,6 +468,7 @@ package body Atree is
Ext1 := Nodes.Table (Src + 1);
Ext2 := Nodes.Table (Src + 2);
Ext3 := Nodes.Table (Src + 3);
Ext4 := Nodes.Table (Src + 4);
end if;
end if;
......@@ -433,6 +490,7 @@ package body Atree is
Nodes.Append (Ext1);
Nodes.Append (Ext2);
Nodes.Append (Ext3);
Nodes.Append (Ext4);
end if;
Orig_Nodes.Set_Last (Nodes.Last);
......@@ -518,6 +576,7 @@ package body Atree is
Nodes.Table (Destination + 1) := Nodes.Table (Source + 1);
Nodes.Table (Destination + 2) := Nodes.Table (Source + 2);
Nodes.Table (Destination + 3) := Nodes.Table (Source + 3);
Nodes.Table (Destination + 4) := Nodes.Table (Source + 4);
else
pragma Assert (not Has_Extension (Source));
......@@ -579,10 +638,9 @@ package body Atree is
else
NL := New_List;
E := First (List);
E := First (List);
while Present (E) loop
if Has_Extension (E) then
Append (Copy_Entity (E), NL);
else
......@@ -605,7 +663,6 @@ package body Atree is
begin
if Field in Node_Range then
New_N := Union_Id (Copy_Separate_Tree (Node_Id (Field)));
if Parent (Node_Id (Field)) = Source then
......@@ -697,6 +754,10 @@ package body Atree is
procedure Delete_List (L : List_Id);
-- Delete all elements on the given list
------------------
-- Delete_Field --
------------------
procedure Delete_Field (F : Union_Id) is
begin
if F = Union_Id (Empty) then
......@@ -719,6 +780,10 @@ package body Atree is
end if;
end Delete_Field;
-----------------
-- Delete_List --
-----------------
procedure Delete_List (L : List_Id) is
begin
while Is_Non_Empty_List (L) loop
......@@ -785,6 +850,9 @@ package body Atree is
Temp_Ent := Nodes.Table (E1 + 3);
Nodes.Table (E1 + 3) := Nodes.Table (E2 + 3);
Nodes.Table (E2 + 3) := Temp_Ent;
Temp_Ent := Nodes.Table (E1 + 4);
Nodes.Table (E1 + 4) := Nodes.Table (E2 + 4);
Nodes.Table (E2 + 4) := Temp_Ent;
-- That exchange exchanged the parent pointers as well, which is what
-- we want, but we need to patch up the defining identifier pointers
......@@ -809,8 +877,12 @@ package body Atree is
Result : Entity_Id;
procedure Debug_Extend_Node;
-- Debug routine for debug flag N
pragma Inline (Debug_Extend_Node);
-- Debug routine for debug flag N
-----------------------
-- Debug_Extend_Node --
-----------------------
procedure Debug_Extend_Node is
begin
......@@ -829,6 +901,8 @@ package body Atree is
end if;
end Debug_Extend_Node;
-- Start of processing for Extend_Node
begin
pragma Assert (not (Has_Extension (Node)));
Result := Allocate_Initialize_Node (Node, With_Extension => True);
......@@ -847,6 +921,10 @@ package body Atree is
-- points to a node, list, or element list that has a parent that
-- points to Old_Node. If so, the parent is reset to point to New_Node.
----------------
-- Fix_Parent --
----------------
procedure Fix_Parent (Field : Union_Id; Old_Node, New_Node : Node_Id) is
begin
-- Fix parent of node that is referenced by Field. Note that we must
......@@ -870,6 +948,8 @@ package body Atree is
end if;
end Fix_Parent;
-- Start of processing for Fix_Parents
begin
Fix_Parent (Field1 (New_Node), Old_Node, New_Node);
Fix_Parent (Field2 (New_Node), Old_Node, New_Node);
......@@ -921,7 +1001,8 @@ package body Atree is
Set_Name1 (Error, Error_Name);
Set_Error_Posted (Error, True);
-- Set global variables for New_Copy_Tree:
-- Set global variables for New_Copy_Tree
NCT_Hash_Tables_Used := False;
NCT_Table_Entries := 0;
NCT_Hash_Table_Setup := False;
......@@ -1019,11 +1100,19 @@ package body Atree is
function New_Copy_Hash (E : Entity_Id) return NCT_Header_Num;
-- Hash function used for hash operations
-------------------
-- New_Copy_Hash --
-------------------
function New_Copy_Hash (E : Entity_Id) return NCT_Header_Num is
begin
return Nat (E) mod (NCT_Header_Num'Last + 1);
end New_Copy_Hash;
---------------
-- NCT_Assoc --
---------------
-- The hash table NCT_Assoc associates old entities in the table
-- with their corresponding new entities (i.e. the pairs of entries
-- presented in the original Map argument are Key-Element pairs).
......@@ -1036,6 +1125,10 @@ package body Atree is
Hash => New_Copy_Hash,
Equal => Types."=");
---------------------
-- NCT_Itype_Assoc --
---------------------
-- The hash table NCT_Itype_Assoc contains entries only for those
-- old nodes which have a non-empty Associated_Node_For_Itype set.
-- The key is the associated node, and the element is the new node
......@@ -1049,7 +1142,7 @@ package body Atree is
Hash => New_Copy_Hash,
Equal => Types."=");
-- Start of New_Copy_Tree function
-- Start of processing for New_Copy_Tree function
function New_Copy_Tree
(Source : Node_Id;
......@@ -1199,8 +1292,8 @@ package body Atree is
else
New_Elist := New_Elmt_List;
M := First_Elmt (Old_Elist);
M := First_Elmt (Old_Elist);
while Present (M) loop
Append_Elmt (Copy_Node_With_Replacement (Node (M)), New_Elist);
Next_Elmt (M);
......@@ -1274,6 +1367,7 @@ package body Atree is
else
New_List := Empty_List;
E := First (Old_List);
while Present (E) loop
Append (Copy_Node_With_Replacement (E), New_List);
......@@ -1479,7 +1573,6 @@ package body Atree is
procedure Visit_Elist (E : Elist_Id) is
Elmt : Elmt_Id;
begin
if Present (E) then
Elmt := First_Elmt (E);
......@@ -1705,7 +1798,6 @@ package body Atree is
procedure Visit_List (L : List_Id) is
N : Node_Id;
begin
if L /= No_List then
N := First (L);
......@@ -1747,7 +1839,6 @@ package body Atree is
else
declare
E : Elmt_Id;
begin
if Present (Actual_Map) then
E := First_Elmt (Actual_Map);
......@@ -1790,6 +1881,7 @@ package body Atree is
begin
NCT_Table_Entries := 0;
Elmt := First_Elmt (Actual_Map);
while Present (Elmt) loop
NCT_Table_Entries := NCT_Table_Entries + 1;
......@@ -1817,7 +1909,6 @@ package body Atree is
declare
Elmt : Elmt_Id;
New_Itype : Entity_Id;
begin
Elmt := First_Elmt (Actual_Map);
while Present (Elmt) loop
......@@ -1845,8 +1936,8 @@ package body Atree is
Ent : Entity_Id;
procedure New_Entity_Debugging_Output;
-- Debugging routine for debug flag N
pragma Inline (New_Entity_Debugging_Output);
-- Debugging routine for debug flag N
---------------------------------
-- New_Entity_Debugging_Output --
......@@ -1898,8 +1989,8 @@ package body Atree is
Nod : Node_Id;
procedure New_Node_Debugging_Output;
-- Debugging routine for debug flag N
pragma Inline (New_Node_Debugging_Output);
-- Debugging routine for debug flag N
--------------------------
-- New_Debugging_Output --
......@@ -2396,7 +2487,6 @@ package body Atree is
function Traverse is new Traverse_Func (Process);
Discard : Traverse_Result;
pragma Warnings (Off, Discard);
begin
Discard := Traverse (Node);
end Traverse_Proc;
......@@ -2567,6 +2657,30 @@ package body Atree is
return Nodes.Table (N + 3).Field10;
end Field23;
function Field24 (N : Node_Id) return Union_Id is
begin
pragma Assert (Nkind (N) in N_Entity);
return Nodes.Table (N + 4).Field6;
end Field24;
function Field25 (N : Node_Id) return Union_Id is
begin
pragma Assert (Nkind (N) in N_Entity);
return Nodes.Table (N + 4).Field7;
end Field25;
function Field26 (N : Node_Id) return Union_Id is
begin
pragma Assert (Nkind (N) in N_Entity);
return Nodes.Table (N + 4).Field8;
end Field26;
function Field27 (N : Node_Id) return Union_Id is
begin
pragma Assert (Nkind (N) in N_Entity);
return Nodes.Table (N + 4).Field9;
end Field27;
function Node1 (N : Node_Id) return Node_Id is
begin
pragma Assert (N in Nodes.First .. Nodes.Last);
......@@ -2705,6 +2819,30 @@ package body Atree is
return Node_Id (Nodes.Table (N + 3).Field10);
end Node23;
function Node24 (N : Node_Id) return Node_Id is
begin
pragma Assert (Nkind (N) in N_Entity);
return Node_Id (Nodes.Table (N + 4).Field6);
end Node24;
function Node25 (N : Node_Id) return Node_Id is
begin
pragma Assert (Nkind (N) in N_Entity);
return Node_Id (Nodes.Table (N + 4).Field7);
end Node25;
function Node26 (N : Node_Id) return Node_Id is
begin
pragma Assert (Nkind (N) in N_Entity);
return Node_Id (Nodes.Table (N + 4).Field8);
end Node26;
function Node27 (N : Node_Id) return Node_Id is
begin
pragma Assert (Nkind (N) in N_Entity);
return Node_Id (Nodes.Table (N + 4).Field9);
end Node27;
function List1 (N : Node_Id) return List_Id is
begin
pragma Assert (N in Nodes.First .. Nodes.Last);
......@@ -2831,7 +2969,6 @@ package body Atree is
function Uint3 (N : Node_Id) return Uint is
pragma Assert (N in Nodes.First .. Nodes.Last);
U : constant Union_Id := Nodes.Table (N).Field3;
begin
if U = 0 then
return Uint_0;
......@@ -2843,7 +2980,6 @@ package body Atree is
function Uint4 (N : Node_Id) return Uint is
pragma Assert (N in Nodes.First .. Nodes.Last);
U : constant Union_Id := Nodes.Table (N).Field4;
begin
if U = 0 then
return Uint_0;
......@@ -2855,7 +2991,6 @@ package body Atree is
function Uint5 (N : Node_Id) return Uint is
pragma Assert (N in Nodes.First .. Nodes.Last);
U : constant Union_Id := Nodes.Table (N).Field5;
begin
if U = 0 then
return Uint_0;
......@@ -2879,7 +3014,6 @@ package body Atree is
function Uint9 (N : Node_Id) return Uint is
pragma Assert (Nkind (N) in N_Entity);
U : constant Union_Id := Nodes.Table (N + 1).Field9;
begin
if U = 0 then
return Uint_0;
......@@ -2888,34 +3022,31 @@ package body Atree is
end if;
end Uint9;
function Uint11 (N : Node_Id) return Uint is
function Uint10 (N : Node_Id) return Uint is
pragma Assert (Nkind (N) in N_Entity);
U : constant Union_Id := Nodes.Table (N + 1).Field11;
U : constant Union_Id := Nodes.Table (N + 1).Field10;
begin
if U = 0 then
return Uint_0;
else
return From_Union (U);
end if;
end Uint11;
end Uint10;
function Uint10 (N : Node_Id) return Uint is
function Uint11 (N : Node_Id) return Uint is
pragma Assert (Nkind (N) in N_Entity);
U : constant Union_Id := Nodes.Table (N + 1).Field10;
U : constant Union_Id := Nodes.Table (N + 1).Field11;
begin
if U = 0 then
return Uint_0;
else
return From_Union (U);
end if;
end Uint10;
end Uint11;
function Uint12 (N : Node_Id) return Uint is
pragma Assert (Nkind (N) in N_Entity);
U : constant Union_Id := Nodes.Table (N + 1).Field12;
begin
if U = 0 then
return Uint_0;
......@@ -2927,7 +3058,6 @@ package body Atree is
function Uint13 (N : Node_Id) return Uint is
pragma Assert (Nkind (N) in N_Entity);
U : constant Union_Id := Nodes.Table (N + 2).Field6;
begin
if U = 0 then
return Uint_0;
......@@ -2939,7 +3069,6 @@ package body Atree is
function Uint14 (N : Node_Id) return Uint is
pragma Assert (Nkind (N) in N_Entity);
U : constant Union_Id := Nodes.Table (N + 2).Field7;
begin
if U = 0 then
return Uint_0;
......@@ -2951,7 +3080,6 @@ package body Atree is
function Uint15 (N : Node_Id) return Uint is
pragma Assert (Nkind (N) in N_Entity);
U : constant Union_Id := Nodes.Table (N + 2).Field8;
begin
if U = 0 then
return Uint_0;
......@@ -2963,7 +3091,6 @@ package body Atree is
function Uint16 (N : Node_Id) return Uint is
pragma Assert (Nkind (N) in N_Entity);
U : constant Union_Id := Nodes.Table (N + 2).Field9;
begin
if U = 0 then
return Uint_0;
......@@ -2975,7 +3102,6 @@ package body Atree is
function Uint17 (N : Node_Id) return Uint is
pragma Assert (Nkind (N) in N_Entity);
U : constant Union_Id := Nodes.Table (N + 2).Field10;
begin
if U = 0 then
return Uint_0;
......@@ -2987,7 +3113,6 @@ package body Atree is
function Uint22 (N : Node_Id) return Uint is
pragma Assert (Nkind (N) in N_Entity);
U : constant Union_Id := Nodes.Table (N + 3).Field9;
begin
if U = 0 then
return Uint_0;
......@@ -4094,6 +4219,198 @@ package body Atree is
return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag183;
end Flag183;
function Flag184 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag184;
end Flag184;
function Flag185 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag185;
end Flag185;
function Flag186 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag186;
end Flag186;
function Flag187 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag187;
end Flag187;
function Flag188 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag188;
end Flag188;
function Flag189 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag189;
end Flag189;
function Flag190 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag190;
end Flag190;
function Flag191 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag191;
end Flag191;
function Flag192 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag192;
end Flag192;
function Flag193 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag193;
end Flag193;
function Flag194 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag194;
end Flag194;
function Flag195 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag195;
end Flag195;
function Flag196 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag196;
end Flag196;
function Flag197 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag197;
end Flag197;
function Flag198 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag198;
end Flag198;
function Flag199 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag199;
end Flag199;
function Flag200 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag200;
end Flag200;
function Flag201 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag201;
end Flag201;
function Flag202 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag202;
end Flag202;
function Flag203 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag203;
end Flag203;
function Flag204 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag204;
end Flag204;
function Flag205 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag205;
end Flag205;
function Flag206 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag206;
end Flag206;
function Flag207 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag207;
end Flag207;
function Flag208 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag208;
end Flag208;
function Flag209 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag209;
end Flag209;
function Flag210 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag210;
end Flag210;
function Flag211 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag211;
end Flag211;
function Flag212 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag212;
end Flag212;
function Flag213 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag213;
end Flag213;
function Flag214 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag214;
end Flag214;
function Flag215 (N : Node_Id) return Boolean is
begin
pragma Assert (Nkind (N) in N_Entity);
return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag215;
end Flag215;
procedure Set_Nkind (N : Node_Id; Val : Node_Kind) is
begin
pragma Assert (N in Nodes.First .. Nodes.Last);
......@@ -4238,6 +4555,30 @@ package body Atree is
Nodes.Table (N + 3).Field10 := Val;
end Set_Field23;
procedure Set_Field24 (N : Node_Id; Val : Union_Id) is
begin
pragma Assert (Nkind (N) in N_Entity);
Nodes.Table (N + 4).Field6 := Val;
end Set_Field24;
procedure Set_Field25 (N : Node_Id; Val : Union_Id) is
begin
pragma Assert (Nkind (N) in N_Entity);
Nodes.Table (N + 4).Field7 := Val;
end Set_Field25;
procedure Set_Field26 (N : Node_Id; Val : Union_Id) is
begin
pragma Assert (Nkind (N) in N_Entity);
Nodes.Table (N + 4).Field8 := Val;
end Set_Field26;
procedure Set_Field27 (N : Node_Id; Val : Union_Id) is
begin
pragma Assert (Nkind (N) in N_Entity);
Nodes.Table (N + 4).Field9 := Val;
end Set_Field27;
procedure Set_Node1 (N : Node_Id; Val : Node_Id) is
begin
pragma Assert (N in Nodes.First .. Nodes.Last);
......@@ -4376,6 +4717,30 @@ package body Atree is
Nodes.Table (N + 3).Field10 := Union_Id (Val);
end Set_Node23;
procedure Set_Node24 (N : Node_Id; Val : Node_Id) is
begin
pragma Assert (Nkind (N) in N_Entity);
Nodes.Table (N + 4).Field6 := Union_Id (Val);
end Set_Node24;
procedure Set_Node25 (N : Node_Id; Val : Node_Id) is
begin
pragma Assert (Nkind (N) in N_Entity);
Nodes.Table (N + 4).Field7 := Union_Id (Val);
end Set_Node25;
procedure Set_Node26 (N : Node_Id; Val : Node_Id) is
begin
pragma Assert (Nkind (N) in N_Entity);
Nodes.Table (N + 4).Field8 := Union_Id (Val);
end Set_Node26;
procedure Set_Node27 (N : Node_Id; Val : Node_Id) is
begin
pragma Assert (Nkind (N) in N_Entity);
Nodes.Table (N + 4).Field9 := Union_Id (Val);
end Set_Node27;
procedure Set_List1 (N : Node_Id; Val : List_Id) is
begin
pragma Assert (N in Nodes.First .. Nodes.Last);
......@@ -5873,6 +6238,262 @@ package body Atree is
(Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag183 := Val;
end Set_Flag183;
procedure Set_Flag184 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag184 := Val;
end Set_Flag184;
procedure Set_Flag185 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag185 := Val;
end Set_Flag185;
procedure Set_Flag186 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag186 := Val;
end Set_Flag186;
procedure Set_Flag187 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag187 := Val;
end Set_Flag187;
procedure Set_Flag188 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag188 := Val;
end Set_Flag188;
procedure Set_Flag189 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag189 := Val;
end Set_Flag189;
procedure Set_Flag190 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag190 := Val;
end Set_Flag190;
procedure Set_Flag191 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag191 := Val;
end Set_Flag191;
procedure Set_Flag192 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag192 := Val;
end Set_Flag192;
procedure Set_Flag193 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag193 := Val;
end Set_Flag193;
procedure Set_Flag194 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag194 := Val;
end Set_Flag194;
procedure Set_Flag195 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag195 := Val;
end Set_Flag195;
procedure Set_Flag196 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag196 := Val;
end Set_Flag196;
procedure Set_Flag197 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag197 := Val;
end Set_Flag197;
procedure Set_Flag198 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag198 := Val;
end Set_Flag198;
procedure Set_Flag199 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag199 := Val;
end Set_Flag199;
procedure Set_Flag200 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag200 := Val;
end Set_Flag200;
procedure Set_Flag201 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag201 := Val;
end Set_Flag201;
procedure Set_Flag202 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag202 := Val;
end Set_Flag202;
procedure Set_Flag203 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag203 := Val;
end Set_Flag203;
procedure Set_Flag204 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag204 := Val;
end Set_Flag204;
procedure Set_Flag205 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag205 := Val;
end Set_Flag205;
procedure Set_Flag206 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag206 := Val;
end Set_Flag206;
procedure Set_Flag207 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag207 := Val;
end Set_Flag207;
procedure Set_Flag208 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag208 := Val;
end Set_Flag208;
procedure Set_Flag209 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag209 := Val;
end Set_Flag209;
procedure Set_Flag210 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag210 := Val;
end Set_Flag210;
procedure Set_Flag211 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag211 := Val;
end Set_Flag211;
procedure Set_Flag212 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag212 := Val;
end Set_Flag212;
procedure Set_Flag213 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag213 := Val;
end Set_Flag213;
procedure Set_Flag214 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag214 := Val;
end Set_Flag214;
procedure Set_Flag215 (N : Node_Id; Val : Boolean) is
begin
pragma Assert (Nkind (N) in N_Entity);
To_Flag_Word4_Ptr
(Union_Id_Ptr'
(Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag215 := Val;
end Set_Flag215;
procedure Set_Node1_With_Parent (N : Node_Id; Val : Node_Id) is
begin
pragma Assert (N in Nodes.First .. Nodes.Last);
......
......@@ -176,9 +176,9 @@ package Atree is
-- entity, it is of type Entity_Kind which is defined
-- in package Einfo.
-- Flag19 133 additional flags
-- Flag19 197 additional flags
-- ...
-- Flag151
-- Flag215
-- Convention Entity convention (Convention_Id value)
......@@ -188,8 +188,8 @@ package Atree is
-- Elist6 Synonym for Field6 typed as Elist_Id
-- Uint6 Synonym for Field6 typed as Uint (Empty = Uint_0)
-- Similar definitions for Field7 to Field23 (and Node7-Node23,
-- Elist7-Elist23, Uint7-Uint23, Ureal7-Ureal23). Note that not all
-- Similar definitions for Field7 to Field27 (and Node7-Node27,
-- Elist7-Elist27, Uint7-Uint27, Ureal7-Ureal27). Note that not all
-- these functions are defined, only the ones that are actually used.
type Paren_Count_Type is mod 4;
......@@ -292,7 +292,7 @@ package Atree is
-------------------------------------
-- A subpackage Atree.Unchecked_Access provides routines for reading and
-- writing the fields defined above (Field1-17, Node1-17, Flag1-88 etc).
-- writing the fields defined above (Field1-27, Node1-27, Flag1-215 etc).
-- These unchecked access routines can be used for untyped traversals.
-- In addition they are used in the implementations of the Sinfo and
-- Einfo packages. These packages both provide logical synonyms for
......@@ -323,12 +323,13 @@ package Atree is
-- Called before the backend is invoked to lock the nodes table
procedure Tree_Read;
-- Initializes internal tables from current tree file using Tree_Read.
-- Note that Initialize should not be called if Tree_Read is used.
-- Tree_Read includes all necessary initialization.
-- Initializes internal tables from current tree file using the relevant
-- Table.Tree_Read routines. Note that Initialize should not be called if
-- Tree_Read is used. Tree_Read includes all necessary initialization.
procedure Tree_Write;
-- Writes out internal tables to current tree file using Tree_Write
-- Writes out internal tables to current tree file using the relevant
-- Table.Tree_Write routines.
function New_Node
(New_Node_Kind : Node_Kind;
......@@ -837,6 +838,18 @@ package Atree is
function Field23 (N : Node_Id) return Union_Id;
pragma Inline (Field23);
function Field24 (N : Node_Id) return Union_Id;
pragma Inline (Field24);
function Field25 (N : Node_Id) return Union_Id;
pragma Inline (Field25);
function Field26 (N : Node_Id) return Union_Id;
pragma Inline (Field26);
function Field27 (N : Node_Id) return Union_Id;
pragma Inline (Field27);
function Node1 (N : Node_Id) return Node_Id;
pragma Inline (Node1);
......@@ -906,6 +919,18 @@ package Atree is
function Node23 (N : Node_Id) return Node_Id;
pragma Inline (Node23);
function Node24 (N : Node_Id) return Node_Id;
pragma Inline (Node24);
function Node25 (N : Node_Id) return Node_Id;
pragma Inline (Node25);
function Node26 (N : Node_Id) return Node_Id;
pragma Inline (Node26);
function Node27 (N : Node_Id) return Node_Id;
pragma Inline (Node27);
function List1 (N : Node_Id) return List_Id;
pragma Inline (List1);
......@@ -1565,6 +1590,102 @@ package Atree is
function Flag183 (N : Node_Id) return Boolean;
pragma Inline (Flag183);
function Flag184 (N : Node_Id) return Boolean;
pragma Inline (Flag184);
function Flag185 (N : Node_Id) return Boolean;
pragma Inline (Flag185);
function Flag186 (N : Node_Id) return Boolean;
pragma Inline (Flag186);
function Flag187 (N : Node_Id) return Boolean;
pragma Inline (Flag187);
function Flag188 (N : Node_Id) return Boolean;
pragma Inline (Flag188);
function Flag189 (N : Node_Id) return Boolean;
pragma Inline (Flag189);
function Flag190 (N : Node_Id) return Boolean;
pragma Inline (Flag190);
function Flag191 (N : Node_Id) return Boolean;
pragma Inline (Flag191);
function Flag192 (N : Node_Id) return Boolean;
pragma Inline (Flag192);
function Flag193 (N : Node_Id) return Boolean;
pragma Inline (Flag193);
function Flag194 (N : Node_Id) return Boolean;
pragma Inline (Flag194);
function Flag195 (N : Node_Id) return Boolean;
pragma Inline (Flag195);
function Flag196 (N : Node_Id) return Boolean;
pragma Inline (Flag196);
function Flag197 (N : Node_Id) return Boolean;
pragma Inline (Flag197);
function Flag198 (N : Node_Id) return Boolean;
pragma Inline (Flag198);
function Flag199 (N : Node_Id) return Boolean;
pragma Inline (Flag199);
function Flag200 (N : Node_Id) return Boolean;
pragma Inline (Flag200);
function Flag201 (N : Node_Id) return Boolean;
pragma Inline (Flag201);
function Flag202 (N : Node_Id) return Boolean;
pragma Inline (Flag202);
function Flag203 (N : Node_Id) return Boolean;
pragma Inline (Flag203);
function Flag204 (N : Node_Id) return Boolean;
pragma Inline (Flag204);
function Flag205 (N : Node_Id) return Boolean;
pragma Inline (Flag205);
function Flag206 (N : Node_Id) return Boolean;
pragma Inline (Flag206);
function Flag207 (N : Node_Id) return Boolean;
pragma Inline (Flag207);
function Flag208 (N : Node_Id) return Boolean;
pragma Inline (Flag208);
function Flag209 (N : Node_Id) return Boolean;
pragma Inline (Flag209);
function Flag210 (N : Node_Id) return Boolean;
pragma Inline (Flag210);
function Flag211 (N : Node_Id) return Boolean;
pragma Inline (Flag211);
function Flag212 (N : Node_Id) return Boolean;
pragma Inline (Flag212);
function Flag213 (N : Node_Id) return Boolean;
pragma Inline (Flag213);
function Flag214 (N : Node_Id) return Boolean;
pragma Inline (Flag214);
function Flag215 (N : Node_Id) return Boolean;
pragma Inline (Flag215);
-- Procedures to set value of indicated field
procedure Set_Nkind (N : Node_Id; Val : Node_Kind);
......@@ -1639,6 +1760,18 @@ package Atree is
procedure Set_Field23 (N : Node_Id; Val : Union_Id);
pragma Inline (Set_Field23);
procedure Set_Field24 (N : Node_Id; Val : Union_Id);
pragma Inline (Set_Field24);
procedure Set_Field25 (N : Node_Id; Val : Union_Id);
pragma Inline (Set_Field25);
procedure Set_Field26 (N : Node_Id; Val : Union_Id);
pragma Inline (Set_Field26);
procedure Set_Field27 (N : Node_Id; Val : Union_Id);
pragma Inline (Set_Field27);
procedure Set_Node1 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node1);
......@@ -1708,6 +1841,18 @@ package Atree is
procedure Set_Node23 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node23);
procedure Set_Node24 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node24);
procedure Set_Node25 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node25);
procedure Set_Node26 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node26);
procedure Set_Node27 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node27);
procedure Set_List1 (N : Node_Id; Val : List_Id);
pragma Inline (Set_List1);
......@@ -2362,6 +2507,103 @@ package Atree is
procedure Set_Flag183 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag183);
procedure Set_Flag184 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag184);
procedure Set_Flag185 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag185);
procedure Set_Flag186 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag186);
procedure Set_Flag187 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag187);
procedure Set_Flag188 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag188);
procedure Set_Flag189 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag189);
procedure Set_Flag190 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag190);
procedure Set_Flag191 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag191);
procedure Set_Flag192 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag192);
procedure Set_Flag193 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag193);
procedure Set_Flag194 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag194);
procedure Set_Flag195 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag195);
procedure Set_Flag196 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag196);
procedure Set_Flag197 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag197);
procedure Set_Flag198 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag198);
procedure Set_Flag199 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag199);
procedure Set_Flag200 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag200);
procedure Set_Flag201 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag201);
procedure Set_Flag202 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag202);
procedure Set_Flag203 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag203);
procedure Set_Flag204 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag204);
procedure Set_Flag205 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag205);
procedure Set_Flag206 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag206);
procedure Set_Flag207 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag207);
procedure Set_Flag208 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag208);
procedure Set_Flag209 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag209);
procedure Set_Flag210 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag210);
procedure Set_Flag211 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag211);
procedure Set_Flag212 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag212);
procedure Set_Flag213 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag213);
procedure Set_Flag214 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag214);
procedure Set_Flag215 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag215);
-- The following versions of Set_Noden also set the parent
-- pointer of the referenced node if it is non_Empty
......@@ -2479,7 +2721,8 @@ package Atree is
-- The eighteen flags for a normal node
-- The above fields are used as follows in components 2-4 of
-- an extended node entry.
-- an extended node entry. These fields are not currently
-- used in component 5 (where we still have lots of room!)
-- In_List used as Flag19, Flag40, Flag129
-- Unused_1 used as Flag20, Flag41, Flag130
......@@ -2567,9 +2810,18 @@ package Atree is
-- as follows:
-- Field6-10 Holds Field19-Field23
-- Field11 Holds Flag152-Flag167 (16 bits unused)
-- Field11 Holds Flag152-Flag183
-- Field12 Holds Flag97-Flag128
-- In the fifth component, the extension format as described
-- above is used to hold additional general fields and flags
-- as follows:
-- Field6-9 Holds Field24-Field27
-- Field10 currently unused, reserved for expansion
-- Field11 Holds Flag184-Flag215
-- Field12 currently unused, reserved for expansion
end case;
end record;
......
......@@ -209,6 +209,11 @@ package body Einfo is
-- Privals_Chain Elist23
-- Protected_Operation Node23
-- (unused) Node24
-- (unused) Node25
-- (unused) Node26
-- (unused) Node27
---------------------------------------------
-- Usage of Flags in Defining Entity Nodes --
---------------------------------------------
......@@ -421,6 +426,38 @@ package body Einfo is
-- Must_Be_On_Byte_Boundary Flag183
-- (unused) Flag153
-- (unused) Flag184
-- (unused) Flag185
-- (unused) Flag186
-- (unused) Flag187
-- (unused) Flag188
-- (unused) Flag189
-- (unused) Flag190
-- (unused) Flag191
-- (unused) Flag192
-- (unused) Flag193
-- (unused) Flag194
-- (unused) Flag195
-- (unused) Flag196
-- (unused) Flag197
-- (unused) Flag198
-- (unused) Flag199
-- (unused) Flag200
-- (unused) Flag201
-- (unused) Flag202
-- (unused) Flag203
-- (unused) Flag204
-- (unused) Flag205
-- (unused) Flag206
-- (unused) Flag207
-- (unused) Flag208
-- (unused) Flag209
-- (unused) Flag210
-- (unused) Flag211
-- (unused) Flag212
-- (unused) Flag213
-- (unused) Flag214
-- (unused) Flag215
--------------------------------
-- Attribute Access Functions --
......@@ -6078,6 +6115,10 @@ package body Einfo is
procedure W (Flag_Name : String; Flag : Boolean);
-- Write out given flag if it is set
-------
-- W --
-------
procedure W (Flag_Name : String; Flag : Boolean) is
begin
if Flag then
......@@ -7159,6 +7200,54 @@ package body Einfo is
end case;
end Write_Field23_Name;
------------------------
-- Write_Field24_Name --
------------------------
procedure Write_Field24_Name (Id : Entity_Id) is
begin
case Ekind (Id) is
when others =>
Write_Str ("Field24??");
end case;
end Write_Field24_Name;
------------------------
-- Write_Field25_Name --
------------------------
procedure Write_Field25_Name (Id : Entity_Id) is
begin
case Ekind (Id) is
when others =>
Write_Str ("Field25??");
end case;
end Write_Field25_Name;
------------------------
-- Write_Field26_Name --
------------------------
procedure Write_Field26_Name (Id : Entity_Id) is
begin
case Ekind (Id) is
when others =>
Write_Str ("Field26??");
end case;
end Write_Field26_Name;
------------------------
-- Write_Field27_Name --
------------------------
procedure Write_Field27_Name (Id : Entity_Id) is
begin
case Ekind (Id) is
when others =>
Write_Str ("Field27??");
end case;
end Write_Field27_Name;
-------------------------
-- Iterator Procedures --
-------------------------
......
......@@ -5960,6 +5960,10 @@ package Einfo is
procedure Write_Field21_Name (Id : Entity_Id);
procedure Write_Field22_Name (Id : Entity_Id);
procedure Write_Field23_Name (Id : Entity_Id);
procedure Write_Field24_Name (Id : Entity_Id);
procedure Write_Field25_Name (Id : Entity_Id);
procedure Write_Field26_Name (Id : Entity_Id);
procedure Write_Field27_Name (Id : Entity_Id);
-- These routines are used 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.
......
......@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 1992-2002 Free Software Foundation, Inc. --
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
......@@ -539,8 +539,39 @@ package body Treepr is
Print_Eol;
end if;
Write_Entity_Flags (Ent, Prefix);
if Field_Present (Field24 (Ent)) then
Print_Str (Prefix);
Write_Field24_Name (Ent);
Write_Str (" = ");
Print_Field (Field24 (Ent));
Print_Eol;
end if;
if Field_Present (Field25 (Ent)) then
Print_Str (Prefix);
Write_Field25_Name (Ent);
Write_Str (" = ");
Print_Field (Field25 (Ent));
Print_Eol;
end if;
if Field_Present (Field26 (Ent)) then
Print_Str (Prefix);
Write_Field26_Name (Ent);
Write_Str (" = ");
Print_Field (Field26 (Ent));
Print_Eol;
end if;
if Field_Present (Field27 (Ent)) then
Print_Str (Prefix);
Write_Field27_Name (Ent);
Write_Str (" = ");
Print_Field (Field27 (Ent));
Print_Eol;
end if;
Write_Entity_Flags (Ent, Prefix);
end Print_Entity_Info;
---------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment