diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-03 15:33:59 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-03 15:33:59 +0000 |
commit | be489ae0b3d8da2a509806a3438683f3906a5492 (patch) | |
tree | 557f21681ba00d33a252d030b4b7124351eb028e | |
parent | e0521a36726eeeabf7bf46626f1b9a27a27fe373 (diff) | |
download | gcc-be489ae0b3d8da2a509806a3438683f3906a5492.tar.gz |
* 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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92830 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ada/atree.adb | 695 | ||||
-rw-r--r-- | gcc/ada/atree.ads | 274 | ||||
-rw-r--r-- | gcc/ada/einfo.adb | 89 | ||||
-rw-r--r-- | gcc/ada/einfo.ads | 4 | ||||
-rw-r--r-- | gcc/ada/treepr.adb | 35 |
5 files changed, 1047 insertions, 50 deletions
diff --git a/gcc/ada/atree.adb b/gcc/ada/atree.adb index f8fef8ce8ed..149203a5ca8 100644 --- a/gcc/ada/atree.adb +++ b/gcc/ada/atree.adb @@ -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); diff --git a/gcc/ada/atree.ads b/gcc/ada/atree.ads index 0f38e3ee491..aeee0f5ec6e 100644 --- a/gcc/ada/atree.ads +++ b/gcc/ada/atree.ads @@ -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; diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb index 85af819efb2..39ab9634e75 100644 --- a/gcc/ada/einfo.adb +++ b/gcc/ada/einfo.adb @@ -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 -- ------------------------- diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads index d77f811ec57..c61ce663a28 100644 --- a/gcc/ada/einfo.ads +++ b/gcc/ada/einfo.ads @@ -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. diff --git a/gcc/ada/treepr.adb b/gcc/ada/treepr.adb index ad10d500652..2c52b5c98cc 100644 --- a/gcc/ada/treepr.adb +++ b/gcc/ada/treepr.adb @@ -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; --------------- |