X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fada%2Fatree.adb;h=b22732668a5436eca0c56a8d40886ce45ffe612e;hb=da31da6faf00197d0460c8de63d3517f07b80d8a;hp=d410a33c1088346c7eb256d4a6437d02b5b04650;hpb=aab8de0adef0929dec573ba33cc09ba3a72b2050;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ada/atree.adb b/gcc/ada/atree.adb index d410a33c108..b22732668a5 100644 --- a/gcc/ada/atree.adb +++ b/gcc/ada/atree.adb @@ -6,25 +6,23 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2004, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2009, 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- -- --- ware Foundation; either version 2, or (at your option) any later ver- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- --- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- --- for more details. You should have received a copy of the GNU General -- --- Public License distributed with GNAT; see file COPYING. If not, write -- --- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -- --- MA 02111-1307, USA. -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- -- -- --- As a special exception, if other files instantiate generics from this -- --- unit, or you link this unit with other files to produce an executable, -- --- this unit does not by itself cause the resulting executable to be -- --- covered by the GNU General Public License. This exception does not -- --- however invalidate any other reasons why the executable file might be -- --- covered by the GNU Public License. -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- . -- -- -- -- GNAT was originally developed by the GNAT team at New York University. -- -- Extensive contributions were provided by Ada Core Technologies Inc. -- @@ -35,20 +33,66 @@ pragma Style_Checks (All_Checks); -- Turn off subprogram ordering check for this package -- WARNING: There is a C version of this package. Any changes to this source --- file must be properly reflected in the C header a-atree.h (for inlined --- bodies) and the C file a-atree.c (for remaining non-inlined bodies). +-- file must be properly reflected in the file atree.h which is a C header +-- file containing equivalent definitions for use by gigi. with Debug; use Debug; with Nlists; use Nlists; -with Elists; use Elists; with Output; use Output; with Sinput; use Sinput; with Tree_IO; use Tree_IO; -with GNAT.HTable; use GNAT.HTable; - package body Atree is + --------------- + -- Debugging -- + --------------- + + -- Suppose you find that node 12345 is messed up. You might want to find + -- the code that created that node. There are two ways to do this: + + -- One way is to set a conditional breakpoint on New_Node_Debugging_Output + -- (nickname "nnd"): + -- break nnd if n = 12345 + -- and run gnat1 again from the beginning. + + -- The other way is to set a breakpoint near the beginning (e.g. on + -- gnat1drv), and run. Then set Watch_Node (nickname "ww") to 12345 in gdb: + -- ww := 12345 + -- and set a breakpoint on New_Node_Breakpoint (nickname "nn"). Continue. + + -- Either way, gnat1 will stop when node 12345 is created + + -- The second method is faster + + ww : Node_Id'Base := Node_Id'First - 1; + pragma Export (Ada, ww); -- trick the optimizer + Watch_Node : Node_Id'Base renames ww; + -- Node to "watch"; that is, whenever a node is created, we check if it is + -- equal to Watch_Node, and if so, call New_Node_Breakpoint. You have + -- presumably set a breakpoint on New_Node_Breakpoint. Note that the + -- initial value of Node_Id'First - 1 ensures that by default, no node + -- will be equal to Watch_Node. + + procedure nn; + pragma Export (Ada, nn); + procedure New_Node_Breakpoint renames nn; + -- This doesn't do anything interesting; it's just for setting breakpoint + -- on as explained above. + + procedure nnd (N : Node_Id); + pragma Export (Ada, nnd); + procedure New_Node_Debugging_Output (N : Node_Id) renames nnd; + -- For debugging. If debugging is turned on, New_Node and New_Entity call + -- this. If debug flag N is turned on, this prints out the new node. + -- + -- If Node = Watch_Node, this prints out the new node and calls + -- New_Node_Breakpoint. Otherwise, does nothing. + + ----------------------------- + -- Local Objects and Types -- + ----------------------------- + Node_Count : Nat; -- Count allocated nodes for Num_Nodes function @@ -58,8 +102,6 @@ package body Atree is use Atree_Private_Part; -- We are also allowed to see our private data structures! - function E_To_N is new Unchecked_Conversion (Entity_Kind, Node_Kind); - function N_To_E is new Unchecked_Conversion (Node_Kind, Entity_Kind); -- Functions used to store Entity_Kind value in Nkind field -- The following declarations are used to store flags 65-72 in the @@ -88,8 +130,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; @@ -188,11 +231,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 - -- Field12 field of the fourth component of an extended (entity) node. + -- The following declarations are used to store flags 152-183 in the + -- Field11 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; @@ -241,90 +284,111 @@ package body Atree is function To_Flag_Word3_Ptr is new Unchecked_Conversion (Union_Id_Ptr, Flag_Word3_Ptr); - -- Default value used to initialize default nodes. Note that some of the - -- fields get overwritten, and in particular, Nkind always gets reset. - - Default_Node : Node_Record := ( - Is_Extension => False, - Pflag1 => False, - Pflag2 => False, - In_List => False, - Unused_1 => False, - Rewrite_Ins => False, - Analyzed => False, - Comes_From_Source => False, -- modified by Set_Comes_From_Source_Default - Error_Posted => False, - Flag4 => False, - - Flag5 => False, - Flag6 => False, - Flag7 => False, - Flag8 => False, - Flag9 => False, - Flag10 => False, - Flag11 => False, - Flag12 => False, - - Flag13 => False, - Flag14 => False, - Flag15 => False, - Flag16 => False, - Flag17 => False, - Flag18 => False, - - Nkind => N_Unused_At_Start, - - Sloc => No_Location, - Link => Empty_List_Or_Node, - Field1 => Empty_List_Or_Node, - Field2 => Empty_List_Or_Node, - Field3 => Empty_List_Or_Node, - Field4 => Empty_List_Or_Node, - Field5 => Empty_List_Or_Node); - - -- Default value used to initialize node extensions (i.e. the second - -- and third and fourth components of an extended node). Note we are - -- cheating a bit here when it comes to Node12, which really holds - -- flags an (for the third component), the convention. But it works - -- because Empty, False, Convention_Ada, all happen to be all zero bits. - - Default_Node_Extension : constant Node_Record := ( - Is_Extension => True, - Pflag1 => False, - Pflag2 => False, - In_List => False, - Unused_1 => False, - Rewrite_Ins => False, - Analyzed => False, - Comes_From_Source => False, - Error_Posted => False, - Flag4 => False, - - Flag5 => False, - Flag6 => False, - Flag7 => False, - Flag8 => False, - Flag9 => False, - Flag10 => False, - Flag11 => False, - Flag12 => False, - - Flag13 => False, - Flag14 => False, - Flag15 => False, - Flag16 => False, - Flag17 => False, - Flag18 => False, - - Nkind => E_To_N (E_Void), - - Field6 => Empty_List_Or_Node, - Field7 => Empty_List_Or_Node, - Field8 => Empty_List_Or_Node, - Field9 => Empty_List_Or_Node, - Field10 => Empty_List_Or_Node, - Field11 => Empty_List_Or_Node, - Field12 => Empty_List_Or_Node); + -- 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); + + -- The following declarations are used to store flags 216-247 in the + -- Field12 field of the fifth component of an extended (entity) node. + + type Flag_Word5 is record + Flag216 : Boolean; + Flag217 : Boolean; + Flag218 : Boolean; + Flag219 : Boolean; + Flag220 : Boolean; + Flag221 : Boolean; + Flag222 : Boolean; + Flag223 : Boolean; + + Flag224 : Boolean; + Flag225 : Boolean; + Flag226 : Boolean; + Flag227 : Boolean; + Flag228 : Boolean; + Flag229 : Boolean; + Flag230 : Boolean; + Flag231 : Boolean; + + Flag232 : Boolean; + Flag233 : Boolean; + Flag234 : Boolean; + Flag235 : Boolean; + Flag236 : Boolean; + Flag237 : Boolean; + Flag238 : Boolean; + Flag239 : Boolean; + + Flag240 : Boolean; + Flag241 : Boolean; + Flag242 : Boolean; + Flag243 : Boolean; + Flag244 : Boolean; + Flag245 : Boolean; + Flag246 : Boolean; + Flag247 : Boolean; + end record; + + pragma Pack (Flag_Word5); + for Flag_Word5'Size use 32; + for Flag_Word5'Alignment use 4; + + type Flag_Word5_Ptr is access all Flag_Word5; + + function To_Flag_Word5 is new + Unchecked_Conversion (Union_Id, Flag_Word5); + + function To_Flag_Word5_Ptr is new + Unchecked_Conversion (Union_Id_Ptr, Flag_Word5_Ptr); -------------------------------------------------- -- Implementation of Tree Substitution Routines -- @@ -341,50 +405,113 @@ package body Atree is package Orig_Nodes is new Table.Table ( Table_Component_Type => Node_Id, - Table_Index_Type => Node_Id, + Table_Index_Type => Node_Id'Base, Table_Low_Bound => First_Node_Id, Table_Initial => Alloc.Orig_Nodes_Initial, Table_Increment => Alloc.Orig_Nodes_Increment, Table_Name => "Orig_Nodes"); - ---------------------------------------- - -- Global_Variables for New_Copy_Tree -- - ---------------------------------------- - - -- These global variables are used by New_Copy_Tree. See description - -- of the body of this subprogram for details. Global variables can be - -- safely used by New_Copy_Tree, since there is no case of a recursive - -- call from the processing inside New_Copy_Tree. - - NCT_Hash_Threshhold : constant := 20; - -- If there are more than this number of pairs of entries in the - -- map, then Hash_Tables_Used will be set, and the hash tables will - -- be initialized and used for the searches. + -------------------------- + -- Paren_Count Handling -- + -------------------------- - NCT_Hash_Tables_Used : Boolean := False; - -- Set to True if hash tables are in use + -- As noted in the spec, the paren count in a sub-expression node has + -- four possible values 0,1,2, and 3. The value 3 really means 3 or more, + -- and we use an auxiliary serially scanned table to record the actual + -- count. A serial search is fine, only pathological programs will use + -- entries in this table. Normal programs won't use it at all. - NCT_Table_Entries : Nat; - -- Count entries in table to see if threshhold is reached + type Paren_Count_Entry is record + Nod : Node_Id; + -- The node to which this count applies - NCT_Hash_Table_Setup : Boolean := False; - -- Set to True if hash table contains data. We set this True if we - -- setup the hash table with data, and leave it set permanently - -- from then on, this is a signal that second and subsequent users - -- of the hash table must clear the old entries before reuse. + Count : Nat range 3 .. Nat'Last; + -- The count of parentheses, which will be in the indicated range + end record; - subtype NCT_Header_Num is Int range 0 .. 511; - -- Defines range of headers in hash tables (512 headers) + package Paren_Counts is new Table.Table ( + Table_Component_Type => Paren_Count_Entry, + Table_Index_Type => Int, + Table_Low_Bound => 0, + Table_Initial => 10, + Table_Increment => 200, + Table_Name => "Paren_Counts"); ----------------------- -- Local Subprograms -- ----------------------- - procedure Fix_Parent (Field : Union_Id; Old_Node, New_Node : Node_Id); - -- This subprogram is used to fixup parent pointers that are rendered - -- incorrect because of a node copy. Field is checked to see if it - -- 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. + procedure Fix_Parents (Ref_Node, Fix_Node : Node_Id); + -- Fixup parent pointers for the syntactic children of Fix_Node after + -- a copy, setting them to Fix_Node when they pointed to Ref_Node. + + function Allocate_Initialize_Node + (Src : Node_Id; + With_Extension : Boolean) return Node_Id; + -- Allocate a new node or node extension. If Src is not empty, + -- the information for the newly-allocated node is copied from it. + + ------------------------------ + -- Allocate_Initialize_Node -- + ------------------------------ + + function Allocate_Initialize_Node + (Src : Node_Id; + With_Extension : Boolean) return Node_Id + is + New_Id : Node_Id := Src; + Nod : Node_Record := Default_Node; + 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); + + if Has_Extension (Src) then + Ext1 := Nodes.Table (Src + 1); + Ext2 := Nodes.Table (Src + 2); + Ext3 := Nodes.Table (Src + 3); + Ext4 := Nodes.Table (Src + 4); + end if; + end if; + + if not (Present (Src) + and then not Has_Extension (Src) + and then With_Extension + and then Src = Nodes.Last) + then + -- We are allocating a new node, or extending a node + -- other than Nodes.Last. + + Nodes.Append (Nod); + New_Id := Nodes.Last; + Orig_Nodes.Append (New_Id); + Node_Count := Node_Count + 1; + end if; + + -- Specifically copy Paren_Count to deal with creating new table entry + -- if the parentheses count is at the maximum possible value already. + + if Present (Src) and then Nkind (Src) in N_Subexpr then + Set_Paren_Count (New_Id, Paren_Count (Src)); + end if; + + -- Set extension nodes if required + + if With_Extension then + Nodes.Append (Ext1); + Nodes.Append (Ext2); + Nodes.Append (Ext3); + Nodes.Append (Ext4); + end if; + + Orig_Nodes.Set_Last (Nodes.Last); + Allocate_List_Tables (Nodes.Last); + return New_Id; + end Allocate_Initialize_Node; -------------- -- Analyzed -- @@ -392,10 +519,22 @@ package body Atree is function Analyzed (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); + pragma Assert (N <= Nodes.Last); return Nodes.Table (N).Analyzed; end Analyzed; + -------------------------- + -- Basic_Set_Convention -- + -------------------------- + + procedure Basic_Set_Convention (E : Entity_Id; Val : Convention_Id) is + begin + pragma Assert (Nkind (E) in N_Entity); + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (E + 2).Field12'Unrestricted_Access)).Convention := Val; + end Basic_Set_Convention; + ----------------- -- Change_Node -- ----------------- @@ -406,7 +545,7 @@ package body Atree is Save_Link : constant Union_Id := Nodes.Table (N).Link; Save_CFS : constant Boolean := Nodes.Table (N).Comes_From_Source; Save_Posted : constant Boolean := Nodes.Table (N).Error_Posted; - Par_Count : Paren_Count_Type := 0; + Par_Count : Nat := 0; begin if Nkind (N) in N_Subexpr then @@ -432,7 +571,7 @@ package body Atree is function Comes_From_Source (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); + pragma Assert (N <= Nodes.Last); return Nodes.Table (N).Comes_From_Source; end Comes_From_Source; @@ -459,11 +598,21 @@ package body Atree is Nodes.Table (Destination).In_List := Save_In_List; Nodes.Table (Destination).Link := Save_Link; + -- Specifically set Paren_Count to make sure auxiliary table entry + -- gets correctly made if the parentheses count is at the max value. + + if Nkind (Destination) in N_Subexpr then + Set_Paren_Count (Destination, Paren_Count (Source)); + end if; + + -- Deal with copying extension nodes if present + if Has_Extension (Source) then pragma Assert (Has_Extension (Destination)); 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)); @@ -525,10 +674,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 @@ -551,7 +699,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 @@ -584,17 +731,7 @@ package body Atree is return Copy_Entity (Source); else - Nodes.Increment_Last; - New_Id := Nodes.Last; - Nodes.Table (New_Id) := Nodes.Table (Source); - Nodes.Table (New_Id).Link := Empty_List_Or_Node; - Nodes.Table (New_Id).In_List := False; - Nodes.Table (New_Id).Rewrite_Ins := False; - Node_Count := Node_Count + 1; - - Orig_Nodes.Increment_Last; - Allocate_List_Tables (Nodes.Last); - Orig_Nodes.Table (New_Id) := New_Id; + New_Id := New_Copy (Source); -- Recursively copy descendents @@ -619,81 +756,6 @@ package body Atree is end if; end Copy_Separate_Tree; - ----------------- - -- Delete_Node -- - ----------------- - - procedure Delete_Node (Node : Node_Id) is - begin - pragma Assert (not Nodes.Table (Node).In_List); - - if Debug_Flag_N then - Write_Str ("Delete node "); - Write_Int (Int (Node)); - Write_Eol; - end if; - - Nodes.Table (Node) := Default_Node; - Nodes.Table (Node).Nkind := N_Unused_At_Start; - Node_Count := Node_Count - 1; - - -- Note: for now, we are not bothering to reuse deleted nodes - - end Delete_Node; - - ----------------- - -- Delete_Tree -- - ----------------- - - procedure Delete_Tree (Node : Node_Id) is - - procedure Delete_Field (F : Union_Id); - -- Delete item pointed to by field F if it is a syntactic element - - procedure Delete_List (L : List_Id); - -- Delete all elements on the given list - - procedure Delete_Field (F : Union_Id) is - begin - if F = Union_Id (Empty) then - return; - - elsif F in Node_Range - and then Parent (Node_Id (F)) = Node - then - Delete_Tree (Node_Id (F)); - - elsif F in List_Range - and then Parent (List_Id (F)) = Node - then - Delete_List (List_Id (F)); - - -- No need to test Elist case, there are no syntactic Elists - - else - return; - end if; - end Delete_Field; - - procedure Delete_List (L : List_Id) is - begin - while Is_Non_Empty_List (L) loop - Delete_Tree (Remove_Head (L)); - end loop; - end Delete_List; - - -- Start of processing for Delete_Tree - - begin - -- Delete descendents - - Delete_Field (Field1 (Node)); - Delete_Field (Field2 (Node)); - Delete_Field (Field3 (Node)); - Delete_Field (Field4 (Node)); - Delete_Field (Field5 (Node)); - end Delete_Tree; - ----------- -- Ekind -- ----------- @@ -710,7 +772,7 @@ package body Atree is function Error_Posted (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); + pragma Assert (N <= Nodes.Last); return Nodes.Table (N).Error_Posted; end Error_Posted; @@ -741,6 +803,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 @@ -765,8 +830,13 @@ package body Atree is Result : Entity_Id; procedure Debug_Extend_Node; + pragma Inline (Debug_Extend_Node); -- Debug routine for debug flag N + ----------------------- + -- Debug_Extend_Node -- + ----------------------- + procedure Debug_Extend_Node is begin if Debug_Flag_N then @@ -784,61 +854,62 @@ package body Atree is end if; end Debug_Extend_Node; - pragma Inline (Debug_Extend_Node); + -- Start of processing for Extend_Node begin - if Node /= Nodes.Last then - Nodes.Increment_Last; - Nodes.Table (Nodes.Last) := Nodes.Table (Node); - Result := Nodes.Last; + pragma Assert (not (Has_Extension (Node))); + Result := Allocate_Initialize_Node (Node, With_Extension => True); + pragma Debug (Debug_Extend_Node); + return Result; + end Extend_Node; - Orig_Nodes.Increment_Last; - Orig_Nodes.Table (Nodes.Last) := Nodes.Last; + ----------------- + -- Fix_Parents -- + ----------------- - else - Result := Node; - end if; + procedure Fix_Parents (Ref_Node, Fix_Node : Node_Id) is - Nodes.Increment_Last; - Nodes.Table (Nodes.Last) := Default_Node_Extension; - Nodes.Increment_Last; - Nodes.Table (Nodes.Last) := Default_Node_Extension; - Nodes.Increment_Last; - Nodes.Table (Nodes.Last) := Default_Node_Extension; + procedure Fix_Parent (Field : Union_Id); + -- Fixup one parent pointer. Field is checked to see if it points to + -- a node, list, or element list that has a parent that points to + -- Ref_Node. If so, the parent is reset to point to Fix_Node. - Orig_Nodes.Set_Last (Nodes.Last); - Allocate_List_Tables (Nodes.Last); + ---------------- + -- Fix_Parent -- + ---------------- - pragma Debug (Debug_Extend_Node); - return Result; - end Extend_Node; + procedure Fix_Parent (Field : Union_Id) is + begin + -- Fix parent of node that is referenced by Field. Note that we must + -- exclude the case where the node is a member of a list, because in + -- this case the parent is the parent of the list. - ---------------- - -- Fix_Parent -- - ---------------- + if Field in Node_Range + and then Present (Node_Id (Field)) + and then not Nodes.Table (Node_Id (Field)).In_List + and then Parent (Node_Id (Field)) = Ref_Node + then + Set_Parent (Node_Id (Field), Fix_Node); - 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 - -- exclude the case where the node is a member of a list, because in - -- this case the parent is the parent of the list. - - if Field in Node_Range - and then Present (Node_Id (Field)) - and then not Nodes.Table (Node_Id (Field)).In_List - and then Parent (Node_Id (Field)) = Old_Node - then - Set_Parent (Node_Id (Field), New_Node); + -- Fix parent of list that is referenced by Field + + elsif Field in List_Range + and then Present (List_Id (Field)) + and then Parent (List_Id (Field)) = Ref_Node + then + Set_Parent (List_Id (Field), Fix_Node); + end if; + end Fix_Parent; - -- Fix parent of list that is referenced by Field + -- Start of processing for Fix_Parents - elsif Field in List_Range - and then Present (List_Id (Field)) - and then Parent (List_Id (Field)) = Old_Node - then - Set_Parent (List_Id (Field), New_Node); - end if; - end Fix_Parent; + begin + Fix_Parent (Field1 (Fix_Node)); + Fix_Parent (Field2 (Fix_Node)); + Fix_Parent (Field3 (Fix_Node)); + Fix_Parent (Field4 (Fix_Node)); + Fix_Parent (Field5 (Fix_Node)); + end Fix_Parents; ----------------------------------- -- Get_Comes_From_Source_Default -- @@ -870,6 +941,7 @@ package body Atree is Node_Count := 0; Atree_Private_Part.Nodes.Init; Orig_Nodes.Init; + Paren_Counts.Init; -- Allocate Empty node @@ -882,11 +954,6 @@ package body Atree is Dummy := New_Node (N_Error, No_Location); Set_Name1 (Error, Error_Name); Set_Error_Posted (Error, True); - - -- Set global variables for New_Copy_Tree: - NCT_Hash_Tables_Used := False; - NCT_Table_Entries := 0; - NCT_Hash_Table_Setup := False; end Initialize; -------------------------- @@ -942,5009 +1009,5359 @@ package body Atree is -------------- function New_Copy (Source : Node_Id) return Node_Id is - New_Id : Node_Id; + New_Id : Node_Id := Source; begin - if Source <= Empty_Or_Error then - return Source; + if Source > Empty_Or_Error then + + New_Id := Allocate_Initialize_Node (Source, Has_Extension (Source)); - else - Nodes.Increment_Last; - New_Id := Nodes.Last; - Nodes.Table (New_Id) := Nodes.Table (Source); Nodes.Table (New_Id).Link := Empty_List_Or_Node; Nodes.Table (New_Id).In_List := False; - Nodes.Table (New_Id).Rewrite_Ins := False; - - Orig_Nodes.Increment_Last; - Orig_Nodes.Table (New_Id) := New_Id; - if Has_Extension (Source) then - Nodes.Increment_Last; - Nodes.Table (New_Id + 1) := Nodes.Table (Source + 1); - Nodes.Increment_Last; - Nodes.Table (New_Id + 2) := Nodes.Table (Source + 2); - Nodes.Increment_Last; - Nodes.Table (New_Id + 3) := Nodes.Table (Source + 3); + -- If the original is marked as a rewrite insertion, then unmark + -- the copy, since we inserted the original, not the copy. - Orig_Nodes.Set_Last (Nodes.Last); - end if; - - Allocate_List_Tables (Nodes.Last); - Node_Count := Node_Count + 1; - return New_Id; + Nodes.Table (New_Id).Rewrite_Ins := False; + pragma Debug (New_Node_Debugging_Output (New_Id)); end if; - end New_Copy; - - ------------------- - -- New_Copy_Tree -- - ------------------- - - -- Our approach here requires a two pass traversal of the tree. The - -- first pass visits all nodes that eventually will be copied looking - -- for defining Itypes. If any defining Itypes are found, then they are - -- copied, and an entry is added to the replacement map. In the second - -- phase, the tree is copied, using the replacement map to replace any - -- Itype references within the copied tree. - -- The following hash tables are used if the Map supplied has more - -- than hash threshhold entries to speed up access to the map. If - -- there are fewer entries, then the map is searched sequentially - -- (because setting up a hash table for only a few entries takes - -- more time than it saves. + return New_Id; + end New_Copy; - function New_Copy_Hash (E : Entity_Id) return NCT_Header_Num; - -- Hash function used for hash operations + ---------------- + -- New_Entity -- + ---------------- - 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; - - -- 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). - - package NCT_Assoc is new Simple_HTable ( - Header_Num => NCT_Header_Num, - Element => Entity_Id, - No_Element => Empty, - Key => Entity_Id, - Hash => New_Copy_Hash, - Equal => Types."="); - - -- 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 - -- itself (NOT the associated node for the new node). - - package NCT_Itype_Assoc is new Simple_HTable ( - Header_Num => NCT_Header_Num, - Element => Entity_Id, - No_Element => Empty, - Key => Entity_Id, - Hash => New_Copy_Hash, - Equal => Types."="); - - -- Start of New_Copy_Tree function - - function New_Copy_Tree - (Source : Node_Id; - Map : Elist_Id := No_Elist; - New_Sloc : Source_Ptr := No_Location; - New_Scope : Entity_Id := Empty) return Node_Id + function New_Entity + (New_Node_Kind : Node_Kind; + New_Sloc : Source_Ptr) return Entity_Id is - Actual_Map : Elist_Id := Map; - -- This is the actual map for the copy. It is initialized with the - -- given elements, and then enlarged as required for Itypes that are - -- copied during the first phase of the copy operation. The visit - -- procedures add elements to this map as Itypes are encountered. - -- The reason we cannot use Map directly, is that it may well be - -- (and normally is) initialized to No_Elist, and if we have mapped - -- entities, we have to reset it to point to a real Elist. + Ent : Entity_Id; - function Assoc (N : Node_Or_Entity_Id) return Node_Id; - -- Called during second phase to map entities into their corresponding - -- copies using Actual_Map. If the argument is not an entity, or is not - -- in Actual_Map, then it is returned unchanged. + begin + pragma Assert (New_Node_Kind in N_Entity); - procedure Build_NCT_Hash_Tables; - -- Builds hash tables (number of elements >= threshold value) + Ent := Allocate_Initialize_Node (Empty, With_Extension => True); - function Copy_Elist_With_Replacement - (Old_Elist : Elist_Id) return Elist_Id; - -- Called during second phase to copy element list doing replacements. + -- If this is a node with a real location and we are generating + -- source nodes, then reset Current_Error_Node. This is useful + -- if we bomb during parsing to get a error location for the bomb. - procedure Copy_Itype_With_Replacement (New_Itype : Entity_Id); - -- Called during the second phase to process a copied Itype. The actual - -- copy happened during the first phase (so that we could make the entry - -- in the mapping), but we still have to deal with the descendents of - -- the copied Itype and copy them where necessary. + if Default_Node.Comes_From_Source and then New_Sloc > No_Location then + Current_Error_Node := Ent; + end if; - function Copy_List_With_Replacement (Old_List : List_Id) return List_Id; - -- Called during second phase to copy list doing replacements. + Nodes.Table (Ent).Nkind := New_Node_Kind; + Nodes.Table (Ent).Sloc := New_Sloc; + pragma Debug (New_Node_Debugging_Output (Ent)); - function Copy_Node_With_Replacement (Old_Node : Node_Id) return Node_Id; - -- Called during second phase to copy node doing replacements + return Ent; + end New_Entity; - procedure Visit_Elist (E : Elist_Id); - -- Called during first phase to visit all elements of an Elist + -------------- + -- New_Node -- + -------------- - procedure Visit_Field (F : Union_Id; N : Node_Id); - -- Visit a single field, recursing to call Visit_Node or Visit_List - -- if the field is a syntactic descendent of the current node (i.e. - -- its parent is Node N). + function New_Node + (New_Node_Kind : Node_Kind; + New_Sloc : Source_Ptr) return Node_Id + is + Nod : Node_Id; - procedure Visit_Itype (Old_Itype : Entity_Id); - -- Called during first phase to visit subsidiary fields of a defining - -- Itype, and also create a copy and make an entry in the replacement - -- map for the new copy. + begin + pragma Assert (New_Node_Kind not in N_Entity); + Nod := Allocate_Initialize_Node (Empty, With_Extension => False); + Nodes.Table (Nod).Nkind := New_Node_Kind; + Nodes.Table (Nod).Sloc := New_Sloc; + pragma Debug (New_Node_Debugging_Output (Nod)); - procedure Visit_List (L : List_Id); - -- Called during first phase to visit all elements of a List + -- If this is a node with a real location and we are generating source + -- nodes, then reset Current_Error_Node. This is useful if we bomb + -- during parsing to get an error location for the bomb. - procedure Visit_Node (N : Node_Or_Entity_Id); - -- Called during first phase to visit a node and all its subtrees + if Default_Node.Comes_From_Source and then New_Sloc > No_Location then + Current_Error_Node := Nod; + end if; - ----------- - -- Assoc -- - ----------- + return Nod; + end New_Node; - function Assoc (N : Node_Or_Entity_Id) return Node_Id is - E : Elmt_Id; - Ent : Entity_Id; + ------------------------- + -- New_Node_Breakpoint -- + ------------------------- - begin - if not Has_Extension (N) or else No (Actual_Map) then - return N; + procedure nn is -- New_Node_Breakpoint + begin + Write_Str ("Watched node "); + Write_Int (Int (Watch_Node)); + Write_Str (" created"); + Write_Eol; + end nn; - elsif NCT_Hash_Tables_Used then - Ent := NCT_Assoc.Get (Entity_Id (N)); + ------------------------------- + -- New_Node_Debugging_Output -- + ------------------------------- - if Present (Ent) then - return Ent; - else - return N; - end if; + procedure nnd (N : Node_Id) is -- New_Node_Debugging_Output + Node_Is_Watched : constant Boolean := N = Watch_Node; - -- No hash table used, do serial search + begin + if Debug_Flag_N or else Node_Is_Watched then + Write_Str ("Allocate "); + if Nkind (N) in N_Entity then + Write_Str ("entity"); else - E := First_Elmt (Actual_Map); - while Present (E) loop - if Node (E) = N then - return Node (Next_Elmt (E)); - else - E := Next_Elmt (Next_Elmt (E)); - end if; - end loop; + Write_Str ("node"); end if; - return N; - end Assoc; - - --------------------------- - -- Build_NCT_Hash_Tables -- - --------------------------- + Write_Str (", Id = "); + Write_Int (Int (N)); + Write_Str (" "); + Write_Location (Sloc (N)); + Write_Str (" "); + Write_Str (Node_Kind'Image (Nkind (N))); + Write_Eol; - procedure Build_NCT_Hash_Tables is - Elmt : Elmt_Id; - Ent : Entity_Id; - begin - if NCT_Hash_Table_Setup then - NCT_Assoc.Reset; - NCT_Itype_Assoc.Reset; + if Node_Is_Watched then + New_Node_Breakpoint; end if; + end if; + end nnd; - Elmt := First_Elmt (Actual_Map); - while Present (Elmt) loop - Ent := Node (Elmt); - Next_Elmt (Elmt); - NCT_Assoc.Set (Ent, Node (Elmt)); - Next_Elmt (Elmt); - - if Is_Type (Ent) then - declare - Anode : constant Entity_Id := - Associated_Node_For_Itype (Ent); - - begin - if Present (Anode) then - NCT_Itype_Assoc.Set (Anode, Node (Elmt)); - end if; - end; - end if; - end loop; + ----------- + -- Nkind -- + ----------- - NCT_Hash_Tables_Used := True; - NCT_Hash_Table_Setup := True; - end Build_NCT_Hash_Tables; + function Nkind (N : Node_Id) return Node_Kind is + begin + return Nodes.Table (N).Nkind; + end Nkind; - --------------------------------- - -- Copy_Elist_With_Replacement -- - --------------------------------- + -------------- + -- Nkind_In -- + -------------- - function Copy_Elist_With_Replacement - (Old_Elist : Elist_Id) return Elist_Id - is - M : Elmt_Id; - New_Elist : Elist_Id; + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind) return Boolean + is + begin + return Nkind_In (Nkind (N), V1, V2); + end Nkind_In; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind) return Boolean + is + begin + return Nkind_In (Nkind (N), V1, V2, V3); + end Nkind_In; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind; + V4 : Node_Kind) return Boolean + is + begin + return Nkind_In (Nkind (N), V1, V2, V3, V4); + end Nkind_In; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind; + V4 : Node_Kind; + V5 : Node_Kind) return Boolean + is + begin + return Nkind_In (Nkind (N), V1, V2, V3, V4, V5); + end Nkind_In; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind; + V4 : Node_Kind; + V5 : Node_Kind; + V6 : Node_Kind) return Boolean + is + begin + return Nkind_In (Nkind (N), V1, V2, V3, V4, V5, V6); + end Nkind_In; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind; + V4 : Node_Kind; + V5 : Node_Kind; + V6 : Node_Kind; + V7 : Node_Kind) return Boolean + is + begin + return Nkind_In (Nkind (N), V1, V2, V3, V4, V5, V6, V7); + end Nkind_In; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind; + V4 : Node_Kind; + V5 : Node_Kind; + V6 : Node_Kind; + V7 : Node_Kind; + V8 : Node_Kind) return Boolean + is + begin + return Nkind_In (Nkind (N), V1, V2, V3, V4, V5, V6, V7, V8); + end Nkind_In; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind; + V4 : Node_Kind; + V5 : Node_Kind; + V6 : Node_Kind; + V7 : Node_Kind; + V8 : Node_Kind; + V9 : Node_Kind) return Boolean + is + begin + return Nkind_In (Nkind (N), V1, V2, V3, V4, V5, V6, V7, V8, V9); + end Nkind_In; + -------- + -- No -- + -------- - begin - if No (Old_Elist) then - return No_Elist; + function No (N : Node_Id) return Boolean is + begin + return N = Empty; + end No; - else - New_Elist := New_Elmt_List; - M := First_Elmt (Old_Elist); + ------------------- + -- Nodes_Address -- + ------------------- - while Present (M) loop - Append_Elmt (Copy_Node_With_Replacement (Node (M)), New_Elist); - Next_Elmt (M); - end loop; - end if; + function Nodes_Address return System.Address is + begin + return Nodes.Table (First_Node_Id)'Address; + end Nodes_Address; - return New_Elist; - end Copy_Elist_With_Replacement; + --------------- + -- Num_Nodes -- + --------------- - --------------------------------- - -- Copy_Itype_With_Replacement -- - --------------------------------- + function Num_Nodes return Nat is + begin + return Node_Count; + end Num_Nodes; - -- This routine exactly parallels its phase one analog Visit_Itype, - -- and like that routine, knows far too many semantic details about - -- the descendents of Itypes and whether they need copying or not. + ------------------- + -- Original_Node -- + ------------------- - procedure Copy_Itype_With_Replacement (New_Itype : Entity_Id) is - begin - -- Translate Next_Entity, Scope and Etype fields, in case they - -- reference entities that have been mapped into copies. + function Original_Node (Node : Node_Id) return Node_Id is + begin + return Orig_Nodes.Table (Node); + end Original_Node; - Set_Next_Entity (New_Itype, Assoc (Next_Entity (New_Itype))); - Set_Etype (New_Itype, Assoc (Etype (New_Itype))); + ----------------- + -- Paren_Count -- + ----------------- - if Present (New_Scope) then - Set_Scope (New_Itype, New_Scope); - else - Set_Scope (New_Itype, Assoc (Scope (New_Itype))); - end if; + function Paren_Count (N : Node_Id) return Nat is + C : Nat := 0; - -- Copy referenced fields + begin + pragma Assert (N <= Nodes.Last); - if Is_Discrete_Type (New_Itype) then - Set_Scalar_Range (New_Itype, - Copy_Node_With_Replacement (Scalar_Range (New_Itype))); + if Nodes.Table (N).Pflag1 then + C := C + 1; + end if; - elsif Has_Discriminants (Base_Type (New_Itype)) then - Set_Discriminant_Constraint (New_Itype, - Copy_Elist_With_Replacement - (Discriminant_Constraint (New_Itype))); + if Nodes.Table (N).Pflag2 then + C := C + 2; + end if; - elsif Is_Array_Type (New_Itype) then - if Present (First_Index (New_Itype)) then - Set_First_Index (New_Itype, - First (Copy_List_With_Replacement - (List_Containing (First_Index (New_Itype))))); - end if; + -- Value of 0,1,2 returned as is - if Is_Packed (New_Itype) then - Set_Packed_Array_Type (New_Itype, - Copy_Node_With_Replacement - (Packed_Array_Type (New_Itype))); - end if; - end if; - end Copy_Itype_With_Replacement; + if C <= 2 then + return C; - -------------------------------- - -- Copy_List_With_Replacement -- - -------------------------------- + -- Value of 3 means we search the table, and we must find an entry - function Copy_List_With_Replacement - (Old_List : List_Id) return List_Id - is - New_List : List_Id; - E : Node_Id; + else + for J in Paren_Counts.First .. Paren_Counts.Last loop + if N = Paren_Counts.Table (J).Nod then + return Paren_Counts.Table (J).Count; + end if; + end loop; - begin - if Old_List = No_List then - return No_List; + raise Program_Error; + end if; + end Paren_Count; - else - New_List := Empty_List; - E := First (Old_List); - while Present (E) loop - Append (Copy_Node_With_Replacement (E), New_List); - Next (E); - end loop; + ------------ + -- Parent -- + ------------ - return New_List; - end if; - end Copy_List_With_Replacement; + function Parent (N : Node_Id) return Node_Id is + begin + if Is_List_Member (N) then + return Parent (List_Containing (N)); + else + return Node_Id (Nodes.Table (N).Link); + end if; + end Parent; - -------------------------------- - -- Copy_Node_With_Replacement -- - -------------------------------- + ------------- + -- Present -- + ------------- - function Copy_Node_With_Replacement - (Old_Node : Node_Id) return Node_Id - is - New_Node : Node_Id; - - function Copy_Field_With_Replacement - (Field : Union_Id) return Union_Id; - -- Given Field, which is a field of Old_Node, return a copy of it - -- if it is a syntactic field (i.e. its parent is Node), setting - -- the parent of the copy to poit to New_Node. Otherwise returns - -- the field (possibly mapped if it is an entity). - - --------------------------------- - -- Copy_Field_With_Replacement -- - --------------------------------- - - function Copy_Field_With_Replacement - (Field : Union_Id) return Union_Id - is - begin - if Field = Union_Id (Empty) then - return Field; - - elsif Field in Node_Range then - declare - Old_N : constant Node_Id := Node_Id (Field); - New_N : Node_Id; + function Present (N : Node_Id) return Boolean is + begin + return N /= Empty; + end Present; - begin - -- If syntactic field, as indicated by the parent pointer - -- being set, then copy the referenced node recursively. + -------------------------------- + -- Preserve_Comes_From_Source -- + -------------------------------- - if Parent (Old_N) = Old_Node then - New_N := Copy_Node_With_Replacement (Old_N); + procedure Preserve_Comes_From_Source (NewN, OldN : Node_Id) is + begin + Nodes.Table (NewN).Comes_From_Source := + Nodes.Table (OldN).Comes_From_Source; + end Preserve_Comes_From_Source; - if New_N /= Old_N then - Set_Parent (New_N, New_Node); - end if; + ------------------- + -- Relocate_Node -- + ------------------- - -- For semantic fields, update possible entity reference - -- from the replacement map. + function Relocate_Node (Source : Node_Id) return Node_Id is + New_Node : Node_Id; - else - New_N := Assoc (Old_N); - end if; + begin + if No (Source) then + return Empty; + end if; - return Union_Id (New_N); - end; + New_Node := New_Copy (Source); + Fix_Parents (Ref_Node => Source, Fix_Node => New_Node); - elsif Field in List_Range then - declare - Old_L : constant List_Id := List_Id (Field); - New_L : List_Id; + -- We now set the parent of the new node to be the same as the + -- parent of the source. Almost always this parent will be + -- replaced by a new value when the relocated node is reattached + -- to the tree, but by doing it now, we ensure that this node is + -- not even temporarily disconnected from the tree. Note that this + -- does not happen free, because in the list case, the parent does + -- not get set. - begin - -- If syntactic field, as indicated by the parent pointer, - -- then recursively copy the entire referenced list. + Set_Parent (New_Node, Parent (Source)); - if Parent (Old_L) = Old_Node then - New_L := Copy_List_With_Replacement (Old_L); - Set_Parent (New_L, New_Node); + -- If the node being relocated was a rewriting of some original + -- node, then the relocated node has the same original node. - -- For semantic list, just returned unchanged + if Orig_Nodes.Table (Source) /= Source then + Orig_Nodes.Table (New_Node) := Orig_Nodes.Table (Source); + end if; - else - New_L := Old_L; - end if; + return New_Node; + end Relocate_Node; - return Union_Id (New_L); - end; + ------------- + -- Replace -- + ------------- - -- Anything other than a list or a node is returned unchanged + procedure Replace (Old_Node, New_Node : Node_Id) is + Old_Post : constant Boolean := Nodes.Table (Old_Node).Error_Posted; + Old_CFS : constant Boolean := Nodes.Table (Old_Node).Comes_From_Source; - else - return Field; - end if; - end Copy_Field_With_Replacement; + begin + pragma Assert + (not Has_Extension (Old_Node) + and not Has_Extension (New_Node) + and not Nodes.Table (New_Node).In_List); - -- Start of processing for Copy_Node_With_Replacement + -- Do copy, preserving link and in list status and comes from source - begin - if Old_Node <= Empty_Or_Error then - return Old_Node; + Copy_Node (Source => New_Node, Destination => Old_Node); + Nodes.Table (Old_Node).Comes_From_Source := Old_CFS; + Nodes.Table (Old_Node).Error_Posted := Old_Post; - elsif Has_Extension (Old_Node) then - return Assoc (Old_Node); + -- Fix parents of substituted node, since it has changed identity - else - Nodes.Increment_Last; - New_Node := Nodes.Last; - Nodes.Table (New_Node) := Nodes.Table (Old_Node); - Nodes.Table (New_Node).Link := Empty_List_Or_Node; - Nodes.Table (New_Node).In_List := False; - Node_Count := Node_Count + 1; + Fix_Parents (Ref_Node => New_Node, Fix_Node => Old_Node); - Orig_Nodes.Increment_Last; - Allocate_List_Tables (Nodes.Last); + -- Since we are doing a replace, we assume that the original node + -- is intended to become the new replaced node. The call would be + -- to Rewrite if there were an intention to save the original node. - Orig_Nodes.Table (Nodes.Last) := Nodes.Last; + Orig_Nodes.Table (Old_Node) := Old_Node; + end Replace; - -- If the node we are copying is the associated node of a - -- previously copied Itype, then adjust the associated node - -- of the copy of that Itype accordingly. + ------------- + -- Rewrite -- + ------------- - if Present (Actual_Map) then - declare - E : Elmt_Id; - Ent : Entity_Id; + procedure Rewrite (Old_Node, New_Node : Node_Id) is + Old_Error_P : constant Boolean := Nodes.Table (Old_Node).Error_Posted; + -- This fields is always preserved in the new node - begin - -- Case of hash table used + Old_Paren_Count : Nat; + Old_Must_Not_Freeze : Boolean; + -- These fields are preserved in the new node only if the new node + -- and the old node are both subexpression nodes. - if NCT_Hash_Tables_Used then - Ent := NCT_Itype_Assoc.Get (Old_Node); + -- Note: it is a violation of abstraction levels for Must_Not_Freeze + -- to be referenced like this. ??? - if Present (Ent) then - Set_Associated_Node_For_Itype (Ent, New_Node); - end if; + Sav_Node : Node_Id; - -- Case of no hash table used - - else - E := First_Elmt (Actual_Map); - while Present (E) loop - if Is_Itype (Node (E)) - and then - Old_Node = Associated_Node_For_Itype (Node (E)) - then - Set_Associated_Node_For_Itype - (Node (Next_Elmt (E)), New_Node); - end if; - - E := Next_Elmt (Next_Elmt (E)); - end loop; - end if; - end; - end if; + begin + pragma Assert + (not Has_Extension (Old_Node) + and not Has_Extension (New_Node) + and not Nodes.Table (New_Node).In_List); - -- Recursively copy descendents + if Nkind (Old_Node) in N_Subexpr then + Old_Paren_Count := Paren_Count (Old_Node); + Old_Must_Not_Freeze := Must_Not_Freeze (Old_Node); + else + Old_Paren_Count := 0; + Old_Must_Not_Freeze := False; + end if; - Set_Field1 - (New_Node, Copy_Field_With_Replacement (Field1 (New_Node))); - Set_Field2 - (New_Node, Copy_Field_With_Replacement (Field2 (New_Node))); - Set_Field3 - (New_Node, Copy_Field_With_Replacement (Field3 (New_Node))); - Set_Field4 - (New_Node, Copy_Field_With_Replacement (Field4 (New_Node))); - Set_Field5 - (New_Node, Copy_Field_With_Replacement (Field5 (New_Node))); + -- Allocate a new node, to be used to preserve the original contents + -- of the Old_Node, for possible later retrival by Original_Node and + -- make an entry in the Orig_Nodes table. This is only done if we have + -- not already rewritten the node, as indicated by an Orig_Nodes entry + -- that does not reference the Old_Node. - -- If the original is marked as a rewrite insertion, then unmark - -- the copy, since we inserted the original, not the copy. + if Orig_Nodes.Table (Old_Node) = Old_Node then + Sav_Node := New_Copy (Old_Node); + Orig_Nodes.Table (Sav_Node) := Sav_Node; + Orig_Nodes.Table (Old_Node) := Sav_Node; + end if; - Nodes.Table (New_Node).Rewrite_Ins := False; + -- Copy substitute node into place, preserving old fields as required - -- Adjust Sloc of new node if necessary + Copy_Node (Source => New_Node, Destination => Old_Node); + Nodes.Table (Old_Node).Error_Posted := Old_Error_P; - if New_Sloc /= No_Location then - Set_Sloc (New_Node, New_Sloc); + if Nkind (New_Node) in N_Subexpr then + Set_Paren_Count (Old_Node, Old_Paren_Count); + Set_Must_Not_Freeze (Old_Node, Old_Must_Not_Freeze); + end if; - -- If we adjust the Sloc, then we are essentially making - -- a completely new node, so the Comes_From_Source flag - -- should be reset to the proper default value. + Fix_Parents (Ref_Node => New_Node, Fix_Node => Old_Node); + end Rewrite; - Nodes.Table (New_Node).Comes_From_Source := - Default_Node.Comes_From_Source; - end if; + ------------------ + -- Set_Analyzed -- + ------------------ - -- Reset First_Real_Statement for Handled_Sequence_Of_Statements. - -- The replacement mechanism applies to entities, and is not used - -- here. Eventually we may need a more general graph-copying - -- routine. For now, do a sequential search to find desired node. + procedure Set_Analyzed (N : Node_Id; Val : Boolean := True) is + begin + Nodes.Table (N).Analyzed := Val; + end Set_Analyzed; - if Nkind (Old_Node) = N_Handled_Sequence_Of_Statements - and then Present (First_Real_Statement (Old_Node)) - then - declare - Old_F : constant Node_Id := First_Real_Statement (Old_Node); - N1, N2 : Node_Id; + --------------------------- + -- Set_Comes_From_Source -- + --------------------------- - begin - N1 := First (Statements (Old_Node)); - N2 := First (Statements (New_Node)); + procedure Set_Comes_From_Source (N : Node_Id; Val : Boolean) is + begin + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Comes_From_Source := Val; + end Set_Comes_From_Source; - while N1 /= Old_F loop - Next (N1); - Next (N2); - end loop; + ----------------------------------- + -- Set_Comes_From_Source_Default -- + ----------------------------------- - Set_First_Real_Statement (New_Node, N2); - end; - end if; - end if; + procedure Set_Comes_From_Source_Default (Default : Boolean) is + begin + Default_Node.Comes_From_Source := Default; + end Set_Comes_From_Source_Default; - -- All done, return copied node + --------------- + -- Set_Ekind -- + --------------- - return New_Node; - end Copy_Node_With_Replacement; + procedure Set_Ekind (E : Entity_Id; Val : Entity_Kind) is + begin + pragma Assert (Nkind (E) in N_Entity); + Nodes.Table (E + 1).Nkind := E_To_N (Val); + end Set_Ekind; - ----------------- - -- Visit_Elist -- - ----------------- + ---------------------- + -- Set_Error_Posted -- + ---------------------- - procedure Visit_Elist (E : Elist_Id) is - Elmt : Elmt_Id; + procedure Set_Error_Posted (N : Node_Id; Val : Boolean := True) is + begin + Nodes.Table (N).Error_Posted := Val; + end Set_Error_Posted; - begin - if Present (E) then - Elmt := First_Elmt (E); + --------------------- + -- Set_Paren_Count -- + --------------------- - while Elmt /= No_Elmt loop - Visit_Node (Node (Elmt)); - Next_Elmt (Elmt); - end loop; - end if; - end Visit_Elist; + procedure Set_Paren_Count (N : Node_Id; Val : Nat) is + begin + pragma Assert (Nkind (N) in N_Subexpr); - ----------------- - -- Visit_Field -- - ----------------- + -- Value of 0,1,2 stored as is - procedure Visit_Field (F : Union_Id; N : Node_Id) is - begin - if F = Union_Id (Empty) then - return; + if Val <= 2 then + Nodes.Table (N).Pflag1 := (Val mod 2 /= 0); + Nodes.Table (N).Pflag2 := (Val = 2); - elsif F in Node_Range then + -- Value of 3 or greater stores 3 in node and makes table entry - -- Copy node if it is syntactic, i.e. its parent pointer is - -- set to point to the field that referenced it (certain - -- Itypes will also meet this criterion, which is fine, since - -- these are clearly Itypes that do need to be copied, since - -- we are copying their parent.) + else + Nodes.Table (N).Pflag1 := True; + Nodes.Table (N).Pflag2 := True; - if Parent (Node_Id (F)) = N then - Visit_Node (Node_Id (F)); + for J in Paren_Counts.First .. Paren_Counts.Last loop + if N = Paren_Counts.Table (J).Nod then + Paren_Counts.Table (J).Count := Val; return; + end if; + end loop; - -- Another case, if we are pointing to an Itype, then we want - -- to copy it if its associated node is somewhere in the tree - -- being copied. + Paren_Counts.Append ((Nod => N, Count => Val)); + end if; + end Set_Paren_Count; - -- Note: the exclusion of self-referential copies is just an - -- optimization, since the search of the already copied list - -- would catch it, but it is a common case (Etype pointing - -- to itself for an Itype that is a base type). + ---------------- + -- Set_Parent -- + ---------------- - elsif Has_Extension (Node_Id (F)) - and then Is_Itype (Entity_Id (F)) - and then Node_Id (F) /= N - then - declare - P : Node_Id; + procedure Set_Parent (N : Node_Id; Val : Node_Id) is + begin + pragma Assert (not Nodes.Table (N).In_List); + Nodes.Table (N).Link := Union_Id (Val); + end Set_Parent; - begin - P := Associated_Node_For_Itype (Node_Id (F)); - while Present (P) loop - if P = Source then - Visit_Node (Node_Id (F)); - return; - else - P := Parent (P); - end if; - end loop; + -------------- + -- Set_Sloc -- + -------------- - -- An Itype whose parent is not being copied definitely - -- should NOT be copied, since it does not belong in any - -- sense to the copied subtree. + procedure Set_Sloc (N : Node_Id; Val : Source_Ptr) is + begin + Nodes.Table (N).Sloc := Val; + end Set_Sloc; - return; - end; - end if; + ---------- + -- Sloc -- + ---------- - elsif F in List_Range - and then Parent (List_Id (F)) = N - then - Visit_List (List_Id (F)); - return; - end if; - end Visit_Field; + function Sloc (N : Node_Id) return Source_Ptr is + begin + return Nodes.Table (N).Sloc; + end Sloc; - ----------------- - -- Visit_Itype -- - ----------------- - - -- Note: we are relying on far too much semantic knowledge in this - -- routine, it really should just do a blind replacement of all - -- fields, or at least a more blind replacement. For example, we - -- do not deal with corresponding record types, and that works - -- because we have no Itypes of task types, but nowhere is there - -- a guarantee that this will always be the case. ??? - - procedure Visit_Itype (Old_Itype : Entity_Id) is - New_Itype : Entity_Id; - E : Elmt_Id; - Ent : Entity_Id; - - begin - -- Itypes that describe the designated type of access to subprograms - -- have the structure of subprogram declarations, with signatures, - -- etc. Either we duplicate the signatures completely, or choose to - -- share such itypes, which is fine because their elaboration will - -- have no side effects. In any case, this is additional semantic - -- information that seems awkward to have in atree. + ------------------- + -- Traverse_Func -- + ------------------- - if Ekind (Old_Itype) = E_Subprogram_Type then - return; - end if; + function Traverse_Func (Node : Node_Id) return Traverse_Final_Result is - New_Itype := New_Copy (Old_Itype); + function Traverse_Field + (Nod : Node_Id; + Fld : Union_Id; + FN : Field_Num) return Traverse_Final_Result; + -- Fld is one of the fields of Nod. If the field points to syntactic + -- node or list, then this node or list is traversed, and the result is + -- the result of this traversal. Otherwise a value of True is returned + -- with no processing. FN is the number of the field (1 .. 5). - -- If our associated node is an entity that has already been copied, - -- then set the associated node of the copy to point to the right - -- copy. If we have copied an Itype that is itself the associated - -- node of some previously copied Itype, then we set the right - -- pointer in the other direction. + -------------------- + -- Traverse_Field -- + -------------------- - if Present (Actual_Map) then + function Traverse_Field + (Nod : Node_Id; + Fld : Union_Id; + FN : Field_Num) return Traverse_Final_Result + is + begin + if Fld = Union_Id (Empty) then + return OK; - -- Case of hash tables used + -- Descendent is a node - if NCT_Hash_Tables_Used then + elsif Fld in Node_Range then - Ent := NCT_Assoc.Get (Associated_Node_For_Itype (Old_Itype)); - if Present (Ent) then - Set_Associated_Node_For_Itype (New_Itype, Ent); - end if; + -- Traverse descendent that is syntactic subtree node - Ent := NCT_Itype_Assoc.Get (Old_Itype); - if Present (Ent) then - Set_Associated_Node_For_Itype (Ent, New_Itype); - end if; + if Is_Syntactic_Field (Nkind (Nod), FN) then + return Traverse_Func (Node_Id (Fld)); - -- Case of hash tables not used + -- Node that is not a syntactic subtree else - E := First_Elmt (Actual_Map); - while Present (E) loop - if Associated_Node_For_Itype (Old_Itype) = Node (E) then - Set_Associated_Node_For_Itype - (New_Itype, Node (Next_Elmt (E))); - end if; - - if Is_Type (Node (E)) - and then - Old_Itype = Associated_Node_For_Itype (Node (E)) - then - Set_Associated_Node_For_Itype - (Node (Next_Elmt (E)), New_Itype); - end if; - - E := Next_Elmt (Next_Elmt (E)); - end loop; + return OK; end if; - end if; - if Present (Freeze_Node (New_Itype)) then - Set_Is_Frozen (New_Itype, False); - Set_Freeze_Node (New_Itype, Empty); - end if; + -- Descendent is a list - -- Add new association to map + elsif Fld in List_Range then - if No (Actual_Map) then - Actual_Map := New_Elmt_List; - end if; + -- Traverse descendent that is a syntactic subtree list - Append_Elmt (Old_Itype, Actual_Map); - Append_Elmt (New_Itype, Actual_Map); + if Is_Syntactic_Field (Nkind (Nod), FN) then + declare + Elmt : Node_Id := First (List_Id (Fld)); + begin + while Present (Elmt) loop + if Traverse_Func (Elmt) = Abandon then + return Abandon; + else + Next (Elmt); + end if; + end loop; - if NCT_Hash_Tables_Used then - NCT_Assoc.Set (Old_Itype, New_Itype); + return OK; + end; - else - NCT_Table_Entries := NCT_Table_Entries + 1; + -- List that is not a syntactic subtree - if NCT_Table_Entries > NCT_Hash_Threshhold then - Build_NCT_Hash_Tables; + else + return OK; end if; - end if; - -- If a record subtype is simply copied, the entity list will be - -- shared. Thus cloned_Subtype must be set to indicate the sharing. + -- Field was not a node or a list - if Ekind (Old_Itype) = E_Record_Subtype - or else Ekind (Old_Itype) = E_Class_Wide_Subtype - then - Set_Cloned_Subtype (New_Itype, Old_Itype); + else + return OK; end if; + end Traverse_Field; - -- Visit descendents that eventually get copied - - Visit_Field (Union_Id (Etype (Old_Itype)), Old_Itype); + Cur_Node : Node_Id := Node; - if Is_Discrete_Type (Old_Itype) then - Visit_Field (Union_Id (Scalar_Range (Old_Itype)), Old_Itype); + -- Start of processing for Traverse_Func - elsif Has_Discriminants (Base_Type (Old_Itype)) then - -- ??? This should involve call to Visit_Field. - Visit_Elist (Discriminant_Constraint (Old_Itype)); + begin + -- We walk Field2 last, and if it is a node, we eliminate the tail + -- recursion by jumping back to this label. This is because Field2 is + -- where the Left_Opnd field of N_Op_Concat is stored, and in practice + -- concatenations are sometimes deeply nested, as in X1&X2&...&XN. This + -- trick prevents us from running out of memory in that case. We don't + -- bother eliminating the tail recursion if Field2 is a list. - elsif Is_Array_Type (Old_Itype) then - if Present (First_Index (Old_Itype)) then - Visit_Field (Union_Id (List_Containing - (First_Index (Old_Itype))), - Old_Itype); - end if; + <> - if Is_Packed (Old_Itype) then - Visit_Field (Union_Id (Packed_Array_Type (Old_Itype)), - Old_Itype); - end if; - end if; - end Visit_Itype; + case Process (Cur_Node) is + when Abandon => + return Abandon; - ---------------- - -- Visit_List -- - ---------------- + when Skip => + return OK; - procedure Visit_List (L : List_Id) is - N : Node_Id; + when OK => + null; - begin - if L /= No_List then - N := First (L); + when OK_Orig => + Cur_Node := Original_Node (Cur_Node); + end case; - while Present (N) loop - Visit_Node (N); - Next (N); - end loop; - end if; - end Visit_List; + if Traverse_Field (Cur_Node, Field1 (Cur_Node), 1) = Abandon + or else -- skip Field2 here + Traverse_Field (Cur_Node, Field3 (Cur_Node), 3) = Abandon + or else + Traverse_Field (Cur_Node, Field4 (Cur_Node), 4) = Abandon + or else + Traverse_Field (Cur_Node, Field5 (Cur_Node), 5) = Abandon + then + return Abandon; + end if; - ---------------- - -- Visit_Node -- - ---------------- + if Field2 (Cur_Node) not in Node_Range then + return Traverse_Field (Cur_Node, Field2 (Cur_Node), 2); - procedure Visit_Node (N : Node_Or_Entity_Id) is + elsif Is_Syntactic_Field (Nkind (Cur_Node), 2) + and then Field2 (Cur_Node) /= Empty_List_Or_Node + then + -- Here is the tail recursion step, we reset Cur_Node and jump back + -- to the start of the procedure, which has the same semantic effect + -- as a call. - -- Start of processing for Visit_Node + Cur_Node := Node_Id (Field2 (Cur_Node)); + goto Tail_Recurse; + end if; - begin - -- Handle case of an Itype, which must be copied + return OK; + end Traverse_Func; - if Has_Extension (N) - and then Is_Itype (N) - then - -- Nothing to do if already in the list. This can happen with an - -- Itype entity that appears more than once in the tree. - -- Note that we do not want to visit descendents in this case. + ------------------- + -- Traverse_Proc -- + ------------------- - -- Test for already in list when hash table is used + procedure Traverse_Proc (Node : Node_Id) is + function Traverse is new Traverse_Func (Process); + Discard : Traverse_Final_Result; + pragma Warnings (Off, Discard); + begin + Discard := Traverse (Node); + end Traverse_Proc; - if NCT_Hash_Tables_Used then - if Present (NCT_Assoc.Get (Entity_Id (N))) then - return; - end if; + --------------- + -- Tree_Read -- + --------------- - -- Test for already in list when hash table not used + procedure Tree_Read is + begin + Tree_Read_Int (Node_Count); + Nodes.Tree_Read; + Orig_Nodes.Tree_Read; + Paren_Counts.Tree_Read; + end Tree_Read; - else - declare - E : Elmt_Id; + ---------------- + -- Tree_Write -- + ---------------- - begin - if Present (Actual_Map) then - E := First_Elmt (Actual_Map); - while Present (E) loop - if Node (E) = N then - return; - else - E := Next_Elmt (Next_Elmt (E)); - end if; - end loop; - end if; - end; - end if; + procedure Tree_Write is + begin + Tree_Write_Int (Node_Count); + Nodes.Tree_Write; + Orig_Nodes.Tree_Write; + Paren_Counts.Tree_Write; + end Tree_Write; - Visit_Itype (N); - end if; + ------------------------------ + -- Unchecked Access Package -- + ------------------------------ - -- Visit descendents + package body Unchecked_Access is - Visit_Field (Field1 (N), N); - Visit_Field (Field2 (N), N); - Visit_Field (Field3 (N), N); - Visit_Field (Field4 (N), N); - Visit_Field (Field5 (N), N); - end Visit_Node; + function Field1 (N : Node_Id) return Union_Id is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Field1; + end Field1; - -- Start of processing for New_Copy_Tree + function Field2 (N : Node_Id) return Union_Id is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Field2; + end Field2; - begin - Actual_Map := Map; + function Field3 (N : Node_Id) return Union_Id is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Field3; + end Field3; - -- See if we should use hash table + function Field4 (N : Node_Id) return Union_Id is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Field4; + end Field4; - if No (Actual_Map) then - NCT_Hash_Tables_Used := False; + function Field5 (N : Node_Id) return Union_Id is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Field5; + end Field5; - else - declare - Elmt : Elmt_Id; - - begin - NCT_Table_Entries := 0; - Elmt := First_Elmt (Actual_Map); - while Present (Elmt) loop - NCT_Table_Entries := NCT_Table_Entries + 1; - Next_Elmt (Elmt); - Next_Elmt (Elmt); - end loop; + function Field6 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Field6; + end Field6; - if NCT_Table_Entries > NCT_Hash_Threshhold then - Build_NCT_Hash_Tables; - else - NCT_Hash_Tables_Used := False; - end if; - end; - end if; + function Field7 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Field7; + end Field7; - -- Hash table set up if required, now start phase one by visiting - -- top node (we will recursively visit the descendents). + function Field8 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Field8; + end Field8; - Visit_Node (Source); + function Field9 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Field9; + end Field9; - -- Now the second phase of the copy can start. First we process - -- all the mapped entities, copying their descendents. + function Field10 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Field10; + end Field10; - if Present (Actual_Map) then - declare - Elmt : Elmt_Id; - New_Itype : Entity_Id; + function Field11 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Field11; + end Field11; - begin - Elmt := First_Elmt (Actual_Map); - while Present (Elmt) loop - Next_Elmt (Elmt); - New_Itype := Node (Elmt); - Copy_Itype_With_Replacement (New_Itype); - Next_Elmt (Elmt); - end loop; - end; - end if; + function Field12 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Field12; + end Field12; - -- Now we can copy the actual tree + function Field13 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Field6; + end Field13; - return Copy_Node_With_Replacement (Source); - end New_Copy_Tree; + function Field14 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Field7; + end Field14; - ---------------- - -- New_Entity -- - ---------------- + function Field15 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Field8; + end Field15; - function New_Entity - (New_Node_Kind : Node_Kind; - New_Sloc : Source_Ptr) return Entity_Id - is - Ent : Entity_Id; + function Field16 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Field9; + end Field16; - procedure New_Entity_Debugging_Output; - -- Debugging routine for debug flag N - pragma Inline (New_Entity_Debugging_Output); + function Field17 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Field10; + end Field17; - --------------------------------- - -- New_Entity_Debugging_Output -- - --------------------------------- + function Field18 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Field11; + end Field18; - procedure New_Entity_Debugging_Output is + function Field19 (N : Node_Id) return Union_Id is begin - if Debug_Flag_N then - Write_Str ("Allocate entity, Id = "); - Write_Int (Int (Nodes.Last)); - Write_Str (" "); - Write_Location (New_Sloc); - Write_Str (" "); - Write_Str (Node_Kind'Image (New_Node_Kind)); - Write_Eol; - end if; - end New_Entity_Debugging_Output; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Field6; + end Field19; - -- Start of processing for New_Entity + function Field20 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Field7; + end Field20; - begin - pragma Assert (New_Node_Kind in N_Entity); + function Field21 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Field8; + end Field21; - Nodes.Increment_Last; - Ent := Nodes.Last; + function Field22 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Field9; + end Field22; - -- If this is a node with a real location and we are generating - -- source nodes, then reset Current_Error_Node. This is useful - -- if we bomb during parsing to get a error location for the bomb. + function Field23 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Field10; + end Field23; - if Default_Node.Comes_From_Source and then New_Sloc > No_Location then - Current_Error_Node := Ent; - end if; + 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; - Nodes.Table (Nodes.Last) := Default_Node; - Nodes.Table (Nodes.Last).Nkind := New_Node_Kind; - Nodes.Table (Nodes.Last).Sloc := New_Sloc; - pragma Debug (New_Entity_Debugging_Output); + 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; - Orig_Nodes.Increment_Last; - Orig_Nodes.Table (Nodes.Last) := Nodes.Last; + 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; - Nodes.Increment_Last; - Nodes.Table (Nodes.Last) := Default_Node_Extension; + 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; - Nodes.Increment_Last; - Nodes.Table (Nodes.Last) := Default_Node_Extension; + function Field28 (N : Node_Id) return Union_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 4).Field10; + end Field28; - Nodes.Increment_Last; - Nodes.Table (Nodes.Last) := Default_Node_Extension; + function Node1 (N : Node_Id) return Node_Id is + begin + pragma Assert (N <= Nodes.Last); + return Node_Id (Nodes.Table (N).Field1); + end Node1; - Orig_Nodes.Set_Last (Nodes.Last); - Allocate_List_Tables (Nodes.Last); - Node_Count := Node_Count + 1; - return Ent; - end New_Entity; + function Node2 (N : Node_Id) return Node_Id is + begin + pragma Assert (N <= Nodes.Last); + return Node_Id (Nodes.Table (N).Field2); + end Node2; - -------------- - -- New_Node -- - -------------- + function Node3 (N : Node_Id) return Node_Id is + begin + pragma Assert (N <= Nodes.Last); + return Node_Id (Nodes.Table (N).Field3); + end Node3; - function New_Node - (New_Node_Kind : Node_Kind; - New_Sloc : Source_Ptr) return Node_Id - is - Nod : Node_Id; + function Node4 (N : Node_Id) return Node_Id is + begin + pragma Assert (N <= Nodes.Last); + return Node_Id (Nodes.Table (N).Field4); + end Node4; - procedure New_Node_Debugging_Output; - -- Debugging routine for debug flag N - pragma Inline (New_Node_Debugging_Output); + function Node5 (N : Node_Id) return Node_Id is + begin + pragma Assert (N <= Nodes.Last); + return Node_Id (Nodes.Table (N).Field5); + end Node5; - -------------------------- - -- New_Debugging_Output -- - -------------------------- + function Node6 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 1).Field6); + end Node6; - procedure New_Node_Debugging_Output is + function Node7 (N : Node_Id) return Node_Id is begin - if Debug_Flag_N then - Write_Str ("Allocate node, Id = "); - Write_Int (Int (Nodes.Last)); - Write_Str (" "); - Write_Location (New_Sloc); - Write_Str (" "); - Write_Str (Node_Kind'Image (New_Node_Kind)); - Write_Eol; - end if; - end New_Node_Debugging_Output; + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 1).Field7); + end Node7; - -- Start of processing for New_Node + function Node8 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 1).Field8); + end Node8; - begin - pragma Assert (New_Node_Kind not in N_Entity); - Nodes.Increment_Last; - Nodes.Table (Nodes.Last) := Default_Node; - Nodes.Table (Nodes.Last).Nkind := New_Node_Kind; - Nodes.Table (Nodes.Last).Sloc := New_Sloc; - pragma Debug (New_Node_Debugging_Output); - Nod := Nodes.Last; + function Node9 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 1).Field9); + end Node9; - -- If this is a node with a real location and we are generating - -- source nodes, then reset Current_Error_Node. This is useful - -- if we bomb during parsing to get a error location for the bomb. + function Node10 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 1).Field10); + end Node10; - if Default_Node.Comes_From_Source and then New_Sloc > No_Location then - Current_Error_Node := Nod; - end if; + function Node11 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 1).Field11); + end Node11; - Node_Count := Node_Count + 1; - Orig_Nodes.Increment_Last; - Allocate_List_Tables (Nodes.Last); - Orig_Nodes.Table (Nodes.Last) := Nodes.Last; - return Nod; - end New_Node; + function Node12 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 1).Field12); + end Node12; - ----------- - -- Nkind -- - ----------- + function Node13 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 2).Field6); + end Node13; - function Nkind (N : Node_Id) return Node_Kind is - begin - return Nodes.Table (N).Nkind; - end Nkind; + function Node14 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 2).Field7); + end Node14; - -------- - -- No -- - -------- + function Node15 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 2).Field8); + end Node15; - function No (N : Node_Id) return Boolean is - begin - return N = Empty; - end No; + function Node16 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 2).Field9); + end Node16; - ------------------- - -- Nodes_Address -- - ------------------- + function Node17 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 2).Field10); + end Node17; - function Nodes_Address return System.Address is - begin - return Nodes.Table (First_Node_Id)'Address; - end Nodes_Address; + function Node18 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 2).Field11); + end Node18; - --------------- - -- Num_Nodes -- - --------------- + function Node19 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 3).Field6); + end Node19; - function Num_Nodes return Nat is - begin - return Node_Count; - end Num_Nodes; + function Node20 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 3).Field7); + end Node20; - ------------------- - -- Original_Node -- - ------------------- + function Node21 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 3).Field8); + end Node21; - function Original_Node (Node : Node_Id) return Node_Id is - begin - return Orig_Nodes.Table (Node); - end Original_Node; + function Node22 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 3).Field9); + end Node22; - ----------------- - -- Paren_Count -- - ----------------- + function Node23 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 3).Field10); + end Node23; - function Paren_Count (N : Node_Id) return Paren_Count_Type is - C : Paren_Count_Type := 0; + 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; - begin - pragma Assert (N in Nodes.First .. Nodes.Last); + 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; - if Nodes.Table (N).Pflag1 then - C := C + 1; - end if; + 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; - if Nodes.Table (N).Pflag2 then - C := C + 2; - end if; + 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; - return C; - end Paren_Count; + function Node28 (N : Node_Id) return Node_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return Node_Id (Nodes.Table (N + 4).Field10); + end Node28; - ------------ - -- Parent -- - ------------ + function List1 (N : Node_Id) return List_Id is + begin + pragma Assert (N <= Nodes.Last); + return List_Id (Nodes.Table (N).Field1); + end List1; - function Parent (N : Node_Id) return Node_Id is - begin - if Is_List_Member (N) then - return Parent (List_Containing (N)); - else - return Node_Id (Nodes.Table (N).Link); - end if; - end Parent; + function List2 (N : Node_Id) return List_Id is + begin + pragma Assert (N <= Nodes.Last); + return List_Id (Nodes.Table (N).Field2); + end List2; - ------------- - -- Present -- - ------------- + function List3 (N : Node_Id) return List_Id is + begin + pragma Assert (N <= Nodes.Last); + return List_Id (Nodes.Table (N).Field3); + end List3; - function Present (N : Node_Id) return Boolean is - begin - return N /= Empty; - end Present; + function List4 (N : Node_Id) return List_Id is + begin + pragma Assert (N <= Nodes.Last); + return List_Id (Nodes.Table (N).Field4); + end List4; - -------------------------------- - -- Preserve_Comes_From_Source -- - -------------------------------- + function List5 (N : Node_Id) return List_Id is + begin + pragma Assert (N <= Nodes.Last); + return List_Id (Nodes.Table (N).Field5); + end List5; - procedure Preserve_Comes_From_Source (NewN, OldN : Node_Id) is - begin - Nodes.Table (NewN).Comes_From_Source := - Nodes.Table (OldN).Comes_From_Source; - end Preserve_Comes_From_Source; + function List10 (N : Node_Id) return List_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return List_Id (Nodes.Table (N + 1).Field10); + end List10; - ------------------- - -- Relocate_Node -- - ------------------- + function List14 (N : Node_Id) return List_Id is + begin + pragma Assert (Nkind (N) in N_Entity); + return List_Id (Nodes.Table (N + 2).Field7); + end List14; - function Relocate_Node (Source : Node_Id) return Node_Id is - New_Node : Node_Id; - - begin - if No (Source) then - return Empty; - end if; - - New_Node := New_Copy (Source); - Fix_Parent (Field1 (Source), Source, New_Node); - Fix_Parent (Field2 (Source), Source, New_Node); - Fix_Parent (Field3 (Source), Source, New_Node); - Fix_Parent (Field4 (Source), Source, New_Node); - Fix_Parent (Field5 (Source), Source, New_Node); - - -- We now set the parent of the new node to be the same as the - -- parent of the source. Almost always this parent will be - -- replaced by a new value when the relocated node is reattached - -- to the tree, but by doing it now, we ensure that this node is - -- not even temporarily disconnected from the tree. Note that this - -- does not happen free, because in the list case, the parent does - -- not get set. - - Set_Parent (New_Node, Parent (Source)); - - -- If the node being relocated was a rewriting of some original - -- node, then the relocated node has the same original node. - - if Orig_Nodes.Table (Source) /= Source then - Orig_Nodes.Table (New_Node) := Orig_Nodes.Table (Source); - end if; - - return New_Node; - end Relocate_Node; - - ------------- - -- Replace -- - ------------- - - procedure Replace (Old_Node, New_Node : Node_Id) is - Old_Link : constant Union_Id := Nodes.Table (Old_Node).Link; - Old_InL : constant Boolean := Nodes.Table (Old_Node).In_List; - Old_Post : constant Boolean := Nodes.Table (Old_Node).Error_Posted; - Old_CFS : constant Boolean := Nodes.Table (Old_Node).Comes_From_Source; - - begin - pragma Assert - (not Has_Extension (Old_Node) - and not Has_Extension (New_Node) - and not Nodes.Table (New_Node).In_List); - - -- Do copy, preserving link and in list status and comes from source - - Nodes.Table (Old_Node) := Nodes.Table (New_Node); - Nodes.Table (Old_Node).Link := Old_Link; - Nodes.Table (Old_Node).In_List := Old_InL; - Nodes.Table (Old_Node).Comes_From_Source := Old_CFS; - Nodes.Table (Old_Node).Error_Posted := Old_Post; - - -- Fix parents of substituted node, since it has changed identity - - Fix_Parent (Field1 (Old_Node), New_Node, Old_Node); - Fix_Parent (Field2 (Old_Node), New_Node, Old_Node); - Fix_Parent (Field3 (Old_Node), New_Node, Old_Node); - Fix_Parent (Field4 (Old_Node), New_Node, Old_Node); - Fix_Parent (Field5 (Old_Node), New_Node, Old_Node); - - -- Since we are doing a replace, we assume that the original node - -- is intended to become the new replaced node. The call would be - -- to Rewrite_Substitute_Node if there were an intention to save - -- the original node. - - Orig_Nodes.Table (Old_Node) := Old_Node; + function Elist1 (N : Node_Id) return Elist_Id is + pragma Assert (N <= Nodes.Last); + Value : constant Union_Id := Nodes.Table (N).Field1; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist1; - -- Finally delete the source, since it is now copied + function Elist2 (N : Node_Id) return Elist_Id is + pragma Assert (N <= Nodes.Last); + Value : constant Union_Id := Nodes.Table (N).Field2; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist2; - Delete_Node (New_Node); - end Replace; + function Elist3 (N : Node_Id) return Elist_Id is + pragma Assert (N <= Nodes.Last); + Value : constant Union_Id := Nodes.Table (N).Field3; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist3; - ------------- - -- Rewrite -- - ------------- + function Elist4 (N : Node_Id) return Elist_Id is + pragma Assert (N <= Nodes.Last); + Value : constant Union_Id := Nodes.Table (N).Field4; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist4; - procedure Rewrite (Old_Node, New_Node : Node_Id) is + function Elist8 (N : Node_Id) return Elist_Id is + pragma Assert (Nkind (N) in N_Entity); + Value : constant Union_Id := Nodes.Table (N + 1).Field8; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist8; - Old_Link : constant Union_Id := Nodes.Table (Old_Node).Link; - Old_In_List : constant Boolean := Nodes.Table (Old_Node).In_List; - Old_Error_P : constant Boolean := Nodes.Table (Old_Node).Error_Posted; - -- These three fields are always preserved in the new node + function Elist13 (N : Node_Id) return Elist_Id is + pragma Assert (Nkind (N) in N_Entity); + Value : constant Union_Id := Nodes.Table (N + 2).Field6; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist13; - Old_Paren_Count : Paren_Count_Type; - Old_Must_Not_Freeze : Boolean; - -- These fields are preserved in the new node only if the new node - -- and the old node are both subexpression nodes. + function Elist15 (N : Node_Id) return Elist_Id is + pragma Assert (Nkind (N) in N_Entity); + Value : constant Union_Id := Nodes.Table (N + 2).Field8; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist15; - -- Note: it is a violation of abstraction levels for Must_Not_Freeze - -- to be referenced like this. ??? + function Elist16 (N : Node_Id) return Elist_Id is + pragma Assert (Nkind (N) in N_Entity); + Value : constant Union_Id := Nodes.Table (N + 2).Field9; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist16; - Sav_Node : Node_Id; + function Elist18 (N : Node_Id) return Elist_Id is + pragma Assert (Nkind (N) in N_Entity); + Value : constant Union_Id := Nodes.Table (N + 2).Field11; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist18; - begin - pragma Assert - (not Has_Extension (Old_Node) - and not Has_Extension (New_Node) - and not Nodes.Table (New_Node).In_List); + function Elist21 (N : Node_Id) return Elist_Id is + pragma Assert (Nkind (N) in N_Entity); + Value : constant Union_Id := Nodes.Table (N + 3).Field8; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist21; - if Nkind (Old_Node) in N_Subexpr then - Old_Paren_Count := Paren_Count (Old_Node); - Old_Must_Not_Freeze := Must_Not_Freeze (Old_Node); - else - Old_Paren_Count := 0; - Old_Must_Not_Freeze := False; - end if; + function Elist23 (N : Node_Id) return Elist_Id is + pragma Assert (Nkind (N) in N_Entity); + Value : constant Union_Id := Nodes.Table (N + 3).Field10; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist23; - -- Allocate a new node, to be used to preserve the original contents - -- of the Old_Node, for possible later retrival by Original_Node and - -- make an entry in the Orig_Nodes table. This is only done if we have - -- not already rewritten the node, as indicated by an Orig_Nodes entry - -- that does not reference the Old_Node. + function Elist25 (N : Node_Id) return Elist_Id is + pragma Assert (Nkind (N) in N_Entity); + Value : constant Union_Id := Nodes.Table (N + 4).Field7; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist25; - if Orig_Nodes.Table (Old_Node) = Old_Node then - Nodes.Increment_Last; - Sav_Node := Nodes.Last; - Nodes.Table (Sav_Node) := Nodes.Table (Old_Node); - Nodes.Table (Sav_Node).In_List := False; - Nodes.Table (Sav_Node).Link := Union_Id (Parent (Old_Node)); + function Elist26 (N : Node_Id) return Elist_Id is + pragma Assert (Nkind (N) in N_Entity); + Value : constant Union_Id := Nodes.Table (N + 4).Field8; + begin + if Value = 0 then + return No_Elist; + else + return Elist_Id (Value); + end if; + end Elist26; - Orig_Nodes.Increment_Last; - Allocate_List_Tables (Nodes.Last); + function Name1 (N : Node_Id) return Name_Id is + begin + pragma Assert (N <= Nodes.Last); + return Name_Id (Nodes.Table (N).Field1); + end Name1; - Orig_Nodes.Table (Sav_Node) := Sav_Node; - Orig_Nodes.Table (Old_Node) := Sav_Node; - end if; + function Name2 (N : Node_Id) return Name_Id is + begin + pragma Assert (N <= Nodes.Last); + return Name_Id (Nodes.Table (N).Field2); + end Name2; - -- Copy substitute node into place, preserving old fields as required + function Str3 (N : Node_Id) return String_Id is + begin + pragma Assert (N <= Nodes.Last); + return String_Id (Nodes.Table (N).Field3); + end Str3; - Nodes.Table (Old_Node) := Nodes.Table (New_Node); - Nodes.Table (Old_Node).Link := Old_Link; - Nodes.Table (Old_Node).In_List := Old_In_List; - Nodes.Table (Old_Node).Error_Posted := Old_Error_P; + function Uint2 (N : Node_Id) return Uint is + pragma Assert (N <= Nodes.Last); + U : constant Union_Id := Nodes.Table (N).Field2; + begin + if U = 0 then + return Uint_0; + else + return From_Union (U); + end if; + end Uint2; - if Nkind (New_Node) in N_Subexpr then - Set_Paren_Count (Old_Node, Old_Paren_Count); - Set_Must_Not_Freeze (Old_Node, Old_Must_Not_Freeze); - end if; + function Uint3 (N : Node_Id) return Uint is + pragma Assert (N <= Nodes.Last); + U : constant Union_Id := Nodes.Table (N).Field3; + begin + if U = 0 then + return Uint_0; + else + return From_Union (U); + end if; + end Uint3; - Fix_Parent (Field1 (Old_Node), New_Node, Old_Node); - Fix_Parent (Field2 (Old_Node), New_Node, Old_Node); - Fix_Parent (Field3 (Old_Node), New_Node, Old_Node); - Fix_Parent (Field4 (Old_Node), New_Node, Old_Node); - Fix_Parent (Field5 (Old_Node), New_Node, Old_Node); - end Rewrite; + function Uint4 (N : Node_Id) return Uint is + pragma Assert (N <= Nodes.Last); + U : constant Union_Id := Nodes.Table (N).Field4; + begin + if U = 0 then + return Uint_0; + else + return From_Union (U); + end if; + end Uint4; - ------------------ - -- Set_Analyzed -- - ------------------ + function Uint5 (N : Node_Id) return Uint is + pragma Assert (N <= Nodes.Last); + U : constant Union_Id := Nodes.Table (N).Field5; + begin + if U = 0 then + return Uint_0; + else + return From_Union (U); + end if; + end Uint5; - procedure Set_Analyzed (N : Node_Id; Val : Boolean := True) is - begin - Nodes.Table (N).Analyzed := Val; - end Set_Analyzed; + function Uint8 (N : Node_Id) return Uint is + pragma Assert (Nkind (N) in N_Entity); + U : constant Union_Id := Nodes.Table (N + 1).Field8; + begin + if U = 0 then + return Uint_0; + else + return From_Union (U); + end if; + end Uint8; - --------------------------- - -- Set_Comes_From_Source -- - --------------------------- + 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; + else + return From_Union (U); + end if; + end Uint9; - procedure Set_Comes_From_Source (N : Node_Id; Val : Boolean) is - begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Comes_From_Source := Val; - end Set_Comes_From_Source; + function Uint10 (N : Node_Id) return Uint is + pragma Assert (Nkind (N) in N_Entity); + 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 Uint10; - ----------------------------------- - -- Set_Comes_From_Source_Default -- - ----------------------------------- + function Uint11 (N : Node_Id) return Uint is + pragma Assert (Nkind (N) in N_Entity); + 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 Uint11; - procedure Set_Comes_From_Source_Default (Default : Boolean) is - begin - Default_Node.Comes_From_Source := Default; - end Set_Comes_From_Source_Default; + 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; + else + return From_Union (U); + end if; + end Uint12; - -------------------- - -- Set_Convention -- - -------------------- + 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; + else + return From_Union (U); + end if; + end Uint13; - procedure Set_Convention (E : Entity_Id; Val : Convention_Id) is - begin - pragma Assert (Nkind (E) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (E + 2).Field12'Unrestricted_Access)).Convention := - Val; - end Set_Convention; + 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; + else + return From_Union (U); + end if; + end Uint14; - --------------- - -- Set_Ekind -- - --------------- + 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; + else + return From_Union (U); + end if; + end Uint15; - procedure Set_Ekind (E : Entity_Id; Val : Entity_Kind) is - begin - pragma Assert (Nkind (E) in N_Entity); - Nodes.Table (E + 1).Nkind := E_To_N (Val); - end Set_Ekind; + 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; + else + return From_Union (U); + end if; + end Uint16; - ---------------------- - -- Set_Error_Posted -- - ---------------------- + 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; + else + return From_Union (U); + end if; + end Uint17; - procedure Set_Error_Posted (N : Node_Id; Val : Boolean := True) is - begin - Nodes.Table (N).Error_Posted := Val; - end Set_Error_Posted; + 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; + else + return From_Union (U); + end if; + end Uint22; - --------------------- - -- Set_Paren_Count -- - --------------------- + function Ureal3 (N : Node_Id) return Ureal is + begin + pragma Assert (N <= Nodes.Last); + return From_Union (Nodes.Table (N).Field3); + end Ureal3; - procedure Set_Paren_Count (N : Node_Id; Val : Paren_Count_Type) is - begin - pragma Assert (Nkind (N) in N_Subexpr); - Nodes.Table (N).Pflag1 := (Val mod 2 /= 0); - Nodes.Table (N).Pflag2 := (Val >= 2); - end Set_Paren_Count; + function Ureal18 (N : Node_Id) return Ureal is + begin + pragma Assert (Nkind (N) in N_Entity); + return From_Union (Nodes.Table (N + 2).Field11); + end Ureal18; - ---------------- - -- Set_Parent -- - ---------------- + function Ureal21 (N : Node_Id) return Ureal is + begin + pragma Assert (Nkind (N) in N_Entity); + return From_Union (Nodes.Table (N + 3).Field8); + end Ureal21; - procedure Set_Parent (N : Node_Id; Val : Node_Id) is - begin - pragma Assert (not Nodes.Table (N).In_List); - Nodes.Table (N).Link := Union_Id (Val); - end Set_Parent; + function Flag4 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag4; + end Flag4; - -------------- - -- Set_Sloc -- - -------------- + function Flag5 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag5; + end Flag5; - procedure Set_Sloc (N : Node_Id; Val : Source_Ptr) is - begin - Nodes.Table (N).Sloc := Val; - end Set_Sloc; + function Flag6 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag6; + end Flag6; - ---------- - -- Sloc -- - ---------- + function Flag7 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag7; + end Flag7; - function Sloc (N : Node_Id) return Source_Ptr is - begin - return Nodes.Table (N).Sloc; - end Sloc; + function Flag8 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag8; + end Flag8; - ------------------- - -- Traverse_Func -- - ------------------- + function Flag9 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag9; + end Flag9; - function Traverse_Func (Node : Node_Id) return Traverse_Result is + function Flag10 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag10; + end Flag10; - function Traverse_Field (Fld : Union_Id) return Traverse_Result; - -- Fld is one of the fields of Node. If the field points to a - -- syntactic node or list, then this node or list is traversed, - -- and the result is the result of this traversal. Otherwise - -- a value of True is returned with no processing. + function Flag11 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag11; + end Flag11; - -------------------- - -- Traverse_Field -- - -------------------- + function Flag12 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag12; + end Flag12; - function Traverse_Field (Fld : Union_Id) return Traverse_Result is + function Flag13 (N : Node_Id) return Boolean is begin - if Fld = Union_Id (Empty) then - return OK; + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag13; + end Flag13; - -- Descendent is a node + function Flag14 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag14; + end Flag14; - elsif Fld in Node_Range then + function Flag15 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag15; + end Flag15; - -- Traverse descendent that is syntactic subtree node + function Flag16 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag16; + end Flag16; - if Parent (Node_Id (Fld)) = Node - or else Original_Node (Parent (Node_Id (Fld))) = Node - then - return Traverse_Func (Node_Id (Fld)); + function Flag17 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag17; + end Flag17; - -- Node that is not a syntactic subtree + function Flag18 (N : Node_Id) return Boolean is + begin + pragma Assert (N <= Nodes.Last); + return Nodes.Table (N).Flag18; + end Flag18; - else - return OK; - end if; + function Flag19 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).In_List; + end Flag19; - -- Descendent is a list + function Flag20 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Unused_1; + end Flag20; - elsif Fld in List_Range then + function Flag21 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Rewrite_Ins; + end Flag21; - -- Traverse descendent that is a syntactic subtree list + function Flag22 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Analyzed; + end Flag22; - if Parent (List_Id (Fld)) = Node - or else Original_Node (Parent (List_Id (Fld))) = Node - then - declare - Elmt : Node_Id := First (List_Id (Fld)); - begin - while Present (Elmt) loop - if Traverse_Func (Elmt) = Abandon then - return Abandon; - else - Next (Elmt); - end if; - end loop; + function Flag23 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Comes_From_Source; + end Flag23; - return OK; - end; + function Flag24 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Error_Posted; + end Flag24; - -- List that is not a syntactic subtree + function Flag25 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag4; + end Flag25; - else - return OK; - end if; + function Flag26 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag5; + end Flag26; - -- Field was not a node or a list + function Flag27 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag6; + end Flag27; - else - return OK; - end if; - end Traverse_Field; + function Flag28 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag7; + end Flag28; - -- Start of processing for Traverse_Func + function Flag29 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag8; + end Flag29; - begin - case Process (Node) is - when Abandon => - return Abandon; + function Flag30 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag9; + end Flag30; - when Skip => - return OK; + function Flag31 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag10; + end Flag31; - when OK => - if Traverse_Field (Union_Id (Field1 (Node))) = Abandon - or else - Traverse_Field (Union_Id (Field2 (Node))) = Abandon - or else - Traverse_Field (Union_Id (Field3 (Node))) = Abandon - or else - Traverse_Field (Union_Id (Field4 (Node))) = Abandon - or else - Traverse_Field (Union_Id (Field5 (Node))) = Abandon - then - return Abandon; + function Flag32 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag11; + end Flag32; - else - return OK; - end if; + function Flag33 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag12; + end Flag33; - when OK_Orig => - declare - Onode : constant Node_Id := Original_Node (Node); - - begin - if Traverse_Field (Union_Id (Field1 (Onode))) = Abandon - or else - Traverse_Field (Union_Id (Field2 (Onode))) = Abandon - or else - Traverse_Field (Union_Id (Field3 (Onode))) = Abandon - or else - Traverse_Field (Union_Id (Field4 (Onode))) = Abandon - or else - Traverse_Field (Union_Id (Field5 (Onode))) = Abandon - then - return Abandon; + function Flag34 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag13; + end Flag34; - else - return OK_Orig; - end if; - end; - end case; - end Traverse_Func; + function Flag35 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag14; + end Flag35; - ------------------- - -- Traverse_Proc -- - ------------------- + function Flag36 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag15; + end Flag36; - procedure Traverse_Proc (Node : Node_Id) is - function Traverse is new Traverse_Func (Process); - Discard : Traverse_Result; - pragma Warnings (Off, Discard); + function Flag37 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag16; + end Flag37; - begin - Discard := Traverse (Node); - end Traverse_Proc; + function Flag38 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag17; + end Flag38; - --------------- - -- Tree_Read -- - --------------- + function Flag39 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 1).Flag18; + end Flag39; - procedure Tree_Read is - begin - Tree_Read_Int (Node_Count); - Nodes.Tree_Read; - Orig_Nodes.Tree_Read; - end Tree_Read; + function Flag40 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).In_List; + end Flag40; - ---------------- - -- Tree_Write -- - ---------------- + function Flag41 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Unused_1; + end Flag41; - procedure Tree_Write is - begin - Tree_Write_Int (Node_Count); - Nodes.Tree_Write; - Orig_Nodes.Tree_Write; - end Tree_Write; + function Flag42 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Rewrite_Ins; + end Flag42; - ------------------------------ - -- Unchecked Access Package -- - ------------------------------ + function Flag43 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Analyzed; + end Flag43; - package body Unchecked_Access is + function Flag44 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Comes_From_Source; + end Flag44; - function Field1 (N : Node_Id) return Union_Id is + function Flag45 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Field1; - end Field1; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Error_Posted; + end Flag45; - function Field2 (N : Node_Id) return Union_Id is + function Flag46 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Field2; - end Field2; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Flag4; + end Flag46; - function Field3 (N : Node_Id) return Union_Id is + function Flag47 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Field3; - end Field3; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Flag5; + end Flag47; - function Field4 (N : Node_Id) return Union_Id is + function Flag48 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Field4; - end Field4; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Flag6; + end Flag48; - function Field5 (N : Node_Id) return Union_Id is + function Flag49 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Field5; - end Field5; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 2).Flag7; + end Flag49; - function Field6 (N : Node_Id) return Union_Id is + function Flag50 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Field6; - end Field6; + return Nodes.Table (N + 2).Flag8; + end Flag50; - function Field7 (N : Node_Id) return Union_Id is + function Flag51 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Field7; - end Field7; + return Nodes.Table (N + 2).Flag9; + end Flag51; - function Field8 (N : Node_Id) return Union_Id is + function Flag52 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Field8; - end Field8; + return Nodes.Table (N + 2).Flag10; + end Flag52; - function Field9 (N : Node_Id) return Union_Id is + function Flag53 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Field9; - end Field9; + return Nodes.Table (N + 2).Flag11; + end Flag53; - function Field10 (N : Node_Id) return Union_Id is + function Flag54 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Field10; - end Field10; + return Nodes.Table (N + 2).Flag12; + end Flag54; - function Field11 (N : Node_Id) return Union_Id is + function Flag55 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Field11; - end Field11; + return Nodes.Table (N + 2).Flag13; + end Flag55; - function Field12 (N : Node_Id) return Union_Id is + function Flag56 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Field12; - end Field12; + return Nodes.Table (N + 2).Flag14; + end Flag56; - function Field13 (N : Node_Id) return Union_Id is + function Flag57 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Field6; - end Field13; + return Nodes.Table (N + 2).Flag15; + end Flag57; - function Field14 (N : Node_Id) return Union_Id is + function Flag58 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Field7; - end Field14; + return Nodes.Table (N + 2).Flag16; + end Flag58; - function Field15 (N : Node_Id) return Union_Id is + function Flag59 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Field8; - end Field15; + return Nodes.Table (N + 2).Flag17; + end Flag59; - function Field16 (N : Node_Id) return Union_Id is + function Flag60 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Field9; - end Field16; + return Nodes.Table (N + 2).Flag18; + end Flag60; - function Field17 (N : Node_Id) return Union_Id is + function Flag61 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Field10; - end Field17; + return Nodes.Table (N + 1).Pflag1; + end Flag61; - function Field18 (N : Node_Id) return Union_Id is + function Flag62 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Field11; - end Field18; + return Nodes.Table (N + 1).Pflag2; + end Flag62; - function Field19 (N : Node_Id) return Union_Id is + function Flag63 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Field6; - end Field19; + return Nodes.Table (N + 2).Pflag1; + end Flag63; - function Field20 (N : Node_Id) return Union_Id is + function Flag64 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Field7; - end Field20; + return Nodes.Table (N + 2).Pflag2; + end Flag64; - function Field21 (N : Node_Id) return Union_Id is + function Flag65 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Field8; - end Field21; + return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag65; + end Flag65; - function Field22 (N : Node_Id) return Union_Id is + function Flag66 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Field9; - end Field22; + return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag66; + end Flag66; - function Field23 (N : Node_Id) return Union_Id is + function Flag67 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Field10; - end Field23; + return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag67; + end Flag67; - function Node1 (N : Node_Id) return Node_Id is + function Flag68 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Node_Id (Nodes.Table (N).Field1); - end Node1; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag68; + end Flag68; - function Node2 (N : Node_Id) return Node_Id is + function Flag69 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Node_Id (Nodes.Table (N).Field2); - end Node2; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag69; + end Flag69; - function Node3 (N : Node_Id) return Node_Id is + function Flag70 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Node_Id (Nodes.Table (N).Field3); - end Node3; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag70; + end Flag70; - function Node4 (N : Node_Id) return Node_Id is + function Flag71 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Node_Id (Nodes.Table (N).Field4); - end Node4; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag71; + end Flag71; - function Node5 (N : Node_Id) return Node_Id is + function Flag72 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Node_Id (Nodes.Table (N).Field5); - end Node5; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag72; + end Flag72; - function Node6 (N : Node_Id) return Node_Id is + function Flag73 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 1).Field6); - end Node6; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag73; + end Flag73; - function Node7 (N : Node_Id) return Node_Id is + function Flag74 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 1).Field7); - end Node7; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag74; + end Flag74; - function Node8 (N : Node_Id) return Node_Id is + function Flag75 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 1).Field8); - end Node8; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag75; + end Flag75; - function Node9 (N : Node_Id) return Node_Id is + function Flag76 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 1).Field9); - end Node9; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag76; + end Flag76; - function Node10 (N : Node_Id) return Node_Id is + function Flag77 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 1).Field10); - end Node10; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag77; + end Flag77; - function Node11 (N : Node_Id) return Node_Id is + function Flag78 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 1).Field11); - end Node11; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag78; + end Flag78; - function Node12 (N : Node_Id) return Node_Id is + function Flag79 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 1).Field12); - end Node12; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag79; + end Flag79; - function Node13 (N : Node_Id) return Node_Id is + function Flag80 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 2).Field6); - end Node13; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag80; + end Flag80; - function Node14 (N : Node_Id) return Node_Id is + function Flag81 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 2).Field7); - end Node14; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag81; + end Flag81; - function Node15 (N : Node_Id) return Node_Id is + function Flag82 (N : Node_Id) return Boolean is + begin + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag82; + end Flag82; + + function Flag83 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 2).Field8); - end Node15; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag83; + end Flag83; - function Node16 (N : Node_Id) return Node_Id is + function Flag84 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 2).Field9); - end Node16; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag84; + end Flag84; - function Node17 (N : Node_Id) return Node_Id is + function Flag85 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 2).Field10); - end Node17; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag85; + end Flag85; - function Node18 (N : Node_Id) return Node_Id is + function Flag86 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 2).Field11); - end Node18; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag86; + end Flag86; - function Node19 (N : Node_Id) return Node_Id is + function Flag87 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 3).Field6); - end Node19; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag87; + end Flag87; - function Node20 (N : Node_Id) return Node_Id is + function Flag88 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 3).Field7); - end Node20; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag88; + end Flag88; - function Node21 (N : Node_Id) return Node_Id is + function Flag89 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 3).Field8); - end Node21; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag89; + end Flag89; - function Node22 (N : Node_Id) return Node_Id is + function Flag90 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 3).Field9); - end Node22; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag90; + end Flag90; - function Node23 (N : Node_Id) return Node_Id is + function Flag91 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Node_Id (Nodes.Table (N + 3).Field10); - end Node23; + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag91; + end Flag91; - function List1 (N : Node_Id) return List_Id is + function Flag92 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return List_Id (Nodes.Table (N).Field1); - end List1; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag92; + end Flag92; - function List2 (N : Node_Id) return List_Id is + function Flag93 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return List_Id (Nodes.Table (N).Field2); - end List2; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag93; + end Flag93; - function List3 (N : Node_Id) return List_Id is + function Flag94 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return List_Id (Nodes.Table (N).Field3); - end List3; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag94; + end Flag94; - function List4 (N : Node_Id) return List_Id is + function Flag95 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return List_Id (Nodes.Table (N).Field4); - end List4; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag95; + end Flag95; - function List5 (N : Node_Id) return List_Id is + function Flag96 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return List_Id (Nodes.Table (N).Field5); - end List5; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag96; + end Flag96; - function List10 (N : Node_Id) return List_Id is + function Flag97 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return List_Id (Nodes.Table (N + 1).Field10); - end List10; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag97; + end Flag97; - function List14 (N : Node_Id) return List_Id is + function Flag98 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return List_Id (Nodes.Table (N + 2).Field7); - end List14; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag98; + end Flag98; - function Elist2 (N : Node_Id) return Elist_Id is + function Flag99 (N : Node_Id) return Boolean is begin - return Elist_Id (Nodes.Table (N).Field2); - end Elist2; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag99; + end Flag99; - function Elist3 (N : Node_Id) return Elist_Id is + function Flag100 (N : Node_Id) return Boolean is begin - return Elist_Id (Nodes.Table (N).Field3); - end Elist3; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag100; + end Flag100; - function Elist4 (N : Node_Id) return Elist_Id is + function Flag101 (N : Node_Id) return Boolean is begin - return Elist_Id (Nodes.Table (N).Field4); - end Elist4; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag101; + end Flag101; - function Elist8 (N : Node_Id) return Elist_Id is + function Flag102 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Elist_Id (Nodes.Table (N + 1).Field8); - end Elist8; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag102; + end Flag102; - function Elist13 (N : Node_Id) return Elist_Id is + function Flag103 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Elist_Id (Nodes.Table (N + 2).Field6); - end Elist13; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag103; + end Flag103; - function Elist15 (N : Node_Id) return Elist_Id is + function Flag104 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Elist_Id (Nodes.Table (N + 2).Field8); - end Elist15; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag104; + end Flag104; - function Elist16 (N : Node_Id) return Elist_Id is + function Flag105 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Elist_Id (Nodes.Table (N + 2).Field9); - end Elist16; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag105; + end Flag105; - function Elist18 (N : Node_Id) return Elist_Id is + function Flag106 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Elist_Id (Nodes.Table (N + 2).Field11); - end Elist18; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag106; + end Flag106; - function Elist21 (N : Node_Id) return Elist_Id is + function Flag107 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Elist_Id (Nodes.Table (N + 3).Field8); - end Elist21; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag107; + end Flag107; - function Elist23 (N : Node_Id) return Elist_Id is + function Flag108 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Elist_Id (Nodes.Table (N + 3).Field10); - end Elist23; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag108; + end Flag108; - function Name1 (N : Node_Id) return Name_Id is + function Flag109 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Name_Id (Nodes.Table (N).Field1); - end Name1; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag109; + end Flag109; - function Name2 (N : Node_Id) return Name_Id is + function Flag110 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Name_Id (Nodes.Table (N).Field2); - end Name2; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag110; + end Flag110; - function Str3 (N : Node_Id) return String_Id is + function Flag111 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return String_Id (Nodes.Table (N).Field3); - end Str3; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag111; + end Flag111; - function Char_Code2 (N : Node_Id) return Char_Code is + function Flag112 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Char_Code (Nodes.Table (N).Field2 - Char_Code_Bias); - end Char_Code2; - - function Uint3 (N : Node_Id) return Uint is - pragma Assert (N in Nodes.First .. Nodes.Last); - U : constant Union_Id := Nodes.Table (N).Field3; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag112; + end Flag112; + function Flag113 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint3; - - function Uint4 (N : Node_Id) return Uint is - pragma Assert (N in Nodes.First .. Nodes.Last); - U : constant Union_Id := Nodes.Table (N).Field4; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag113; + end Flag113; + function Flag114 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint4; - - function Uint5 (N : Node_Id) return Uint is - pragma Assert (N in Nodes.First .. Nodes.Last); - U : constant Union_Id := Nodes.Table (N).Field5; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag114; + end Flag114; + function Flag115 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint5; - - function Uint8 (N : Node_Id) return Uint is pragma Assert (Nkind (N) in N_Entity); - U : constant Union_Id := Nodes.Table (N + 1).Field8; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag115; + end Flag115; + function Flag116 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint8; - - function Uint9 (N : Node_Id) return Uint is pragma Assert (Nkind (N) in N_Entity); - U : constant Union_Id := Nodes.Table (N + 1).Field9; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag116; + end Flag116; + function Flag117 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint9; - - function Uint11 (N : Node_Id) return Uint is pragma Assert (Nkind (N) in N_Entity); - U : constant Union_Id := Nodes.Table (N + 1).Field11; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag117; + end Flag117; + function Flag118 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint11; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag118; + end Flag118; - function Uint10 (N : Node_Id) return Uint is + function Flag119 (N : Node_Id) return Boolean is + begin pragma Assert (Nkind (N) in N_Entity); - U : constant Union_Id := Nodes.Table (N + 1).Field10; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag119; + end Flag119; + function Flag120 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint10; - - function Uint12 (N : Node_Id) return Uint is pragma Assert (Nkind (N) in N_Entity); - U : constant Union_Id := Nodes.Table (N + 1).Field12; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag120; + end Flag120; + function Flag121 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint12; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag121; + end Flag121; - function Uint13 (N : Node_Id) return Uint is + function Flag122 (N : Node_Id) return Boolean is + begin pragma Assert (Nkind (N) in N_Entity); - U : constant Union_Id := Nodes.Table (N + 2).Field6; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag122; + end Flag122; + function Flag123 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint13; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag123; + end Flag123; - function Uint14 (N : Node_Id) return Uint is + function Flag124 (N : Node_Id) return Boolean is + begin pragma Assert (Nkind (N) in N_Entity); - U : constant Union_Id := Nodes.Table (N + 2).Field7; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag124; + end Flag124; + function Flag125 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint14; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag125; + end Flag125; - function Uint15 (N : Node_Id) return Uint is + function Flag126 (N : Node_Id) return Boolean is + begin pragma Assert (Nkind (N) in N_Entity); - U : constant Union_Id := Nodes.Table (N + 2).Field8; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag126; + end Flag126; + function Flag127 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint15; + pragma Assert (Nkind (N) in N_Entity); + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag127; + end Flag127; - function Uint16 (N : Node_Id) return Uint is + function Flag128 (N : Node_Id) return Boolean is + begin pragma Assert (Nkind (N) in N_Entity); - U : constant Union_Id := Nodes.Table (N + 2).Field9; + return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag128; + end Flag128; + function Flag129 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint16; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).In_List; + end Flag129; - function Uint17 (N : Node_Id) return Uint is + function Flag130 (N : Node_Id) return Boolean is + begin pragma Assert (Nkind (N) in N_Entity); - U : constant Union_Id := Nodes.Table (N + 2).Field10; + return Nodes.Table (N + 3).Unused_1; + end Flag130; + function Flag131 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint17; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Rewrite_Ins; + end Flag131; - function Uint22 (N : Node_Id) return Uint is + function Flag132 (N : Node_Id) return Boolean is + begin pragma Assert (Nkind (N) in N_Entity); - U : constant Union_Id := Nodes.Table (N + 3).Field9; + return Nodes.Table (N + 3).Analyzed; + end Flag132; + function Flag133 (N : Node_Id) return Boolean is begin - if U = 0 then - return Uint_0; - else - return From_Union (U); - end if; - end Uint22; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Comes_From_Source; + end Flag133; - function Ureal3 (N : Node_Id) return Ureal is + function Flag134 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return From_Union (Nodes.Table (N).Field3); - end Ureal3; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Error_Posted; + end Flag134; - function Ureal18 (N : Node_Id) return Ureal is + function Flag135 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return From_Union (Nodes.Table (N + 2).Field11); - end Ureal18; + return Nodes.Table (N + 3).Flag4; + end Flag135; - function Ureal21 (N : Node_Id) return Ureal is + function Flag136 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return From_Union (Nodes.Table (N + 3).Field8); - end Ureal21; + return Nodes.Table (N + 3).Flag5; + end Flag136; - function Flag4 (N : Node_Id) return Boolean is + function Flag137 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag4; - end Flag4; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag6; + end Flag137; - function Flag5 (N : Node_Id) return Boolean is + function Flag138 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag5; - end Flag5; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag7; + end Flag138; - function Flag6 (N : Node_Id) return Boolean is + function Flag139 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag6; - end Flag6; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag8; + end Flag139; - function Flag7 (N : Node_Id) return Boolean is + function Flag140 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag7; - end Flag7; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag9; + end Flag140; - function Flag8 (N : Node_Id) return Boolean is + function Flag141 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag8; - end Flag8; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag10; + end Flag141; - function Flag9 (N : Node_Id) return Boolean is + function Flag142 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag9; - end Flag9; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag11; + end Flag142; - function Flag10 (N : Node_Id) return Boolean is + function Flag143 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag10; - end Flag10; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag12; + end Flag143; - function Flag11 (N : Node_Id) return Boolean is + function Flag144 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag11; - end Flag11; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag13; + end Flag144; - function Flag12 (N : Node_Id) return Boolean is + function Flag145 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag12; - end Flag12; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag14; + end Flag145; - function Flag13 (N : Node_Id) return Boolean is + function Flag146 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag13; - end Flag13; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag15; + end Flag146; - function Flag14 (N : Node_Id) return Boolean is + function Flag147 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag14; - end Flag14; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag16; + end Flag147; - function Flag15 (N : Node_Id) return Boolean is + function Flag148 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag15; - end Flag15; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag17; + end Flag148; - function Flag16 (N : Node_Id) return Boolean is + function Flag149 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag16; - end Flag16; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Flag18; + end Flag149; - function Flag17 (N : Node_Id) return Boolean is + function Flag150 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag17; - end Flag17; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Pflag1; + end Flag150; - function Flag18 (N : Node_Id) return Boolean is + function Flag151 (N : Node_Id) return Boolean is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - return Nodes.Table (N).Flag18; - end Flag18; + pragma Assert (Nkind (N) in N_Entity); + return Nodes.Table (N + 3).Pflag2; + end Flag151; - function Flag19 (N : Node_Id) return Boolean is + function Flag152 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).In_List; - end Flag19; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag152; + end Flag152; - function Flag20 (N : Node_Id) return Boolean is + function Flag153 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Unused_1; - end Flag20; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag153; + end Flag153; - function Flag21 (N : Node_Id) return Boolean is + function Flag154 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Rewrite_Ins; - end Flag21; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag154; + end Flag154; - function Flag22 (N : Node_Id) return Boolean is + function Flag155 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Analyzed; - end Flag22; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag155; + end Flag155; - function Flag23 (N : Node_Id) return Boolean is + function Flag156 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Comes_From_Source; - end Flag23; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag156; + end Flag156; - function Flag24 (N : Node_Id) return Boolean is + function Flag157 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Error_Posted; - end Flag24; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag157; + end Flag157; - function Flag25 (N : Node_Id) return Boolean is + function Flag158 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag4; - end Flag25; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag158; + end Flag158; - function Flag26 (N : Node_Id) return Boolean is + function Flag159 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag5; - end Flag26; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag159; + end Flag159; - function Flag27 (N : Node_Id) return Boolean is + function Flag160 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag6; - end Flag27; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag160; + end Flag160; - function Flag28 (N : Node_Id) return Boolean is + function Flag161 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag7; - end Flag28; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag161; + end Flag161; - function Flag29 (N : Node_Id) return Boolean is + function Flag162 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag8; - end Flag29; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag162; + end Flag162; - function Flag30 (N : Node_Id) return Boolean is + function Flag163 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag9; - end Flag30; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag163; + end Flag163; - function Flag31 (N : Node_Id) return Boolean is + function Flag164 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag10; - end Flag31; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag164; + end Flag164; - function Flag32 (N : Node_Id) return Boolean is + function Flag165 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag11; - end Flag32; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag165; + end Flag165; - function Flag33 (N : Node_Id) return Boolean is + function Flag166 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag12; - end Flag33; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag166; + end Flag166; - function Flag34 (N : Node_Id) return Boolean is + function Flag167 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag13; - end Flag34; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag167; + end Flag167; - function Flag35 (N : Node_Id) return Boolean is + function Flag168 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag14; - end Flag35; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag168; + end Flag168; - function Flag36 (N : Node_Id) return Boolean is + function Flag169 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag15; - end Flag36; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag169; + end Flag169; - function Flag37 (N : Node_Id) return Boolean is + function Flag170 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag16; - end Flag37; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag170; + end Flag170; - function Flag38 (N : Node_Id) return Boolean is + function Flag171 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag17; - end Flag38; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag171; + end Flag171; - function Flag39 (N : Node_Id) return Boolean is + function Flag172 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Flag18; - end Flag39; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag172; + end Flag172; - function Flag40 (N : Node_Id) return Boolean is + function Flag173 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).In_List; - end Flag40; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag173; + end Flag173; - function Flag41 (N : Node_Id) return Boolean is + function Flag174 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Unused_1; - end Flag41; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag174; + end Flag174; - function Flag42 (N : Node_Id) return Boolean is + function Flag175 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Rewrite_Ins; - end Flag42; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag175; + end Flag175; - function Flag43 (N : Node_Id) return Boolean is + function Flag176 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Analyzed; - end Flag43; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag176; + end Flag176; - function Flag44 (N : Node_Id) return Boolean is + function Flag177 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Comes_From_Source; - end Flag44; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag177; + end Flag177; - function Flag45 (N : Node_Id) return Boolean is + function Flag178 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Error_Posted; - end Flag45; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag178; + end Flag178; - function Flag46 (N : Node_Id) return Boolean is + function Flag179 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag4; - end Flag46; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag179; + end Flag179; - function Flag47 (N : Node_Id) return Boolean is + function Flag180 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag5; - end Flag47; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag180; + end Flag180; - function Flag48 (N : Node_Id) return Boolean is + function Flag181 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag6; - end Flag48; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag181; + end Flag181; - function Flag49 (N : Node_Id) return Boolean is + function Flag182 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag7; - end Flag49; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag182; + end Flag182; - function Flag50 (N : Node_Id) return Boolean is + function Flag183 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag8; - end Flag50; + return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag183; + end Flag183; - function Flag51 (N : Node_Id) return Boolean is + function Flag184 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag9; - end Flag51; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag184; + end Flag184; - function Flag52 (N : Node_Id) return Boolean is + function Flag185 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag10; - end Flag52; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag185; + end Flag185; - function Flag53 (N : Node_Id) return Boolean is + function Flag186 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag11; - end Flag53; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag186; + end Flag186; - function Flag54 (N : Node_Id) return Boolean is + function Flag187 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag12; - end Flag54; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag187; + end Flag187; - function Flag55 (N : Node_Id) return Boolean is + function Flag188 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag13; - end Flag55; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag188; + end Flag188; - function Flag56 (N : Node_Id) return Boolean is + function Flag189 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag14; - end Flag56; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag189; + end Flag189; - function Flag57 (N : Node_Id) return Boolean is + function Flag190 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag15; - end Flag57; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag190; + end Flag190; - function Flag58 (N : Node_Id) return Boolean is + function Flag191 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag16; - end Flag58; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag191; + end Flag191; - function Flag59 (N : Node_Id) return Boolean is + function Flag192 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag17; - end Flag59; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag192; + end Flag192; - function Flag60 (N : Node_Id) return Boolean is + function Flag193 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Flag18; - end Flag60; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag193; + end Flag193; - function Flag61 (N : Node_Id) return Boolean is + function Flag194 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Pflag1; - end Flag61; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag194; + end Flag194; - function Flag62 (N : Node_Id) return Boolean is + function Flag195 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 1).Pflag2; - end Flag62; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag195; + end Flag195; - function Flag63 (N : Node_Id) return Boolean is + function Flag196 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Pflag1; - end Flag63; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag196; + end Flag196; - function Flag64 (N : Node_Id) return Boolean is + function Flag197 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 2).Pflag2; - end Flag64; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag197; + end Flag197; - function Flag65 (N : Node_Id) return Boolean is + function Flag198 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag65; - end Flag65; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag198; + end Flag198; - function Flag66 (N : Node_Id) return Boolean is + function Flag199 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag66; - end Flag66; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag199; + end Flag199; - function Flag67 (N : Node_Id) return Boolean is + function Flag200 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag67; - end Flag67; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag200; + end Flag200; - function Flag68 (N : Node_Id) return Boolean is + function Flag201 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag68; - end Flag68; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag201; + end Flag201; - function Flag69 (N : Node_Id) return Boolean is + function Flag202 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag69; - end Flag69; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag202; + end Flag202; - function Flag70 (N : Node_Id) return Boolean is + function Flag203 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag70; - end Flag70; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag203; + end Flag203; - function Flag71 (N : Node_Id) return Boolean is + function Flag204 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag71; - end Flag71; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag204; + end Flag204; - function Flag72 (N : Node_Id) return Boolean is + function Flag205 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag72; - end Flag72; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag205; + end Flag205; - function Flag73 (N : Node_Id) return Boolean is + function Flag206 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag73; - end Flag73; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag206; + end Flag206; - function Flag74 (N : Node_Id) return Boolean is + function Flag207 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag74; - end Flag74; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag207; + end Flag207; - function Flag75 (N : Node_Id) return Boolean is + function Flag208 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag75; - end Flag75; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag208; + end Flag208; - function Flag76 (N : Node_Id) return Boolean is + function Flag209 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag76; - end Flag76; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag209; + end Flag209; - function Flag77 (N : Node_Id) return Boolean is + function Flag210 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag77; - end Flag77; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag210; + end Flag210; - function Flag78 (N : Node_Id) return Boolean is + function Flag211 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag78; - end Flag78; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag211; + end Flag211; - function Flag79 (N : Node_Id) return Boolean is + function Flag212 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag79; - end Flag79; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag212; + end Flag212; - function Flag80 (N : Node_Id) return Boolean is + function Flag213 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag80; - end Flag80; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag213; + end Flag213; - function Flag81 (N : Node_Id) return Boolean is + function Flag214 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag81; - end Flag81; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag214; + end Flag214; - function Flag82 (N : Node_Id) return Boolean is + function Flag215 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag82; - end Flag82; + return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag215; + end Flag215; - function Flag83 (N : Node_Id) return Boolean is + function Flag216 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag83; - end Flag83; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag216; + end Flag216; - function Flag84 (N : Node_Id) return Boolean is + function Flag217 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag84; - end Flag84; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag217; + end Flag217; - function Flag85 (N : Node_Id) return Boolean is + function Flag218 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag85; - end Flag85; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag218; + end Flag218; - function Flag86 (N : Node_Id) return Boolean is + function Flag219 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag86; - end Flag86; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag219; + end Flag219; - function Flag87 (N : Node_Id) return Boolean is + function Flag220 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag87; - end Flag87; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag220; + end Flag220; - function Flag88 (N : Node_Id) return Boolean is + function Flag221 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag88; - end Flag88; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag221; + end Flag221; - function Flag89 (N : Node_Id) return Boolean is + function Flag222 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag89; - end Flag89; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag222; + end Flag222; - function Flag90 (N : Node_Id) return Boolean is + function Flag223 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag90; - end Flag90; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag223; + end Flag223; - function Flag91 (N : Node_Id) return Boolean is + function Flag224 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag91; - end Flag91; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag224; + end Flag224; - function Flag92 (N : Node_Id) return Boolean is + function Flag225 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag92; - end Flag92; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag225; + end Flag225; - function Flag93 (N : Node_Id) return Boolean is + function Flag226 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag93; - end Flag93; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag226; + end Flag226; - function Flag94 (N : Node_Id) return Boolean is + function Flag227 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag94; - end Flag94; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag227; + end Flag227; - function Flag95 (N : Node_Id) return Boolean is + function Flag228 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag95; - end Flag95; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag228; + end Flag228; - function Flag96 (N : Node_Id) return Boolean is + function Flag229 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag96; - end Flag96; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag229; + end Flag229; - function Flag97 (N : Node_Id) return Boolean is + function Flag230 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag97; - end Flag97; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag230; + end Flag230; - function Flag98 (N : Node_Id) return Boolean is + function Flag231 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag98; - end Flag98; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag231; + end Flag231; - function Flag99 (N : Node_Id) return Boolean is + function Flag232 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag99; - end Flag99; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag232; + end Flag232; - function Flag100 (N : Node_Id) return Boolean is + function Flag233 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag100; - end Flag100; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag233; + end Flag233; - function Flag101 (N : Node_Id) return Boolean is + function Flag234 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag101; - end Flag101; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag234; + end Flag234; - function Flag102 (N : Node_Id) return Boolean is + function Flag235 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag102; - end Flag102; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag235; + end Flag235; - function Flag103 (N : Node_Id) return Boolean is + function Flag236 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag103; - end Flag103; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag236; + end Flag236; - function Flag104 (N : Node_Id) return Boolean is + function Flag237 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag104; - end Flag104; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag237; + end Flag237; - function Flag105 (N : Node_Id) return Boolean is + function Flag238 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag105; - end Flag105; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag238; + end Flag238; - function Flag106 (N : Node_Id) return Boolean is + function Flag239 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag106; - end Flag106; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag239; + end Flag239; - function Flag107 (N : Node_Id) return Boolean is + function Flag240 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag107; - end Flag107; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag240; + end Flag240; - function Flag108 (N : Node_Id) return Boolean is + function Flag241 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag108; - end Flag108; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag241; + end Flag241; - function Flag109 (N : Node_Id) return Boolean is + function Flag242 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag109; - end Flag109; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag242; + end Flag242; - function Flag110 (N : Node_Id) return Boolean is + function Flag243 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag110; - end Flag110; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag243; + end Flag243; - function Flag111 (N : Node_Id) return Boolean is + function Flag244 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag111; - end Flag111; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag244; + end Flag244; - function Flag112 (N : Node_Id) return Boolean is + function Flag245 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag112; - end Flag112; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag245; + end Flag245; - function Flag113 (N : Node_Id) return Boolean is + function Flag246 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag113; - end Flag113; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag246; + end Flag246; - function Flag114 (N : Node_Id) return Boolean is + function Flag247 (N : Node_Id) return Boolean is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag114; - end Flag114; + return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag247; + end Flag247; - function Flag115 (N : Node_Id) return Boolean is + procedure Set_Nkind (N : Node_Id; Val : Node_Kind) is + begin + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Nkind := Val; + end Set_Nkind; + + procedure Set_Field1 (N : Node_Id; Val : Union_Id) is + begin + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field1 := Val; + end Set_Field1; + + procedure Set_Field2 (N : Node_Id; Val : Union_Id) is + begin + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field2 := Val; + end Set_Field2; + + procedure Set_Field3 (N : Node_Id; Val : Union_Id) is + begin + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field3 := Val; + end Set_Field3; + + procedure Set_Field4 (N : Node_Id; Val : Union_Id) is + begin + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field4 := Val; + end Set_Field4; + + procedure Set_Field5 (N : Node_Id; Val : Union_Id) is + begin + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field5 := Val; + end Set_Field5; + + procedure Set_Field6 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag115; - end Flag115; + Nodes.Table (N + 1).Field6 := Val; + end Set_Field6; - function Flag116 (N : Node_Id) return Boolean is + procedure Set_Field7 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag116; - end Flag116; + Nodes.Table (N + 1).Field7 := Val; + end Set_Field7; - function Flag117 (N : Node_Id) return Boolean is + procedure Set_Field8 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag117; - end Flag117; + Nodes.Table (N + 1).Field8 := Val; + end Set_Field8; - function Flag118 (N : Node_Id) return Boolean is + procedure Set_Field9 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag118; - end Flag118; + Nodes.Table (N + 1).Field9 := Val; + end Set_Field9; - function Flag119 (N : Node_Id) return Boolean is + procedure Set_Field10 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag119; - end Flag119; + Nodes.Table (N + 1).Field10 := Val; + end Set_Field10; - function Flag120 (N : Node_Id) return Boolean is + procedure Set_Field11 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag120; - end Flag120; + Nodes.Table (N + 1).Field11 := Val; + end Set_Field11; - function Flag121 (N : Node_Id) return Boolean is + procedure Set_Field12 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag121; - end Flag121; + Nodes.Table (N + 1).Field12 := Val; + end Set_Field12; - function Flag122 (N : Node_Id) return Boolean is + procedure Set_Field13 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag122; - end Flag122; + Nodes.Table (N + 2).Field6 := Val; + end Set_Field13; - function Flag123 (N : Node_Id) return Boolean is + procedure Set_Field14 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag123; - end Flag123; + Nodes.Table (N + 2).Field7 := Val; + end Set_Field14; - function Flag124 (N : Node_Id) return Boolean is + procedure Set_Field15 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag124; - end Flag124; + Nodes.Table (N + 2).Field8 := Val; + end Set_Field15; - function Flag125 (N : Node_Id) return Boolean is + procedure Set_Field16 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag125; - end Flag125; + Nodes.Table (N + 2).Field9 := Val; + end Set_Field16; - function Flag126 (N : Node_Id) return Boolean is + procedure Set_Field17 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag126; - end Flag126; + Nodes.Table (N + 2).Field10 := Val; + end Set_Field17; - function Flag127 (N : Node_Id) return Boolean is + procedure Set_Field18 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag127; - end Flag127; + Nodes.Table (N + 2).Field11 := Val; + end Set_Field18; - function Flag128 (N : Node_Id) return Boolean is + procedure Set_Field19 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag128; - end Flag128; + Nodes.Table (N + 3).Field6 := Val; + end Set_Field19; - function Flag129 (N : Node_Id) return Boolean is + procedure Set_Field20 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).In_List; - end Flag129; + Nodes.Table (N + 3).Field7 := Val; + end Set_Field20; - function Flag130 (N : Node_Id) return Boolean is + procedure Set_Field21 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Unused_1; - end Flag130; + Nodes.Table (N + 3).Field8 := Val; + end Set_Field21; - function Flag131 (N : Node_Id) return Boolean is + procedure Set_Field22 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Rewrite_Ins; - end Flag131; + Nodes.Table (N + 3).Field9 := Val; + end Set_Field22; - function Flag132 (N : Node_Id) return Boolean is + procedure Set_Field23 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Analyzed; - end Flag132; + Nodes.Table (N + 3).Field10 := Val; + end Set_Field23; - function Flag133 (N : Node_Id) return Boolean is + procedure Set_Field24 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Comes_From_Source; - end Flag133; + Nodes.Table (N + 4).Field6 := Val; + end Set_Field24; - function Flag134 (N : Node_Id) return Boolean is + procedure Set_Field25 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Error_Posted; - end Flag134; + Nodes.Table (N + 4).Field7 := Val; + end Set_Field25; - function Flag135 (N : Node_Id) return Boolean is + procedure Set_Field26 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag4; - end Flag135; + Nodes.Table (N + 4).Field8 := Val; + end Set_Field26; - function Flag136 (N : Node_Id) return Boolean is + procedure Set_Field27 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag5; - end Flag136; + Nodes.Table (N + 4).Field9 := Val; + end Set_Field27; - function Flag137 (N : Node_Id) return Boolean is + procedure Set_Field28 (N : Node_Id; Val : Union_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag6; - end Flag137; + Nodes.Table (N + 4).Field10 := Val; + end Set_Field28; - function Flag138 (N : Node_Id) return Boolean is + procedure Set_Node1 (N : Node_Id; Val : Node_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag7; - end Flag138; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field1 := Union_Id (Val); + end Set_Node1; - function Flag139 (N : Node_Id) return Boolean is + procedure Set_Node2 (N : Node_Id; Val : Node_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag8; - end Flag139; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field2 := Union_Id (Val); + end Set_Node2; - function Flag140 (N : Node_Id) return Boolean is + procedure Set_Node3 (N : Node_Id; Val : Node_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag9; - end Flag140; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field3 := Union_Id (Val); + end Set_Node3; - function Flag141 (N : Node_Id) return Boolean is + procedure Set_Node4 (N : Node_Id; Val : Node_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag10; - end Flag141; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field4 := Union_Id (Val); + end Set_Node4; - function Flag142 (N : Node_Id) return Boolean is + procedure Set_Node5 (N : Node_Id; Val : Node_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag11; - end Flag142; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field5 := Union_Id (Val); + end Set_Node5; - function Flag143 (N : Node_Id) return Boolean is + procedure Set_Node6 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag12; - end Flag143; + Nodes.Table (N + 1).Field6 := Union_Id (Val); + end Set_Node6; - function Flag144 (N : Node_Id) return Boolean is + procedure Set_Node7 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag13; - end Flag144; + Nodes.Table (N + 1).Field7 := Union_Id (Val); + end Set_Node7; - function Flag145 (N : Node_Id) return Boolean is + procedure Set_Node8 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag14; - end Flag145; + Nodes.Table (N + 1).Field8 := Union_Id (Val); + end Set_Node8; - function Flag146 (N : Node_Id) return Boolean is + procedure Set_Node9 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag15; - end Flag146; + Nodes.Table (N + 1).Field9 := Union_Id (Val); + end Set_Node9; - function Flag147 (N : Node_Id) return Boolean is + procedure Set_Node10 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag16; - end Flag147; + Nodes.Table (N + 1).Field10 := Union_Id (Val); + end Set_Node10; - function Flag148 (N : Node_Id) return Boolean is + procedure Set_Node11 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag17; - end Flag148; + Nodes.Table (N + 1).Field11 := Union_Id (Val); + end Set_Node11; - function Flag149 (N : Node_Id) return Boolean is + procedure Set_Node12 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Flag18; - end Flag149; + Nodes.Table (N + 1).Field12 := Union_Id (Val); + end Set_Node12; - function Flag150 (N : Node_Id) return Boolean is + procedure Set_Node13 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Pflag1; - end Flag150; + Nodes.Table (N + 2).Field6 := Union_Id (Val); + end Set_Node13; - function Flag151 (N : Node_Id) return Boolean is + procedure Set_Node14 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return Nodes.Table (N + 3).Pflag2; - end Flag151; + Nodes.Table (N + 2).Field7 := Union_Id (Val); + end Set_Node14; - function Flag152 (N : Node_Id) return Boolean is + procedure Set_Node15 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag152; - end Flag152; + Nodes.Table (N + 2).Field8 := Union_Id (Val); + end Set_Node15; - function Flag153 (N : Node_Id) return Boolean is + procedure Set_Node16 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag153; - end Flag153; + Nodes.Table (N + 2).Field9 := Union_Id (Val); + end Set_Node16; - function Flag154 (N : Node_Id) return Boolean is + procedure Set_Node17 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag154; - end Flag154; + Nodes.Table (N + 2).Field10 := Union_Id (Val); + end Set_Node17; - function Flag155 (N : Node_Id) return Boolean is + procedure Set_Node18 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag155; - end Flag155; + Nodes.Table (N + 2).Field11 := Union_Id (Val); + end Set_Node18; - function Flag156 (N : Node_Id) return Boolean is + procedure Set_Node19 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag156; - end Flag156; + Nodes.Table (N + 3).Field6 := Union_Id (Val); + end Set_Node19; - function Flag157 (N : Node_Id) return Boolean is + procedure Set_Node20 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag157; - end Flag157; + Nodes.Table (N + 3).Field7 := Union_Id (Val); + end Set_Node20; - function Flag158 (N : Node_Id) return Boolean is + procedure Set_Node21 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag158; - end Flag158; + Nodes.Table (N + 3).Field8 := Union_Id (Val); + end Set_Node21; - function Flag159 (N : Node_Id) return Boolean is + procedure Set_Node22 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag159; - end Flag159; + Nodes.Table (N + 3).Field9 := Union_Id (Val); + end Set_Node22; - function Flag160 (N : Node_Id) return Boolean is + procedure Set_Node23 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag160; - end Flag160; + Nodes.Table (N + 3).Field10 := Union_Id (Val); + end Set_Node23; - function Flag161 (N : Node_Id) return Boolean is + procedure Set_Node24 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag161; - end Flag161; + Nodes.Table (N + 4).Field6 := Union_Id (Val); + end Set_Node24; - function Flag162 (N : Node_Id) return Boolean is + procedure Set_Node25 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag162; - end Flag162; + Nodes.Table (N + 4).Field7 := Union_Id (Val); + end Set_Node25; - function Flag163 (N : Node_Id) return Boolean is + procedure Set_Node26 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag163; - end Flag163; + Nodes.Table (N + 4).Field8 := Union_Id (Val); + end Set_Node26; - function Flag164 (N : Node_Id) return Boolean is + procedure Set_Node27 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag164; - end Flag164; + Nodes.Table (N + 4).Field9 := Union_Id (Val); + end Set_Node27; - function Flag165 (N : Node_Id) return Boolean is + procedure Set_Node28 (N : Node_Id; Val : Node_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag165; - end Flag165; + Nodes.Table (N + 4).Field10 := Union_Id (Val); + end Set_Node28; - function Flag166 (N : Node_Id) return Boolean is + procedure Set_List1 (N : Node_Id; Val : List_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag166; - end Flag166; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field1 := Union_Id (Val); + end Set_List1; - function Flag167 (N : Node_Id) return Boolean is + procedure Set_List2 (N : Node_Id; Val : List_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag167; - end Flag167; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field2 := Union_Id (Val); + end Set_List2; - function Flag168 (N : Node_Id) return Boolean is + procedure Set_List3 (N : Node_Id; Val : List_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag168; - end Flag168; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field3 := Union_Id (Val); + end Set_List3; - function Flag169 (N : Node_Id) return Boolean is + procedure Set_List4 (N : Node_Id; Val : List_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag169; - end Flag169; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field4 := Union_Id (Val); + end Set_List4; - function Flag170 (N : Node_Id) return Boolean is + procedure Set_List5 (N : Node_Id; Val : List_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag170; - end Flag170; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field5 := Union_Id (Val); + end Set_List5; - function Flag171 (N : Node_Id) return Boolean is + procedure Set_List10 (N : Node_Id; Val : List_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag171; - end Flag171; + Nodes.Table (N + 1).Field10 := Union_Id (Val); + end Set_List10; - function Flag172 (N : Node_Id) return Boolean is + procedure Set_List14 (N : Node_Id; Val : List_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag172; - end Flag172; + Nodes.Table (N + 2).Field7 := Union_Id (Val); + end Set_List14; - function Flag173 (N : Node_Id) return Boolean is + procedure Set_Elist1 (N : Node_Id; Val : Elist_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag173; - end Flag173; + Nodes.Table (N).Field1 := Union_Id (Val); + end Set_Elist1; - function Flag174 (N : Node_Id) return Boolean is + procedure Set_Elist2 (N : Node_Id; Val : Elist_Id) is + begin + Nodes.Table (N).Field2 := Union_Id (Val); + end Set_Elist2; + + procedure Set_Elist3 (N : Node_Id; Val : Elist_Id) is + begin + Nodes.Table (N).Field3 := Union_Id (Val); + end Set_Elist3; + + procedure Set_Elist4 (N : Node_Id; Val : Elist_Id) is + begin + Nodes.Table (N).Field4 := Union_Id (Val); + end Set_Elist4; + + procedure Set_Elist8 (N : Node_Id; Val : Elist_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag174; - end Flag174; + Nodes.Table (N + 1).Field8 := Union_Id (Val); + end Set_Elist8; - function Flag175 (N : Node_Id) return Boolean is + procedure Set_Elist13 (N : Node_Id; Val : Elist_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag175; - end Flag175; + Nodes.Table (N + 2).Field6 := Union_Id (Val); + end Set_Elist13; - function Flag176 (N : Node_Id) return Boolean is + procedure Set_Elist15 (N : Node_Id; Val : Elist_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag176; - end Flag176; + Nodes.Table (N + 2).Field8 := Union_Id (Val); + end Set_Elist15; - function Flag177 (N : Node_Id) return Boolean is + procedure Set_Elist16 (N : Node_Id; Val : Elist_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag177; - end Flag177; + Nodes.Table (N + 2).Field9 := Union_Id (Val); + end Set_Elist16; - function Flag178 (N : Node_Id) return Boolean is + procedure Set_Elist18 (N : Node_Id; Val : Elist_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag178; - end Flag178; + Nodes.Table (N + 2).Field11 := Union_Id (Val); + end Set_Elist18; - function Flag179 (N : Node_Id) return Boolean is + procedure Set_Elist21 (N : Node_Id; Val : Elist_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag179; - end Flag179; + Nodes.Table (N + 3).Field8 := Union_Id (Val); + end Set_Elist21; - function Flag180 (N : Node_Id) return Boolean is + procedure Set_Elist23 (N : Node_Id; Val : Elist_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag180; - end Flag180; + Nodes.Table (N + 3).Field10 := Union_Id (Val); + end Set_Elist23; - function Flag181 (N : Node_Id) return Boolean is + procedure Set_Elist25 (N : Node_Id; Val : Elist_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag181; - end Flag181; + Nodes.Table (N + 4).Field7 := Union_Id (Val); + end Set_Elist25; - function Flag182 (N : Node_Id) return Boolean is + procedure Set_Elist26 (N : Node_Id; Val : Elist_Id) is begin pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag182; - end Flag182; + Nodes.Table (N + 4).Field8 := Union_Id (Val); + end Set_Elist26; - function Flag183 (N : Node_Id) return Boolean is + procedure Set_Name1 (N : Node_Id; Val : Name_Id) is begin - pragma Assert (Nkind (N) in N_Entity); - return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag183; - end Flag183; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field1 := Union_Id (Val); + end Set_Name1; - procedure Set_Nkind (N : Node_Id; Val : Node_Kind) is + procedure Set_Name2 (N : Node_Id; Val : Name_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Nkind := Val; - end Set_Nkind; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field2 := Union_Id (Val); + end Set_Name2; - procedure Set_Field1 (N : Node_Id; Val : Union_Id) is + procedure Set_Str3 (N : Node_Id; Val : String_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field1 := Val; - end Set_Field1; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field3 := Union_Id (Val); + end Set_Str3; - procedure Set_Field2 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint2 (N : Node_Id; Val : Uint) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field2 := Val; - end Set_Field2; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field2 := To_Union (Val); + end Set_Uint2; - procedure Set_Field3 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint3 (N : Node_Id; Val : Uint) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field3 := Val; - end Set_Field3; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field3 := To_Union (Val); + end Set_Uint3; - procedure Set_Field4 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint4 (N : Node_Id; Val : Uint) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field4 := Val; - end Set_Field4; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field4 := To_Union (Val); + end Set_Uint4; - procedure Set_Field5 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint5 (N : Node_Id; Val : Uint) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field5 := Val; - end Set_Field5; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field5 := To_Union (Val); + end Set_Uint5; - procedure Set_Field6 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint8 (N : Node_Id; Val : Uint) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field6 := Val; - end Set_Field6; + Nodes.Table (N + 1).Field8 := To_Union (Val); + end Set_Uint8; - procedure Set_Field7 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint9 (N : Node_Id; Val : Uint) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field7 := Val; - end Set_Field7; + Nodes.Table (N + 1).Field9 := To_Union (Val); + end Set_Uint9; - procedure Set_Field8 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint10 (N : Node_Id; Val : Uint) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field8 := Val; - end Set_Field8; + Nodes.Table (N + 1).Field10 := To_Union (Val); + end Set_Uint10; - procedure Set_Field9 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint11 (N : Node_Id; Val : Uint) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field9 := Val; - end Set_Field9; + Nodes.Table (N + 1).Field11 := To_Union (Val); + end Set_Uint11; - procedure Set_Field10 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint12 (N : Node_Id; Val : Uint) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field10 := Val; - end Set_Field10; + Nodes.Table (N + 1).Field12 := To_Union (Val); + end Set_Uint12; - procedure Set_Field11 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint13 (N : Node_Id; Val : Uint) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field11 := Val; - end Set_Field11; + Nodes.Table (N + 2).Field6 := To_Union (Val); + end Set_Uint13; - procedure Set_Field12 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint14 (N : Node_Id; Val : Uint) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field12 := Val; - end Set_Field12; + Nodes.Table (N + 2).Field7 := To_Union (Val); + end Set_Uint14; - procedure Set_Field13 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint15 (N : Node_Id; Val : Uint) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field6 := Val; - end Set_Field13; + Nodes.Table (N + 2).Field8 := To_Union (Val); + end Set_Uint15; - procedure Set_Field14 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint16 (N : Node_Id; Val : Uint) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field7 := Val; - end Set_Field14; + Nodes.Table (N + 2).Field9 := To_Union (Val); + end Set_Uint16; - procedure Set_Field15 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint17 (N : Node_Id; Val : Uint) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field8 := Val; - end Set_Field15; + Nodes.Table (N + 2).Field10 := To_Union (Val); + end Set_Uint17; - procedure Set_Field16 (N : Node_Id; Val : Union_Id) is + procedure Set_Uint22 (N : Node_Id; Val : Uint) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field9 := Val; - end Set_Field16; + Nodes.Table (N + 3).Field9 := To_Union (Val); + end Set_Uint22; - procedure Set_Field17 (N : Node_Id; Val : Union_Id) is + procedure Set_Ureal3 (N : Node_Id; Val : Ureal) is begin - pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field10 := Val; - end Set_Field17; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Field3 := To_Union (Val); + end Set_Ureal3; - procedure Set_Field18 (N : Node_Id; Val : Union_Id) is + procedure Set_Ureal18 (N : Node_Id; Val : Ureal) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field11 := Val; - end Set_Field18; + Nodes.Table (N + 2).Field11 := To_Union (Val); + end Set_Ureal18; - procedure Set_Field19 (N : Node_Id; Val : Union_Id) is + procedure Set_Ureal21 (N : Node_Id; Val : Ureal) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field6 := Val; - end Set_Field19; + Nodes.Table (N + 3).Field8 := To_Union (Val); + end Set_Ureal21; - procedure Set_Field20 (N : Node_Id; Val : Union_Id) is + procedure Set_Flag4 (N : Node_Id; Val : Boolean) is begin - pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field7 := Val; - end Set_Field20; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag4 := Val; + end Set_Flag4; - procedure Set_Field21 (N : Node_Id; Val : Union_Id) is + procedure Set_Flag5 (N : Node_Id; Val : Boolean) is begin - pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field8 := Val; - end Set_Field21; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag5 := Val; + end Set_Flag5; - procedure Set_Field22 (N : Node_Id; Val : Union_Id) is + procedure Set_Flag6 (N : Node_Id; Val : Boolean) is begin - pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field9 := Val; - end Set_Field22; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag6 := Val; + end Set_Flag6; - procedure Set_Field23 (N : Node_Id; Val : Union_Id) is + procedure Set_Flag7 (N : Node_Id; Val : Boolean) is begin - pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field10 := Val; - end Set_Field23; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag7 := Val; + end Set_Flag7; - procedure Set_Node1 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag8 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field1 := Union_Id (Val); - end Set_Node1; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag8 := Val; + end Set_Flag8; - procedure Set_Node2 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag9 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field2 := Union_Id (Val); - end Set_Node2; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag9 := Val; + end Set_Flag9; - procedure Set_Node3 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag10 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field3 := Union_Id (Val); - end Set_Node3; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag10 := Val; + end Set_Flag10; - procedure Set_Node4 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag11 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field4 := Union_Id (Val); - end Set_Node4; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag11 := Val; + end Set_Flag11; - procedure Set_Node5 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag12 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field5 := Union_Id (Val); - end Set_Node5; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag12 := Val; + end Set_Flag12; - procedure Set_Node6 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag13 (N : Node_Id; Val : Boolean) is begin - pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field6 := Union_Id (Val); - end Set_Node6; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag13 := Val; + end Set_Flag13; - procedure Set_Node7 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag14 (N : Node_Id; Val : Boolean) is begin - pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field7 := Union_Id (Val); - end Set_Node7; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag14 := Val; + end Set_Flag14; - procedure Set_Node8 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag15 (N : Node_Id; Val : Boolean) is begin - pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field8 := Union_Id (Val); - end Set_Node8; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag15 := Val; + end Set_Flag15; - procedure Set_Node9 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag16 (N : Node_Id; Val : Boolean) is begin - pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field9 := Union_Id (Val); - end Set_Node9; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag16 := Val; + end Set_Flag16; - procedure Set_Node10 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag17 (N : Node_Id; Val : Boolean) is begin - pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field10 := Union_Id (Val); - end Set_Node10; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag17 := Val; + end Set_Flag17; - procedure Set_Node11 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag18 (N : Node_Id; Val : Boolean) is begin - pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field11 := Union_Id (Val); - end Set_Node11; + pragma Assert (N <= Nodes.Last); + Nodes.Table (N).Flag18 := Val; + end Set_Flag18; - procedure Set_Node12 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag19 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field12 := Union_Id (Val); - end Set_Node12; + Nodes.Table (N + 1).In_List := Val; + end Set_Flag19; - procedure Set_Node13 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag20 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field6 := Union_Id (Val); - end Set_Node13; + Nodes.Table (N + 1).Unused_1 := Val; + end Set_Flag20; - procedure Set_Node14 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag21 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field7 := Union_Id (Val); - end Set_Node14; + Nodes.Table (N + 1).Rewrite_Ins := Val; + end Set_Flag21; - procedure Set_Node15 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag22 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field8 := Union_Id (Val); - end Set_Node15; + Nodes.Table (N + 1).Analyzed := Val; + end Set_Flag22; - procedure Set_Node16 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag23 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field9 := Union_Id (Val); - end Set_Node16; + Nodes.Table (N + 1).Comes_From_Source := Val; + end Set_Flag23; - procedure Set_Node17 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag24 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field10 := Union_Id (Val); - end Set_Node17; + Nodes.Table (N + 1).Error_Posted := Val; + end Set_Flag24; - procedure Set_Node18 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag25 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field11 := Union_Id (Val); - end Set_Node18; + Nodes.Table (N + 1).Flag4 := Val; + end Set_Flag25; - procedure Set_Node19 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag26 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field6 := Union_Id (Val); - end Set_Node19; + Nodes.Table (N + 1).Flag5 := Val; + end Set_Flag26; - procedure Set_Node20 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag27 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field7 := Union_Id (Val); - end Set_Node20; + Nodes.Table (N + 1).Flag6 := Val; + end Set_Flag27; - procedure Set_Node21 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag28 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field8 := Union_Id (Val); - end Set_Node21; + Nodes.Table (N + 1).Flag7 := Val; + end Set_Flag28; - procedure Set_Node22 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag29 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field9 := Union_Id (Val); - end Set_Node22; + Nodes.Table (N + 1).Flag8 := Val; + end Set_Flag29; - procedure Set_Node23 (N : Node_Id; Val : Node_Id) is + procedure Set_Flag30 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field10 := Union_Id (Val); - end Set_Node23; - - procedure Set_List1 (N : Node_Id; Val : List_Id) is - begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field1 := Union_Id (Val); - end Set_List1; + Nodes.Table (N + 1).Flag9 := Val; + end Set_Flag30; - procedure Set_List2 (N : Node_Id; Val : List_Id) is + procedure Set_Flag31 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field2 := Union_Id (Val); - end Set_List2; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 1).Flag10 := Val; + end Set_Flag31; - procedure Set_List3 (N : Node_Id; Val : List_Id) is + procedure Set_Flag32 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field3 := Union_Id (Val); - end Set_List3; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 1).Flag11 := Val; + end Set_Flag32; - procedure Set_List4 (N : Node_Id; Val : List_Id) is + procedure Set_Flag33 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field4 := Union_Id (Val); - end Set_List4; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 1).Flag12 := Val; + end Set_Flag33; - procedure Set_List5 (N : Node_Id; Val : List_Id) is + procedure Set_Flag34 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field5 := Union_Id (Val); - end Set_List5; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 1).Flag13 := Val; + end Set_Flag34; - procedure Set_List10 (N : Node_Id; Val : List_Id) is + procedure Set_Flag35 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field10 := Union_Id (Val); - end Set_List10; + Nodes.Table (N + 1).Flag14 := Val; + end Set_Flag35; - procedure Set_List14 (N : Node_Id; Val : List_Id) is + procedure Set_Flag36 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field7 := Union_Id (Val); - end Set_List14; + Nodes.Table (N + 1).Flag15 := Val; + end Set_Flag36; - procedure Set_Elist2 (N : Node_Id; Val : Elist_Id) is + procedure Set_Flag37 (N : Node_Id; Val : Boolean) is begin - Nodes.Table (N).Field2 := Union_Id (Val); - end Set_Elist2; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 1).Flag16 := Val; + end Set_Flag37; - procedure Set_Elist3 (N : Node_Id; Val : Elist_Id) is + procedure Set_Flag38 (N : Node_Id; Val : Boolean) is begin - Nodes.Table (N).Field3 := Union_Id (Val); - end Set_Elist3; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 1).Flag17 := Val; + end Set_Flag38; - procedure Set_Elist4 (N : Node_Id; Val : Elist_Id) is + procedure Set_Flag39 (N : Node_Id; Val : Boolean) is begin - Nodes.Table (N).Field4 := Union_Id (Val); - end Set_Elist4; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 1).Flag18 := Val; + end Set_Flag39; - procedure Set_Elist8 (N : Node_Id; Val : Elist_Id) is + procedure Set_Flag40 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field8 := Union_Id (Val); - end Set_Elist8; + Nodes.Table (N + 2).In_List := Val; + end Set_Flag40; - procedure Set_Elist13 (N : Node_Id; Val : Elist_Id) is + procedure Set_Flag41 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field6 := Union_Id (Val); - end Set_Elist13; + Nodes.Table (N + 2).Unused_1 := Val; + end Set_Flag41; - procedure Set_Elist15 (N : Node_Id; Val : Elist_Id) is + procedure Set_Flag42 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field8 := Union_Id (Val); - end Set_Elist15; + Nodes.Table (N + 2).Rewrite_Ins := Val; + end Set_Flag42; - procedure Set_Elist16 (N : Node_Id; Val : Elist_Id) is + procedure Set_Flag43 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field9 := Union_Id (Val); - end Set_Elist16; + Nodes.Table (N + 2).Analyzed := Val; + end Set_Flag43; - procedure Set_Elist18 (N : Node_Id; Val : Elist_Id) is + procedure Set_Flag44 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field11 := Union_Id (Val); - end Set_Elist18; + Nodes.Table (N + 2).Comes_From_Source := Val; + end Set_Flag44; - procedure Set_Elist21 (N : Node_Id; Val : Elist_Id) is + procedure Set_Flag45 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field8 := Union_Id (Val); - end Set_Elist21; + Nodes.Table (N + 2).Error_Posted := Val; + end Set_Flag45; - procedure Set_Elist23 (N : Node_Id; Val : Elist_Id) is + procedure Set_Flag46 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field10 := Union_Id (Val); - end Set_Elist23; + Nodes.Table (N + 2).Flag4 := Val; + end Set_Flag46; - procedure Set_Name1 (N : Node_Id; Val : Name_Id) is + procedure Set_Flag47 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field1 := Union_Id (Val); - end Set_Name1; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 2).Flag5 := Val; + end Set_Flag47; - procedure Set_Name2 (N : Node_Id; Val : Name_Id) is + procedure Set_Flag48 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field2 := Union_Id (Val); - end Set_Name2; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 2).Flag6 := Val; + end Set_Flag48; - procedure Set_Str3 (N : Node_Id; Val : String_Id) is + procedure Set_Flag49 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field3 := Union_Id (Val); - end Set_Str3; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 2).Flag7 := Val; + end Set_Flag49; - procedure Set_Uint3 (N : Node_Id; Val : Uint) is + procedure Set_Flag50 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field3 := To_Union (Val); - end Set_Uint3; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 2).Flag8 := Val; + end Set_Flag50; - procedure Set_Uint4 (N : Node_Id; Val : Uint) is + procedure Set_Flag51 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field4 := To_Union (Val); - end Set_Uint4; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 2).Flag9 := Val; + end Set_Flag51; - procedure Set_Uint5 (N : Node_Id; Val : Uint) is + procedure Set_Flag52 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field5 := To_Union (Val); - end Set_Uint5; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 2).Flag10 := Val; + end Set_Flag52; - procedure Set_Uint8 (N : Node_Id; Val : Uint) is + procedure Set_Flag53 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field8 := To_Union (Val); - end Set_Uint8; + Nodes.Table (N + 2).Flag11 := Val; + end Set_Flag53; - procedure Set_Uint9 (N : Node_Id; Val : Uint) is + procedure Set_Flag54 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field9 := To_Union (Val); - end Set_Uint9; + Nodes.Table (N + 2).Flag12 := Val; + end Set_Flag54; - procedure Set_Uint10 (N : Node_Id; Val : Uint) is + procedure Set_Flag55 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field10 := To_Union (Val); - end Set_Uint10; + Nodes.Table (N + 2).Flag13 := Val; + end Set_Flag55; - procedure Set_Uint11 (N : Node_Id; Val : Uint) is + procedure Set_Flag56 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field11 := To_Union (Val); - end Set_Uint11; + Nodes.Table (N + 2).Flag14 := Val; + end Set_Flag56; - procedure Set_Uint12 (N : Node_Id; Val : Uint) is + procedure Set_Flag57 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Field12 := To_Union (Val); - end Set_Uint12; + Nodes.Table (N + 2).Flag15 := Val; + end Set_Flag57; - procedure Set_Uint13 (N : Node_Id; Val : Uint) is + procedure Set_Flag58 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field6 := To_Union (Val); - end Set_Uint13; + Nodes.Table (N + 2).Flag16 := Val; + end Set_Flag58; - procedure Set_Uint14 (N : Node_Id; Val : Uint) is + procedure Set_Flag59 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field7 := To_Union (Val); - end Set_Uint14; + Nodes.Table (N + 2).Flag17 := Val; + end Set_Flag59; - procedure Set_Uint15 (N : Node_Id; Val : Uint) is + procedure Set_Flag60 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field8 := To_Union (Val); - end Set_Uint15; + Nodes.Table (N + 2).Flag18 := Val; + end Set_Flag60; - procedure Set_Uint16 (N : Node_Id; Val : Uint) is + procedure Set_Flag61 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field9 := To_Union (Val); - end Set_Uint16; + Nodes.Table (N + 1).Pflag1 := Val; + end Set_Flag61; - procedure Set_Uint17 (N : Node_Id; Val : Uint) is + procedure Set_Flag62 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field10 := To_Union (Val); - end Set_Uint17; + Nodes.Table (N + 1).Pflag2 := Val; + end Set_Flag62; - procedure Set_Uint22 (N : Node_Id; Val : Uint) is + procedure Set_Flag63 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field9 := To_Union (Val); - end Set_Uint22; + Nodes.Table (N + 2).Pflag1 := Val; + end Set_Flag63; - procedure Set_Ureal3 (N : Node_Id; Val : Ureal) is + procedure Set_Flag64 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field3 := To_Union (Val); - end Set_Ureal3; + pragma Assert (Nkind (N) in N_Entity); + Nodes.Table (N + 2).Pflag2 := Val; + end Set_Flag64; - procedure Set_Ureal18 (N : Node_Id; Val : Ureal) is + procedure Set_Flag65 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Field11 := To_Union (Val); - end Set_Ureal18; + To_Flag_Byte_Ptr + (Node_Kind_Ptr' + (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag65 := Val; + end Set_Flag65; - procedure Set_Ureal21 (N : Node_Id; Val : Ureal) is + procedure Set_Flag66 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Field8 := To_Union (Val); - end Set_Ureal21; + To_Flag_Byte_Ptr + (Node_Kind_Ptr' + (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag66 := Val; + end Set_Flag66; - procedure Set_Char_Code2 (N : Node_Id; Val : Char_Code) is + procedure Set_Flag67 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Field2 := Union_Id (Val) + Char_Code_Bias; - end Set_Char_Code2; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Byte_Ptr + (Node_Kind_Ptr' + (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag67 := Val; + end Set_Flag67; - procedure Set_Flag4 (N : Node_Id; Val : Boolean) is + procedure Set_Flag68 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag4 := Val; - end Set_Flag4; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Byte_Ptr + (Node_Kind_Ptr' + (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag68 := Val; + end Set_Flag68; - procedure Set_Flag5 (N : Node_Id; Val : Boolean) is + procedure Set_Flag69 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag5 := Val; - end Set_Flag5; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Byte_Ptr + (Node_Kind_Ptr' + (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag69 := Val; + end Set_Flag69; - procedure Set_Flag6 (N : Node_Id; Val : Boolean) is + procedure Set_Flag70 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag6 := Val; - end Set_Flag6; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Byte_Ptr + (Node_Kind_Ptr' + (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag70 := Val; + end Set_Flag70; - procedure Set_Flag7 (N : Node_Id; Val : Boolean) is + procedure Set_Flag71 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag7 := Val; - end Set_Flag7; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Byte_Ptr + (Node_Kind_Ptr' + (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag71 := Val; + end Set_Flag71; - procedure Set_Flag8 (N : Node_Id; Val : Boolean) is + procedure Set_Flag72 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag8 := Val; - end Set_Flag8; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Byte_Ptr + (Node_Kind_Ptr' + (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag72 := Val; + end Set_Flag72; - procedure Set_Flag9 (N : Node_Id; Val : Boolean) is + procedure Set_Flag73 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag9 := Val; - end Set_Flag9; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag73 := Val; + end Set_Flag73; - procedure Set_Flag10 (N : Node_Id; Val : Boolean) is + procedure Set_Flag74 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag10 := Val; - end Set_Flag10; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag74 := Val; + end Set_Flag74; - procedure Set_Flag11 (N : Node_Id; Val : Boolean) is + procedure Set_Flag75 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag11 := Val; - end Set_Flag11; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag75 := Val; + end Set_Flag75; - procedure Set_Flag12 (N : Node_Id; Val : Boolean) is + procedure Set_Flag76 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag12 := Val; - end Set_Flag12; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag76 := Val; + end Set_Flag76; - procedure Set_Flag13 (N : Node_Id; Val : Boolean) is + procedure Set_Flag77 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag13 := Val; - end Set_Flag13; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag77 := Val; + end Set_Flag77; - procedure Set_Flag14 (N : Node_Id; Val : Boolean) is + procedure Set_Flag78 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag14 := Val; - end Set_Flag14; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag78 := Val; + end Set_Flag78; - procedure Set_Flag15 (N : Node_Id; Val : Boolean) is + procedure Set_Flag79 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag15 := Val; - end Set_Flag15; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag79 := Val; + end Set_Flag79; - procedure Set_Flag16 (N : Node_Id; Val : Boolean) is + procedure Set_Flag80 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag16 := Val; - end Set_Flag16; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag80 := Val; + end Set_Flag80; - procedure Set_Flag17 (N : Node_Id; Val : Boolean) is + procedure Set_Flag81 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag17 := Val; - end Set_Flag17; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag81 := Val; + end Set_Flag81; - procedure Set_Flag18 (N : Node_Id; Val : Boolean) is + procedure Set_Flag82 (N : Node_Id; Val : Boolean) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - Nodes.Table (N).Flag18 := Val; - end Set_Flag18; + pragma Assert (Nkind (N) in N_Entity); + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag82 := Val; + end Set_Flag82; - procedure Set_Flag19 (N : Node_Id; Val : Boolean) is + procedure Set_Flag83 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).In_List := Val; - end Set_Flag19; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag83 := Val; + end Set_Flag83; - procedure Set_Flag20 (N : Node_Id; Val : Boolean) is + procedure Set_Flag84 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Unused_1 := Val; - end Set_Flag20; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag84 := Val; + end Set_Flag84; - procedure Set_Flag21 (N : Node_Id; Val : Boolean) is + procedure Set_Flag85 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Rewrite_Ins := Val; - end Set_Flag21; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag85 := Val; + end Set_Flag85; - procedure Set_Flag22 (N : Node_Id; Val : Boolean) is + procedure Set_Flag86 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Analyzed := Val; - end Set_Flag22; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag86 := Val; + end Set_Flag86; - procedure Set_Flag23 (N : Node_Id; Val : Boolean) is + procedure Set_Flag87 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Comes_From_Source := Val; - end Set_Flag23; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag87 := Val; + end Set_Flag87; - procedure Set_Flag24 (N : Node_Id; Val : Boolean) is + procedure Set_Flag88 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Error_Posted := Val; - end Set_Flag24; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag88 := Val; + end Set_Flag88; - procedure Set_Flag25 (N : Node_Id; Val : Boolean) is + procedure Set_Flag89 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag4 := Val; - end Set_Flag25; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag89 := Val; + end Set_Flag89; - procedure Set_Flag26 (N : Node_Id; Val : Boolean) is + procedure Set_Flag90 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag5 := Val; - end Set_Flag26; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag90 := Val; + end Set_Flag90; - procedure Set_Flag27 (N : Node_Id; Val : Boolean) is + procedure Set_Flag91 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag6 := Val; - end Set_Flag27; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag91 := Val; + end Set_Flag91; - procedure Set_Flag28 (N : Node_Id; Val : Boolean) is + procedure Set_Flag92 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag7 := Val; - end Set_Flag28; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag92 := Val; + end Set_Flag92; - procedure Set_Flag29 (N : Node_Id; Val : Boolean) is + procedure Set_Flag93 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag8 := Val; - end Set_Flag29; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag93 := Val; + end Set_Flag93; - procedure Set_Flag30 (N : Node_Id; Val : Boolean) is + procedure Set_Flag94 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag9 := Val; - end Set_Flag30; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag94 := Val; + end Set_Flag94; - procedure Set_Flag31 (N : Node_Id; Val : Boolean) is + procedure Set_Flag95 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag10 := Val; - end Set_Flag31; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag95 := Val; + end Set_Flag95; - procedure Set_Flag32 (N : Node_Id; Val : Boolean) is + procedure Set_Flag96 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag11 := Val; - end Set_Flag32; + To_Flag_Word_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag96 := Val; + end Set_Flag96; - procedure Set_Flag33 (N : Node_Id; Val : Boolean) is + procedure Set_Flag97 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag12 := Val; - end Set_Flag33; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag97 := Val; + end Set_Flag97; - procedure Set_Flag34 (N : Node_Id; Val : Boolean) is + procedure Set_Flag98 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag13 := Val; - end Set_Flag34; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag98 := Val; + end Set_Flag98; - procedure Set_Flag35 (N : Node_Id; Val : Boolean) is + procedure Set_Flag99 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag14 := Val; - end Set_Flag35; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag99 := Val; + end Set_Flag99; - procedure Set_Flag36 (N : Node_Id; Val : Boolean) is + procedure Set_Flag100 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag15 := Val; - end Set_Flag36; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag100 := Val; + end Set_Flag100; - procedure Set_Flag37 (N : Node_Id; Val : Boolean) is + procedure Set_Flag101 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag16 := Val; - end Set_Flag37; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag101 := Val; + end Set_Flag101; - procedure Set_Flag38 (N : Node_Id; Val : Boolean) is + procedure Set_Flag102 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag17 := Val; - end Set_Flag38; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag102 := Val; + end Set_Flag102; - procedure Set_Flag39 (N : Node_Id; Val : Boolean) is + procedure Set_Flag103 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Flag18 := Val; - end Set_Flag39; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag103 := Val; + end Set_Flag103; - procedure Set_Flag40 (N : Node_Id; Val : Boolean) is + procedure Set_Flag104 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).In_List := Val; - end Set_Flag40; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag104 := Val; + end Set_Flag104; - procedure Set_Flag41 (N : Node_Id; Val : Boolean) is + procedure Set_Flag105 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Unused_1 := Val; - end Set_Flag41; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag105 := Val; + end Set_Flag105; - procedure Set_Flag42 (N : Node_Id; Val : Boolean) is + procedure Set_Flag106 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Rewrite_Ins := Val; - end Set_Flag42; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag106 := Val; + end Set_Flag106; - procedure Set_Flag43 (N : Node_Id; Val : Boolean) is + procedure Set_Flag107 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Analyzed := Val; - end Set_Flag43; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag107 := Val; + end Set_Flag107; - procedure Set_Flag44 (N : Node_Id; Val : Boolean) is + procedure Set_Flag108 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Comes_From_Source := Val; - end Set_Flag44; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag108 := Val; + end Set_Flag108; - procedure Set_Flag45 (N : Node_Id; Val : Boolean) is + procedure Set_Flag109 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Error_Posted := Val; - end Set_Flag45; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag109 := Val; + end Set_Flag109; - procedure Set_Flag46 (N : Node_Id; Val : Boolean) is + procedure Set_Flag110 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag4 := Val; - end Set_Flag46; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag110 := Val; + end Set_Flag110; - procedure Set_Flag47 (N : Node_Id; Val : Boolean) is + procedure Set_Flag111 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag5 := Val; - end Set_Flag47; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag111 := Val; + end Set_Flag111; - procedure Set_Flag48 (N : Node_Id; Val : Boolean) is + procedure Set_Flag112 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag6 := Val; - end Set_Flag48; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag112 := Val; + end Set_Flag112; - procedure Set_Flag49 (N : Node_Id; Val : Boolean) is + procedure Set_Flag113 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag7 := Val; - end Set_Flag49; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag113 := Val; + end Set_Flag113; - procedure Set_Flag50 (N : Node_Id; Val : Boolean) is + procedure Set_Flag114 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag8 := Val; - end Set_Flag50; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag114 := Val; + end Set_Flag114; - procedure Set_Flag51 (N : Node_Id; Val : Boolean) is + procedure Set_Flag115 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag9 := Val; - end Set_Flag51; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag115 := Val; + end Set_Flag115; - procedure Set_Flag52 (N : Node_Id; Val : Boolean) is + procedure Set_Flag116 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag10 := Val; - end Set_Flag52; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag116 := Val; + end Set_Flag116; - procedure Set_Flag53 (N : Node_Id; Val : Boolean) is + procedure Set_Flag117 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag11 := Val; - end Set_Flag53; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag117 := Val; + end Set_Flag117; - procedure Set_Flag54 (N : Node_Id; Val : Boolean) is + procedure Set_Flag118 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag12 := Val; - end Set_Flag54; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag118 := Val; + end Set_Flag118; - procedure Set_Flag55 (N : Node_Id; Val : Boolean) is + procedure Set_Flag119 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag13 := Val; - end Set_Flag55; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag119 := Val; + end Set_Flag119; - procedure Set_Flag56 (N : Node_Id; Val : Boolean) is + procedure Set_Flag120 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag14 := Val; - end Set_Flag56; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag120 := Val; + end Set_Flag120; - procedure Set_Flag57 (N : Node_Id; Val : Boolean) is + procedure Set_Flag121 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag15 := Val; - end Set_Flag57; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag121 := Val; + end Set_Flag121; - procedure Set_Flag58 (N : Node_Id; Val : Boolean) is + procedure Set_Flag122 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag16 := Val; - end Set_Flag58; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag122 := Val; + end Set_Flag122; - procedure Set_Flag59 (N : Node_Id; Val : Boolean) is + procedure Set_Flag123 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag17 := Val; - end Set_Flag59; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag123 := Val; + end Set_Flag123; - procedure Set_Flag60 (N : Node_Id; Val : Boolean) is + procedure Set_Flag124 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Flag18 := Val; - end Set_Flag60; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag124 := Val; + end Set_Flag124; - procedure Set_Flag61 (N : Node_Id; Val : Boolean) is + procedure Set_Flag125 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Pflag1 := Val; - end Set_Flag61; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag125 := Val; + end Set_Flag125; - procedure Set_Flag62 (N : Node_Id; Val : Boolean) is + procedure Set_Flag126 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 1).Pflag2 := Val; - end Set_Flag62; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag126 := Val; + end Set_Flag126; - procedure Set_Flag63 (N : Node_Id; Val : Boolean) is + procedure Set_Flag127 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Pflag1 := Val; - end Set_Flag63; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag127 := Val; + end Set_Flag127; - procedure Set_Flag64 (N : Node_Id; Val : Boolean) is + procedure Set_Flag128 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 2).Pflag2 := Val; - end Set_Flag64; + To_Flag_Word2_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag128 := Val; + end Set_Flag128; - procedure Set_Flag65 (N : Node_Id; Val : Boolean) is + procedure Set_Flag129 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Byte_Ptr - (Node_Kind_Ptr' - (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag65 := Val; - end Set_Flag65; + Nodes.Table (N + 3).In_List := Val; + end Set_Flag129; - procedure Set_Flag66 (N : Node_Id; Val : Boolean) is + procedure Set_Flag130 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Byte_Ptr - (Node_Kind_Ptr' - (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag66 := Val; - end Set_Flag66; + Nodes.Table (N + 3).Unused_1 := Val; + end Set_Flag130; - procedure Set_Flag67 (N : Node_Id; Val : Boolean) is + procedure Set_Flag131 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Byte_Ptr - (Node_Kind_Ptr' - (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag67 := Val; - end Set_Flag67; + Nodes.Table (N + 3).Rewrite_Ins := Val; + end Set_Flag131; - procedure Set_Flag68 (N : Node_Id; Val : Boolean) is + procedure Set_Flag132 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Byte_Ptr - (Node_Kind_Ptr' - (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag68 := Val; - end Set_Flag68; + Nodes.Table (N + 3).Analyzed := Val; + end Set_Flag132; - procedure Set_Flag69 (N : Node_Id; Val : Boolean) is + procedure Set_Flag133 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Byte_Ptr - (Node_Kind_Ptr' - (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag69 := Val; - end Set_Flag69; + Nodes.Table (N + 3).Comes_From_Source := Val; + end Set_Flag133; - procedure Set_Flag70 (N : Node_Id; Val : Boolean) is + procedure Set_Flag134 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Byte_Ptr - (Node_Kind_Ptr' - (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag70 := Val; - end Set_Flag70; + Nodes.Table (N + 3).Error_Posted := Val; + end Set_Flag134; - procedure Set_Flag71 (N : Node_Id; Val : Boolean) is + procedure Set_Flag135 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Byte_Ptr - (Node_Kind_Ptr' - (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag71 := Val; - end Set_Flag71; + Nodes.Table (N + 3).Flag4 := Val; + end Set_Flag135; - procedure Set_Flag72 (N : Node_Id; Val : Boolean) is + procedure Set_Flag136 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Byte_Ptr - (Node_Kind_Ptr' - (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag72 := Val; - end Set_Flag72; + Nodes.Table (N + 3).Flag5 := Val; + end Set_Flag136; - procedure Set_Flag73 (N : Node_Id; Val : Boolean) is + procedure Set_Flag137 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag73 := Val; - end Set_Flag73; + Nodes.Table (N + 3).Flag6 := Val; + end Set_Flag137; - procedure Set_Flag74 (N : Node_Id; Val : Boolean) is + procedure Set_Flag138 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag74 := Val; - end Set_Flag74; + Nodes.Table (N + 3).Flag7 := Val; + end Set_Flag138; - procedure Set_Flag75 (N : Node_Id; Val : Boolean) is + procedure Set_Flag139 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag75 := Val; - end Set_Flag75; + Nodes.Table (N + 3).Flag8 := Val; + end Set_Flag139; - procedure Set_Flag76 (N : Node_Id; Val : Boolean) is + procedure Set_Flag140 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag76 := Val; - end Set_Flag76; + Nodes.Table (N + 3).Flag9 := Val; + end Set_Flag140; - procedure Set_Flag77 (N : Node_Id; Val : Boolean) is + procedure Set_Flag141 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag77 := Val; - end Set_Flag77; + Nodes.Table (N + 3).Flag10 := Val; + end Set_Flag141; - procedure Set_Flag78 (N : Node_Id; Val : Boolean) is + procedure Set_Flag142 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag78 := Val; - end Set_Flag78; + Nodes.Table (N + 3).Flag11 := Val; + end Set_Flag142; - procedure Set_Flag79 (N : Node_Id; Val : Boolean) is + procedure Set_Flag143 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag79 := Val; - end Set_Flag79; + Nodes.Table (N + 3).Flag12 := Val; + end Set_Flag143; - procedure Set_Flag80 (N : Node_Id; Val : Boolean) is + procedure Set_Flag144 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag80 := Val; - end Set_Flag80; + Nodes.Table (N + 3).Flag13 := Val; + end Set_Flag144; - procedure Set_Flag81 (N : Node_Id; Val : Boolean) is + procedure Set_Flag145 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag81 := Val; - end Set_Flag81; + Nodes.Table (N + 3).Flag14 := Val; + end Set_Flag145; - procedure Set_Flag82 (N : Node_Id; Val : Boolean) is + procedure Set_Flag146 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag82 := Val; - end Set_Flag82; + Nodes.Table (N + 3).Flag15 := Val; + end Set_Flag146; - procedure Set_Flag83 (N : Node_Id; Val : Boolean) is + procedure Set_Flag147 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag83 := Val; - end Set_Flag83; + Nodes.Table (N + 3).Flag16 := Val; + end Set_Flag147; - procedure Set_Flag84 (N : Node_Id; Val : Boolean) is + procedure Set_Flag148 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag84 := Val; - end Set_Flag84; + Nodes.Table (N + 3).Flag17 := Val; + end Set_Flag148; - procedure Set_Flag85 (N : Node_Id; Val : Boolean) is + procedure Set_Flag149 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag85 := Val; - end Set_Flag85; + Nodes.Table (N + 3).Flag18 := Val; + end Set_Flag149; - procedure Set_Flag86 (N : Node_Id; Val : Boolean) is + procedure Set_Flag150 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag86 := Val; - end Set_Flag86; + Nodes.Table (N + 3).Pflag1 := Val; + end Set_Flag150; - procedure Set_Flag87 (N : Node_Id; Val : Boolean) is + procedure Set_Flag151 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr - (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag87 := Val; - end Set_Flag87; + Nodes.Table (N + 3).Pflag2 := Val; + end Set_Flag151; - procedure Set_Flag88 (N : Node_Id; Val : Boolean) is + procedure Set_Flag152 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag88 := Val; - end Set_Flag88; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag152 := Val; + end Set_Flag152; - procedure Set_Flag89 (N : Node_Id; Val : Boolean) is + procedure Set_Flag153 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag89 := Val; - end Set_Flag89; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag153 := Val; + end Set_Flag153; - procedure Set_Flag90 (N : Node_Id; Val : Boolean) is + procedure Set_Flag154 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag90 := Val; - end Set_Flag90; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag154 := Val; + end Set_Flag154; - procedure Set_Flag91 (N : Node_Id; Val : Boolean) is + procedure Set_Flag155 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag91 := Val; - end Set_Flag91; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag155 := Val; + end Set_Flag155; - procedure Set_Flag92 (N : Node_Id; Val : Boolean) is + procedure Set_Flag156 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag92 := Val; - end Set_Flag92; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag156 := Val; + end Set_Flag156; - procedure Set_Flag93 (N : Node_Id; Val : Boolean) is + procedure Set_Flag157 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag93 := Val; - end Set_Flag93; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag157 := Val; + end Set_Flag157; - procedure Set_Flag94 (N : Node_Id; Val : Boolean) is + procedure Set_Flag158 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag94 := Val; - end Set_Flag94; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag158 := Val; + end Set_Flag158; - procedure Set_Flag95 (N : Node_Id; Val : Boolean) is + procedure Set_Flag159 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag95 := Val; - end Set_Flag95; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag159 := Val; + end Set_Flag159; - procedure Set_Flag96 (N : Node_Id; Val : Boolean) is + procedure Set_Flag160 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag96 := Val; - end Set_Flag96; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag160 := Val; + end Set_Flag160; - procedure Set_Flag97 (N : Node_Id; Val : Boolean) is + procedure Set_Flag161 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag97 := Val; - end Set_Flag97; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag161 := Val; + end Set_Flag161; - procedure Set_Flag98 (N : Node_Id; Val : Boolean) is + procedure Set_Flag162 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag98 := Val; - end Set_Flag98; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag162 := Val; + end Set_Flag162; - procedure Set_Flag99 (N : Node_Id; Val : Boolean) is + procedure Set_Flag163 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag99 := Val; - end Set_Flag99; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag163 := Val; + end Set_Flag163; - procedure Set_Flag100 (N : Node_Id; Val : Boolean) is + procedure Set_Flag164 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag100 := Val; - end Set_Flag100; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag164 := Val; + end Set_Flag164; - procedure Set_Flag101 (N : Node_Id; Val : Boolean) is + procedure Set_Flag165 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag101 := Val; - end Set_Flag101; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag165 := Val; + end Set_Flag165; - procedure Set_Flag102 (N : Node_Id; Val : Boolean) is + procedure Set_Flag166 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag102 := Val; - end Set_Flag102; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag166 := Val; + end Set_Flag166; - procedure Set_Flag103 (N : Node_Id; Val : Boolean) is + procedure Set_Flag167 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag103 := Val; - end Set_Flag103; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag167 := Val; + end Set_Flag167; - procedure Set_Flag104 (N : Node_Id; Val : Boolean) is + procedure Set_Flag168 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag104 := Val; - end Set_Flag104; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag168 := Val; + end Set_Flag168; - procedure Set_Flag105 (N : Node_Id; Val : Boolean) is + procedure Set_Flag169 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag105 := Val; - end Set_Flag105; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag169 := Val; + end Set_Flag169; - procedure Set_Flag106 (N : Node_Id; Val : Boolean) is + procedure Set_Flag170 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag106 := Val; - end Set_Flag106; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag170 := Val; + end Set_Flag170; - procedure Set_Flag107 (N : Node_Id; Val : Boolean) is + procedure Set_Flag171 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag107 := Val; - end Set_Flag107; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag171 := Val; + end Set_Flag171; - procedure Set_Flag108 (N : Node_Id; Val : Boolean) is + procedure Set_Flag172 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag108 := Val; - end Set_Flag108; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag172 := Val; + end Set_Flag172; - procedure Set_Flag109 (N : Node_Id; Val : Boolean) is + procedure Set_Flag173 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag109 := Val; - end Set_Flag109; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag173 := Val; + end Set_Flag173; - procedure Set_Flag110 (N : Node_Id; Val : Boolean) is + procedure Set_Flag174 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag110 := Val; - end Set_Flag110; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag174 := Val; + end Set_Flag174; - procedure Set_Flag111 (N : Node_Id; Val : Boolean) is + procedure Set_Flag175 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag111 := Val; - end Set_Flag111; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag175 := Val; + end Set_Flag175; - procedure Set_Flag112 (N : Node_Id; Val : Boolean) is + procedure Set_Flag176 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag112 := Val; - end Set_Flag112; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag176 := Val; + end Set_Flag176; - procedure Set_Flag113 (N : Node_Id; Val : Boolean) is + procedure Set_Flag177 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag113 := Val; - end Set_Flag113; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag177 := Val; + end Set_Flag177; - procedure Set_Flag114 (N : Node_Id; Val : Boolean) is + procedure Set_Flag178 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag114 := Val; - end Set_Flag114; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag178 := Val; + end Set_Flag178; - procedure Set_Flag115 (N : Node_Id; Val : Boolean) is + procedure Set_Flag179 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag115 := Val; - end Set_Flag115; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag179 := Val; + end Set_Flag179; - procedure Set_Flag116 (N : Node_Id; Val : Boolean) is + procedure Set_Flag180 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag116 := Val; - end Set_Flag116; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag180 := Val; + end Set_Flag180; - procedure Set_Flag117 (N : Node_Id; Val : Boolean) is + procedure Set_Flag181 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag117 := Val; - end Set_Flag117; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag181 := Val; + end Set_Flag181; - procedure Set_Flag118 (N : Node_Id; Val : Boolean) is + procedure Set_Flag182 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag118 := Val; - end Set_Flag118; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag182 := Val; + end Set_Flag182; - procedure Set_Flag119 (N : Node_Id; Val : Boolean) is + procedure Set_Flag183 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word3_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag119 := Val; - end Set_Flag119; + (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag183 := Val; + end Set_Flag183; - procedure Set_Flag120 (N : Node_Id; Val : Boolean) is + procedure Set_Flag184 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word4_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag120 := Val; - end Set_Flag120; + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag184 := Val; + end Set_Flag184; - procedure Set_Flag121 (N : Node_Id; Val : Boolean) is + procedure Set_Flag185 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word4_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag121 := Val; - end Set_Flag121; + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag185 := Val; + end Set_Flag185; - procedure Set_Flag122 (N : Node_Id; Val : Boolean) is + procedure Set_Flag186 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word4_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag122 := Val; - end Set_Flag122; + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag186 := Val; + end Set_Flag186; - procedure Set_Flag123 (N : Node_Id; Val : Boolean) is + procedure Set_Flag187 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word4_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag123 := Val; - end Set_Flag123; + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag187 := Val; + end Set_Flag187; - procedure Set_Flag124 (N : Node_Id; Val : Boolean) is + procedure Set_Flag188 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word4_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag124 := Val; - end Set_Flag124; + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag188 := Val; + end Set_Flag188; - procedure Set_Flag125 (N : Node_Id; Val : Boolean) is + procedure Set_Flag189 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word4_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag125 := Val; - end Set_Flag125; + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag189 := Val; + end Set_Flag189; - procedure Set_Flag126 (N : Node_Id; Val : Boolean) is + procedure Set_Flag190 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word4_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag126 := Val; - end Set_Flag126; + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag190 := Val; + end Set_Flag190; - procedure Set_Flag127 (N : Node_Id; Val : Boolean) is + procedure Set_Flag191 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word4_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag127 := Val; - end Set_Flag127; + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag191 := Val; + end Set_Flag191; - procedure Set_Flag128 (N : Node_Id; Val : Boolean) is + procedure Set_Flag192 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word2_Ptr + To_Flag_Word4_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag128 := Val; - end Set_Flag128; + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag192 := Val; + end Set_Flag192; - procedure Set_Flag129 (N : Node_Id; Val : Boolean) is + procedure Set_Flag193 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).In_List := Val; - end Set_Flag129; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag193 := Val; + end Set_Flag193; - procedure Set_Flag130 (N : Node_Id; Val : Boolean) is + procedure Set_Flag194 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Unused_1 := Val; - end Set_Flag130; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag194 := Val; + end Set_Flag194; - procedure Set_Flag131 (N : Node_Id; Val : Boolean) is + procedure Set_Flag195 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Rewrite_Ins := Val; - end Set_Flag131; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag195 := Val; + end Set_Flag195; - procedure Set_Flag132 (N : Node_Id; Val : Boolean) is + procedure Set_Flag196 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Analyzed := Val; - end Set_Flag132; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag196 := Val; + end Set_Flag196; - procedure Set_Flag133 (N : Node_Id; Val : Boolean) is + procedure Set_Flag197 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Comes_From_Source := Val; - end Set_Flag133; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag197 := Val; + end Set_Flag197; - procedure Set_Flag134 (N : Node_Id; Val : Boolean) is + procedure Set_Flag198 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Error_Posted := Val; - end Set_Flag134; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag198 := Val; + end Set_Flag198; - procedure Set_Flag135 (N : Node_Id; Val : Boolean) is + procedure Set_Flag199 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag4 := Val; - end Set_Flag135; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag199 := Val; + end Set_Flag199; - procedure Set_Flag136 (N : Node_Id; Val : Boolean) is + procedure Set_Flag200 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag5 := Val; - end Set_Flag136; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag200 := Val; + end Set_Flag200; - procedure Set_Flag137 (N : Node_Id; Val : Boolean) is + procedure Set_Flag201 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag6 := Val; - end Set_Flag137; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag201 := Val; + end Set_Flag201; - procedure Set_Flag138 (N : Node_Id; Val : Boolean) is + procedure Set_Flag202 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag7 := Val; - end Set_Flag138; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag202 := Val; + end Set_Flag202; - procedure Set_Flag139 (N : Node_Id; Val : Boolean) is + procedure Set_Flag203 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag8 := Val; - end Set_Flag139; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag203 := Val; + end Set_Flag203; - procedure Set_Flag140 (N : Node_Id; Val : Boolean) is + procedure Set_Flag204 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag9 := Val; - end Set_Flag140; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag204 := Val; + end Set_Flag204; - procedure Set_Flag141 (N : Node_Id; Val : Boolean) is + procedure Set_Flag205 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag10 := Val; - end Set_Flag141; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag205 := Val; + end Set_Flag205; - procedure Set_Flag142 (N : Node_Id; Val : Boolean) is + procedure Set_Flag206 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag11 := Val; - end Set_Flag142; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag206 := Val; + end Set_Flag206; - procedure Set_Flag143 (N : Node_Id; Val : Boolean) is + procedure Set_Flag207 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag12 := Val; - end Set_Flag143; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag207 := Val; + end Set_Flag207; - procedure Set_Flag144 (N : Node_Id; Val : Boolean) is + procedure Set_Flag208 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag13 := Val; - end Set_Flag144; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag208 := Val; + end Set_Flag208; - procedure Set_Flag145 (N : Node_Id; Val : Boolean) is + procedure Set_Flag209 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag14 := Val; - end Set_Flag145; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag209 := Val; + end Set_Flag209; - procedure Set_Flag146 (N : Node_Id; Val : Boolean) is + procedure Set_Flag210 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag15 := Val; - end Set_Flag146; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag210 := Val; + end Set_Flag210; - procedure Set_Flag147 (N : Node_Id; Val : Boolean) is + procedure Set_Flag211 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag16 := Val; - end Set_Flag147; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag211 := Val; + end Set_Flag211; - procedure Set_Flag148 (N : Node_Id; Val : Boolean) is + procedure Set_Flag212 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag17 := Val; - end Set_Flag148; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag212 := Val; + end Set_Flag212; - procedure Set_Flag149 (N : Node_Id; Val : Boolean) is + procedure Set_Flag213 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Flag18 := Val; - end Set_Flag149; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag213 := Val; + end Set_Flag213; - procedure Set_Flag150 (N : Node_Id; Val : Boolean) is + procedure Set_Flag214 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Pflag1 := Val; - end Set_Flag150; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag214 := Val; + end Set_Flag214; - procedure Set_Flag151 (N : Node_Id; Val : Boolean) is + procedure Set_Flag215 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - Nodes.Table (N + 3).Pflag2 := Val; - end Set_Flag151; + To_Flag_Word4_Ptr + (Union_Id_Ptr' + (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag215 := Val; + end Set_Flag215; - procedure Set_Flag152 (N : Node_Id; Val : Boolean) is + procedure Set_Flag216 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag152 := Val; - end Set_Flag152; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag216 := Val; + end Set_Flag216; - procedure Set_Flag153 (N : Node_Id; Val : Boolean) is + procedure Set_Flag217 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag153 := Val; - end Set_Flag153; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag217 := Val; + end Set_Flag217; - procedure Set_Flag154 (N : Node_Id; Val : Boolean) is + procedure Set_Flag218 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag154 := Val; - end Set_Flag154; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag218 := Val; + end Set_Flag218; - procedure Set_Flag155 (N : Node_Id; Val : Boolean) is + procedure Set_Flag219 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag155 := Val; - end Set_Flag155; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag219 := Val; + end Set_Flag219; - procedure Set_Flag156 (N : Node_Id; Val : Boolean) is + procedure Set_Flag220 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag156 := Val; - end Set_Flag156; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag220 := Val; + end Set_Flag220; - procedure Set_Flag157 (N : Node_Id; Val : Boolean) is + procedure Set_Flag221 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag157 := Val; - end Set_Flag157; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag221 := Val; + end Set_Flag221; - procedure Set_Flag158 (N : Node_Id; Val : Boolean) is + procedure Set_Flag222 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag158 := Val; - end Set_Flag158; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag222 := Val; + end Set_Flag222; - procedure Set_Flag159 (N : Node_Id; Val : Boolean) is + procedure Set_Flag223 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag159 := Val; - end Set_Flag159; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag223 := Val; + end Set_Flag223; - procedure Set_Flag160 (N : Node_Id; Val : Boolean) is + procedure Set_Flag224 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag160 := Val; - end Set_Flag160; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag224 := Val; + end Set_Flag224; - procedure Set_Flag161 (N : Node_Id; Val : Boolean) is + procedure Set_Flag225 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag161 := Val; - end Set_Flag161; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag225 := Val; + end Set_Flag225; - procedure Set_Flag162 (N : Node_Id; Val : Boolean) is + procedure Set_Flag226 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag162 := Val; - end Set_Flag162; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag226 := Val; + end Set_Flag226; - procedure Set_Flag163 (N : Node_Id; Val : Boolean) is + procedure Set_Flag227 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag163 := Val; - end Set_Flag163; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag227 := Val; + end Set_Flag227; - procedure Set_Flag164 (N : Node_Id; Val : Boolean) is + procedure Set_Flag228 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag164 := Val; - end Set_Flag164; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag228 := Val; + end Set_Flag228; - procedure Set_Flag165 (N : Node_Id; Val : Boolean) is + procedure Set_Flag229 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag165 := Val; - end Set_Flag165; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag229 := Val; + end Set_Flag229; - procedure Set_Flag166 (N : Node_Id; Val : Boolean) is + procedure Set_Flag230 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag166 := Val; - end Set_Flag166; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag230 := Val; + end Set_Flag230; - procedure Set_Flag167 (N : Node_Id; Val : Boolean) is + procedure Set_Flag231 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag167 := Val; - end Set_Flag167; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag231 := Val; + end Set_Flag231; - procedure Set_Flag168 (N : Node_Id; Val : Boolean) is + procedure Set_Flag232 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag168 := Val; - end Set_Flag168; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag232 := Val; + end Set_Flag232; - procedure Set_Flag169 (N : Node_Id; Val : Boolean) is + procedure Set_Flag233 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag169 := Val; - end Set_Flag169; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag233 := Val; + end Set_Flag233; - procedure Set_Flag170 (N : Node_Id; Val : Boolean) is + procedure Set_Flag234 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag170 := Val; - end Set_Flag170; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag234 := Val; + end Set_Flag234; - procedure Set_Flag171 (N : Node_Id; Val : Boolean) is + procedure Set_Flag235 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag171 := Val; - end Set_Flag171; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag235 := Val; + end Set_Flag235; - procedure Set_Flag172 (N : Node_Id; Val : Boolean) is + procedure Set_Flag236 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag172 := Val; - end Set_Flag172; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag236 := Val; + end Set_Flag236; - procedure Set_Flag173 (N : Node_Id; Val : Boolean) is + procedure Set_Flag237 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag173 := Val; - end Set_Flag173; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag237 := Val; + end Set_Flag237; - procedure Set_Flag174 (N : Node_Id; Val : Boolean) is + procedure Set_Flag238 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag174 := Val; - end Set_Flag174; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag238 := Val; + end Set_Flag238; - procedure Set_Flag175 (N : Node_Id; Val : Boolean) is + procedure Set_Flag239 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag175 := Val; - end Set_Flag175; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag239 := Val; + end Set_Flag239; - procedure Set_Flag176 (N : Node_Id; Val : Boolean) is + procedure Set_Flag240 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag176 := Val; - end Set_Flag176; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag240 := Val; + end Set_Flag240; - procedure Set_Flag177 (N : Node_Id; Val : Boolean) is + procedure Set_Flag241 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag177 := Val; - end Set_Flag177; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag241 := Val; + end Set_Flag241; - procedure Set_Flag178 (N : Node_Id; Val : Boolean) is + procedure Set_Flag242 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag178 := Val; - end Set_Flag178; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag242 := Val; + end Set_Flag242; - procedure Set_Flag179 (N : Node_Id; Val : Boolean) is + procedure Set_Flag243 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag179 := Val; - end Set_Flag179; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag243 := Val; + end Set_Flag243; - procedure Set_Flag180 (N : Node_Id; Val : Boolean) is + procedure Set_Flag244 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag180 := Val; - end Set_Flag180; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag244 := Val; + end Set_Flag244; - procedure Set_Flag181 (N : Node_Id; Val : Boolean) is + procedure Set_Flag245 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag181 := Val; - end Set_Flag181; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag245 := Val; + end Set_Flag245; - procedure Set_Flag182 (N : Node_Id; Val : Boolean) is + procedure Set_Flag246 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag182 := Val; - end Set_Flag182; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag246 := Val; + end Set_Flag246; - procedure Set_Flag183 (N : Node_Id; Val : Boolean) is + procedure Set_Flag247 (N : Node_Id; Val : Boolean) is begin pragma Assert (Nkind (N) in N_Entity); - To_Flag_Word3_Ptr + To_Flag_Word5_Ptr (Union_Id_Ptr' - (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag183 := Val; - end Set_Flag183; + (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag247 := Val; + end Set_Flag247; procedure Set_Node1_With_Parent (N : Node_Id; Val : Node_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - if Val > Error then Set_Parent (Val, N); end if; + pragma Assert (N <= Nodes.Last); + + if Val > Error then + Set_Parent (N => Val, Val => N); + end if; + Set_Node1 (N, Val); end Set_Node1_With_Parent; procedure Set_Node2_With_Parent (N : Node_Id; Val : Node_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - if Val > Error then Set_Parent (Val, N); end if; + pragma Assert (N <= Nodes.Last); + + if Val > Error then + Set_Parent (N => Val, Val => N); + end if; + Set_Node2 (N, Val); end Set_Node2_With_Parent; procedure Set_Node3_With_Parent (N : Node_Id; Val : Node_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - if Val > Error then Set_Parent (Val, N); end if; + pragma Assert (N <= Nodes.Last); + + if Val > Error then + Set_Parent (N => Val, Val => N); + end if; + Set_Node3 (N, Val); end Set_Node3_With_Parent; procedure Set_Node4_With_Parent (N : Node_Id; Val : Node_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - if Val > Error then Set_Parent (Val, N); end if; + pragma Assert (N <= Nodes.Last); + + if Val > Error then + Set_Parent (N => Val, Val => N); + end if; + Set_Node4 (N, Val); end Set_Node4_With_Parent; procedure Set_Node5_With_Parent (N : Node_Id; Val : Node_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); - if Val > Error then Set_Parent (Val, N); end if; + pragma Assert (N <= Nodes.Last); + + if Val > Error then + Set_Parent (N => Val, Val => N); + end if; + Set_Node5 (N, Val); end Set_Node5_With_Parent; procedure Set_List1_With_Parent (N : Node_Id; Val : List_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); + pragma Assert (N <= Nodes.Last); if Val /= No_List and then Val /= Error_List then Set_Parent (Val, N); end if; @@ -5953,7 +6370,7 @@ package body Atree is procedure Set_List2_With_Parent (N : Node_Id; Val : List_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); + pragma Assert (N <= Nodes.Last); if Val /= No_List and then Val /= Error_List then Set_Parent (Val, N); end if; @@ -5962,7 +6379,7 @@ package body Atree is procedure Set_List3_With_Parent (N : Node_Id; Val : List_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); + pragma Assert (N <= Nodes.Last); if Val /= No_List and then Val /= Error_List then Set_Parent (Val, N); end if; @@ -5971,7 +6388,7 @@ package body Atree is procedure Set_List4_With_Parent (N : Node_Id; Val : List_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); + pragma Assert (N <= Nodes.Last); if Val /= No_List and then Val /= Error_List then Set_Parent (Val, N); end if; @@ -5980,7 +6397,7 @@ package body Atree is procedure Set_List5_With_Parent (N : Node_Id; Val : List_Id) is begin - pragma Assert (N in Nodes.First .. Nodes.Last); + pragma Assert (N <= Nodes.Last); if Val /= No_List and then Val /= Error_List then Set_Parent (Val, N); end if; @@ -5989,4 +6406,14 @@ package body Atree is end Unchecked_Access; + ------------ + -- Unlock -- + ------------ + + procedure Unlock is + begin + Nodes.Locked := False; + Orig_Nodes.Locked := False; + end Unlock; + end Atree;