1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
9 -- Copyright (C) 1992-2007, Free Software Foundation, Inc. --
11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 2, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
16 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
17 -- for more details. You should have received a copy of the GNU General --
18 -- Public License distributed with GNAT; see file COPYING. If not, write --
19 -- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
20 -- Boston, MA 02110-1301, USA. --
22 -- As a special exception, if other files instantiate generics from this --
23 -- unit, or you link this unit with other files to produce an executable, --
24 -- this unit does not by itself cause the resulting executable to be --
25 -- covered by the GNU General Public License. This exception does not --
26 -- however invalidate any other reasons why the executable file might be --
27 -- covered by the GNU Public License. --
29 -- GNAT was originally developed by the GNAT team at New York University. --
30 -- Extensive contributions were provided by Ada Core Technologies Inc. --
32 ------------------------------------------------------------------------------
34 pragma Style_Checks (All_Checks);
35 -- Turn off subprogram ordering check for this package
37 -- WARNING: There is a C version of this package. Any changes to this source
38 -- file must be properly reflected in the file atree.h which is a C header
39 -- file containing equivalent definitions for use by gigi.
41 with Debug; use Debug;
42 with Nlists; use Nlists;
43 with Elists; use Elists;
44 with Output; use Output;
45 with Sinput; use Sinput;
46 with Tree_IO; use Tree_IO;
48 with GNAT.HTable; use GNAT.HTable;
56 -- Suppose you find that node 12345 is messed up. You might want to find
57 -- the code that created that node. There are two ways to do this:
59 -- One way is to set a conditional breakpoint on New_Node_Debugging_Output
61 -- break nnd if n = 12345
62 -- and run gnat1 again from the beginning.
64 -- The other way is to set a breakpoint near the beginning (e.g. on
65 -- gnat1drv), and run. Then set Watch_Node (nickname "ww") to 12345 in gdb:
67 -- and set a breakpoint on New_Node_Breakpoint (nickname "nn"). Continue.
69 -- Either way, gnat1 will stop when node 12345 is created
71 -- The second method is faster
73 ww : Node_Id'Base := Node_Id'First - 1;
74 pragma Export (Ada, ww); -- trick the optimizer
75 Watch_Node : Node_Id'Base renames ww;
76 -- Node to "watch"; that is, whenever a node is created, we check if it is
77 -- equal to Watch_Node, and if so, call New_Node_Breakpoint. You have
78 -- presumably set a breakpoint on New_Node_Breakpoint. Note that the
79 -- initial value of Node_Id'First - 1 ensures that by default, no node
80 -- will be equal to Watch_Node.
83 pragma Export (Ada, nn);
84 procedure New_Node_Breakpoint renames nn;
85 -- This doesn't do anything interesting; it's just for setting breakpoint
86 -- on as explained above.
88 procedure nnd (N : Node_Id);
89 pragma Export (Ada, nnd);
90 procedure New_Node_Debugging_Output (N : Node_Id) renames nnd;
91 -- For debugging. If debugging is turned on, New_Node and New_Entity call
92 -- this. If debug flag N is turned on, this prints out the new node.
94 -- If Node = Watch_Node, this prints out the new node and calls
95 -- New_Node_Breakpoint. Otherwise, does nothing.
97 -----------------------------
98 -- Local Objects and Types --
99 -----------------------------
102 -- Count allocated nodes for Num_Nodes function
104 use Unchecked_Access;
105 -- We are allowed to see these from within our own body!
107 use Atree_Private_Part;
108 -- We are also allowed to see our private data structures!
110 function E_To_N is new Unchecked_Conversion (Entity_Kind, Node_Kind);
111 function N_To_E is new Unchecked_Conversion (Node_Kind, Entity_Kind);
112 -- Functions used to store Entity_Kind value in Nkind field
114 -- The following declarations are used to store flags 65-72 in the
115 -- Nkind field of the third component of an extended (entity) node.
117 type Flag_Byte is record
128 pragma Pack (Flag_Byte);
129 for Flag_Byte'Size use 8;
131 type Flag_Byte_Ptr is access all Flag_Byte;
132 type Node_Kind_Ptr is access all Node_Kind;
134 function To_Flag_Byte is new
135 Unchecked_Conversion (Node_Kind, Flag_Byte);
137 function To_Flag_Byte_Ptr is new
138 Unchecked_Conversion (Node_Kind_Ptr, Flag_Byte_Ptr);
140 -- The following declarations are used to store flags 73-96 and the
141 -- Convention field in the Field12 field of the third component of an
142 -- extended (Entity) node.
144 type Flag_Word is record
172 Convention : Convention_Id;
175 pragma Pack (Flag_Word);
176 for Flag_Word'Size use 32;
177 for Flag_Word'Alignment use 4;
179 type Flag_Word_Ptr is access all Flag_Word;
180 type Union_Id_Ptr is access all Union_Id;
182 function To_Flag_Word is new
183 Unchecked_Conversion (Union_Id, Flag_Word);
185 function To_Flag_Word_Ptr is new
186 Unchecked_Conversion (Union_Id_Ptr, Flag_Word_Ptr);
188 -- The following declarations are used to store flags 97-128 in the
189 -- Field12 field of the fourth component of an extended (entity) node.
191 type Flag_Word2 is record
229 pragma Pack (Flag_Word2);
230 for Flag_Word2'Size use 32;
231 for Flag_Word2'Alignment use 4;
233 type Flag_Word2_Ptr is access all Flag_Word2;
235 function To_Flag_Word2 is new
236 Unchecked_Conversion (Union_Id, Flag_Word2);
238 function To_Flag_Word2_Ptr is new
239 Unchecked_Conversion (Union_Id_Ptr, Flag_Word2_Ptr);
241 -- The following declarations are used to store flags 152-183 in the
242 -- Field11 field of the fourth component of an extended (entity) node.
244 type Flag_Word3 is record
282 pragma Pack (Flag_Word3);
283 for Flag_Word3'Size use 32;
284 for Flag_Word3'Alignment use 4;
286 type Flag_Word3_Ptr is access all Flag_Word3;
288 function To_Flag_Word3 is new
289 Unchecked_Conversion (Union_Id, Flag_Word3);
291 function To_Flag_Word3_Ptr is new
292 Unchecked_Conversion (Union_Id_Ptr, Flag_Word3_Ptr);
294 -- The following declarations are used to store flags 184-215 in the
295 -- Field11 field of the fifth component of an extended (entity) node.
297 type Flag_Word4 is record
335 pragma Pack (Flag_Word4);
336 for Flag_Word4'Size use 32;
337 for Flag_Word4'Alignment use 4;
339 type Flag_Word4_Ptr is access all Flag_Word4;
341 function To_Flag_Word4 is new
342 Unchecked_Conversion (Union_Id, Flag_Word4);
344 function To_Flag_Word4_Ptr is new
345 Unchecked_Conversion (Union_Id_Ptr, Flag_Word4_Ptr);
347 -- The following declarations are used to store flags 216-247 in the
348 -- Field12 field of the fifth component of an extended (entity) node.
350 type Flag_Word5 is record
388 pragma Pack (Flag_Word5);
389 for Flag_Word5'Size use 32;
390 for Flag_Word5'Alignment use 4;
392 type Flag_Word5_Ptr is access all Flag_Word5;
394 function To_Flag_Word5 is new
395 Unchecked_Conversion (Union_Id, Flag_Word5);
397 function To_Flag_Word5_Ptr is new
398 Unchecked_Conversion (Union_Id_Ptr, Flag_Word5_Ptr);
400 -- Default value used to initialize default nodes. Note that some of the
401 -- fields get overwritten, and in particular, Nkind always gets reset.
403 Default_Node : Node_Record := (
404 Is_Extension => False,
409 Rewrite_Ins => False,
411 Comes_From_Source => False, -- modified by Set_Comes_From_Source_Default
412 Error_Posted => False,
431 Nkind => N_Unused_At_Start,
434 Link => Empty_List_Or_Node,
435 Field1 => Empty_List_Or_Node,
436 Field2 => Empty_List_Or_Node,
437 Field3 => Empty_List_Or_Node,
438 Field4 => Empty_List_Or_Node,
439 Field5 => Empty_List_Or_Node);
441 -- Default value used to initialize node extensions (i.e. the second
442 -- and third and fourth components of an extended node). Note we are
443 -- cheating a bit here when it comes to Node12, which really holds
444 -- flags an (for the third component), the convention. But it works
445 -- because Empty, False, Convention_Ada, all happen to be all zero bits.
447 Default_Node_Extension : constant Node_Record := (
448 Is_Extension => True,
453 Rewrite_Ins => False,
455 Comes_From_Source => False,
456 Error_Posted => False,
475 Nkind => E_To_N (E_Void),
477 Field6 => Empty_List_Or_Node,
478 Field7 => Empty_List_Or_Node,
479 Field8 => Empty_List_Or_Node,
480 Field9 => Empty_List_Or_Node,
481 Field10 => Empty_List_Or_Node,
482 Field11 => Empty_List_Or_Node,
483 Field12 => Empty_List_Or_Node);
485 --------------------------------------------------
486 -- Implementation of Tree Substitution Routines --
487 --------------------------------------------------
489 -- A separate table keeps track of the mapping between rewritten nodes
490 -- and their corresponding original tree nodes. Rewrite makes an entry
491 -- in this table for use by Original_Node. By default, if no call is
492 -- Rewrite, the entry in this table points to the original unwritten node.
494 -- Note: eventually, this should be a field in the Node directly, but
495 -- for now we do not want to disturb the efficiency of a power of 2
498 package Orig_Nodes is new Table.Table (
499 Table_Component_Type => Node_Id,
500 Table_Index_Type => Node_Id'Base,
501 Table_Low_Bound => First_Node_Id,
502 Table_Initial => Alloc.Orig_Nodes_Initial,
503 Table_Increment => Alloc.Orig_Nodes_Increment,
504 Table_Name => "Orig_Nodes");
506 ----------------------------------------
507 -- Global_Variables for New_Copy_Tree --
508 ----------------------------------------
510 -- These global variables are used by New_Copy_Tree. See description
511 -- of the body of this subprogram for details. Global variables can be
512 -- safely used by New_Copy_Tree, since there is no case of a recursive
513 -- call from the processing inside New_Copy_Tree.
515 NCT_Hash_Threshhold : constant := 20;
516 -- If there are more than this number of pairs of entries in the
517 -- map, then Hash_Tables_Used will be set, and the hash tables will
518 -- be initialized and used for the searches.
520 NCT_Hash_Tables_Used : Boolean := False;
521 -- Set to True if hash tables are in use
523 NCT_Table_Entries : Nat;
524 -- Count entries in table to see if threshhold is reached
526 NCT_Hash_Table_Setup : Boolean := False;
527 -- Set to True if hash table contains data. We set this True if we
528 -- setup the hash table with data, and leave it set permanently
529 -- from then on, this is a signal that second and subsequent users
530 -- of the hash table must clear the old entries before reuse.
532 subtype NCT_Header_Num is Int range 0 .. 511;
533 -- Defines range of headers in hash tables (512 headers)
535 --------------------------
536 -- Paren_Count Handling --
537 --------------------------
539 -- As noted in the spec, the paren count in a sub-expression node has
540 -- four possible values 0,1,2, and 3. The value 3 really means 3 or more,
541 -- and we use an auxiliary serially scanned table to record the actual
542 -- count. A serial search is fine, only pathological programs will use
543 -- entries in this table. Normal programs won't use it at all.
545 type Paren_Count_Entry is record
547 -- The node to which this count applies
549 Count : Nat range 3 .. Nat'Last;
550 -- The count of parentheses, which will be in the indicated range
553 package Paren_Counts is new Table.Table (
554 Table_Component_Type => Paren_Count_Entry,
555 Table_Index_Type => Int,
556 Table_Low_Bound => 0,
558 Table_Increment => 200,
559 Table_Name => "Paren_Counts");
561 -----------------------
562 -- Local Subprograms --
563 -----------------------
565 procedure Fix_Parents (Old_Node, New_Node : Node_Id);
566 -- Fixup parent pointers for the syntactic children of New_Node after
567 -- a copy, setting them to New_Node when they pointed to Old_Node.
569 function Allocate_Initialize_Node
571 With_Extension : Boolean) return Node_Id;
572 -- Allocate a new node or node extension. If Src is not empty,
573 -- the information for the newly-allocated node is copied from it.
575 ------------------------------
576 -- Allocate_Initialize_Node --
577 ------------------------------
579 function Allocate_Initialize_Node
581 With_Extension : Boolean) return Node_Id
583 New_Id : Node_Id := Src;
584 Nod : Node_Record := Default_Node;
585 Ext1 : Node_Record := Default_Node_Extension;
586 Ext2 : Node_Record := Default_Node_Extension;
587 Ext3 : Node_Record := Default_Node_Extension;
588 Ext4 : Node_Record := Default_Node_Extension;
591 if Present (Src) then
592 Nod := Nodes.Table (Src);
594 if Has_Extension (Src) then
595 Ext1 := Nodes.Table (Src + 1);
596 Ext2 := Nodes.Table (Src + 2);
597 Ext3 := Nodes.Table (Src + 3);
598 Ext4 := Nodes.Table (Src + 4);
602 if not (Present (Src)
603 and then not Has_Extension (Src)
604 and then With_Extension
605 and then Src = Nodes.Last)
607 -- We are allocating a new node, or extending a node
608 -- other than Nodes.Last.
611 New_Id := Nodes.Last;
612 Orig_Nodes.Append (New_Id);
613 Node_Count := Node_Count + 1;
616 -- Specifically copy Paren_Count to deal with creating new table entry
617 -- if the parentheses count is at the maximum possible value already.
619 if Present (Src) and then Nkind (Src) in N_Subexpr then
620 Set_Paren_Count (New_Id, Paren_Count (Src));
623 -- Set extension nodes if required
625 if With_Extension then
632 Orig_Nodes.Set_Last (Nodes.Last);
633 Allocate_List_Tables (Nodes.Last);
635 end Allocate_Initialize_Node;
641 function Analyzed (N : Node_Id) return Boolean is
643 pragma Assert (N <= Nodes.Last);
644 return Nodes.Table (N).Analyzed;
647 --------------------------
648 -- Basic_Set_Convention --
649 --------------------------
651 procedure Basic_Set_Convention (E : Entity_Id; Val : Convention_Id) is
653 pragma Assert (Nkind (E) in N_Entity);
656 (Nodes.Table (E + 2).Field12'Unrestricted_Access)).Convention := Val;
657 end Basic_Set_Convention;
663 procedure Change_Node (N : Node_Id; New_Node_Kind : Node_Kind) is
664 Save_Sloc : constant Source_Ptr := Sloc (N);
665 Save_In_List : constant Boolean := Nodes.Table (N).In_List;
666 Save_Link : constant Union_Id := Nodes.Table (N).Link;
667 Save_CFS : constant Boolean := Nodes.Table (N).Comes_From_Source;
668 Save_Posted : constant Boolean := Nodes.Table (N).Error_Posted;
669 Par_Count : Nat := 0;
672 if Nkind (N) in N_Subexpr then
673 Par_Count := Paren_Count (N);
676 Nodes.Table (N) := Default_Node;
677 Nodes.Table (N).Sloc := Save_Sloc;
678 Nodes.Table (N).In_List := Save_In_List;
679 Nodes.Table (N).Link := Save_Link;
680 Nodes.Table (N).Comes_From_Source := Save_CFS;
681 Nodes.Table (N).Nkind := New_Node_Kind;
682 Nodes.Table (N).Error_Posted := Save_Posted;
684 if New_Node_Kind in N_Subexpr then
685 Set_Paren_Count (N, Par_Count);
689 -----------------------
690 -- Comes_From_Source --
691 -----------------------
693 function Comes_From_Source (N : Node_Id) return Boolean is
695 pragma Assert (N <= Nodes.Last);
696 return Nodes.Table (N).Comes_From_Source;
697 end Comes_From_Source;
703 function Convention (E : Entity_Id) return Convention_Id is
705 pragma Assert (Nkind (E) in N_Entity);
706 return To_Flag_Word (Nodes.Table (E + 2).Field12).Convention;
713 procedure Copy_Node (Source : Node_Id; Destination : Node_Id) is
714 Save_In_List : constant Boolean := Nodes.Table (Destination).In_List;
715 Save_Link : constant Union_Id := Nodes.Table (Destination).Link;
718 Nodes.Table (Destination) := Nodes.Table (Source);
719 Nodes.Table (Destination).In_List := Save_In_List;
720 Nodes.Table (Destination).Link := Save_Link;
722 -- Specifically set Paren_Count to make sure auxiliary table entry
723 -- gets correctly made if the parentheses count is at the max value.
725 if Nkind (Destination) in N_Subexpr then
726 Set_Paren_Count (Destination, Paren_Count (Source));
729 -- Deal with copying extension nodes if present
731 if Has_Extension (Source) then
732 pragma Assert (Has_Extension (Destination));
733 Nodes.Table (Destination + 1) := Nodes.Table (Source + 1);
734 Nodes.Table (Destination + 2) := Nodes.Table (Source + 2);
735 Nodes.Table (Destination + 3) := Nodes.Table (Source + 3);
736 Nodes.Table (Destination + 4) := Nodes.Table (Source + 4);
739 pragma Assert (not Has_Extension (Source));
744 ------------------------
745 -- Copy_Separate_Tree --
746 ------------------------
748 function Copy_Separate_Tree (Source : Node_Id) return Node_Id is
751 function Copy_Entity (E : Entity_Id) return Entity_Id;
752 -- Copy Entity, copying only the Ekind and Chars fields
754 function Copy_List (List : List_Id) return List_Id;
757 function Possible_Copy (Field : Union_Id) return Union_Id;
758 -- Given a field, returns a copy of the node or list if its parent
759 -- is the current source node, and otherwise returns the input
765 function Copy_Entity (E : Entity_Id) return Entity_Id is
769 case N_Entity (Nkind (E)) is
770 when N_Defining_Identifier =>
771 New_Ent := New_Entity (N_Defining_Identifier, Sloc (E));
773 when N_Defining_Character_Literal =>
774 New_Ent := New_Entity (N_Defining_Character_Literal, Sloc (E));
776 when N_Defining_Operator_Symbol =>
777 New_Ent := New_Entity (N_Defining_Operator_Symbol, Sloc (E));
780 Set_Chars (New_Ent, Chars (E));
788 function Copy_List (List : List_Id) return List_Id is
793 if List = No_List then
800 while Present (E) loop
801 if Has_Extension (E) then
802 Append (Copy_Entity (E), NL);
804 Append (Copy_Separate_Tree (E), NL);
818 function Possible_Copy (Field : Union_Id) return Union_Id is
822 if Field in Node_Range then
823 New_N := Union_Id (Copy_Separate_Tree (Node_Id (Field)));
825 if Parent (Node_Id (Field)) = Source then
826 Set_Parent (Node_Id (New_N), New_Id);
831 elsif Field in List_Range then
832 New_N := Union_Id (Copy_List (List_Id (Field)));
834 if Parent (List_Id (Field)) = Source then
835 Set_Parent (List_Id (New_N), New_Id);
845 -- Start of processing for Copy_Separate_Tree
848 if Source <= Empty_Or_Error then
851 elsif Has_Extension (Source) then
852 return Copy_Entity (Source);
855 New_Id := New_Copy (Source);
857 -- Recursively copy descendents
859 Set_Field1 (New_Id, Possible_Copy (Field1 (New_Id)));
860 Set_Field2 (New_Id, Possible_Copy (Field2 (New_Id)));
861 Set_Field3 (New_Id, Possible_Copy (Field3 (New_Id)));
862 Set_Field4 (New_Id, Possible_Copy (Field4 (New_Id)));
863 Set_Field5 (New_Id, Possible_Copy (Field5 (New_Id)));
865 -- Set Entity field to Empty
866 -- Why is this done??? and why is it always right to do it???
868 if Nkind (New_Id) in N_Has_Entity
869 or else Nkind (New_Id) = N_Freeze_Entity
871 Set_Entity (New_Id, Empty);
874 -- All done, return copied node
878 end Copy_Separate_Tree;
884 function Ekind (E : Entity_Id) return Entity_Kind is
886 pragma Assert (Nkind (E) in N_Entity);
887 return N_To_E (Nodes.Table (E + 1).Nkind);
894 function Error_Posted (N : Node_Id) return Boolean is
896 pragma Assert (N <= Nodes.Last);
897 return Nodes.Table (N).Error_Posted;
900 -----------------------
901 -- Exchange_Entities --
902 -----------------------
904 procedure Exchange_Entities (E1 : Entity_Id; E2 : Entity_Id) is
905 Temp_Ent : Node_Record;
908 pragma Assert (Has_Extension (E1)
909 and then Has_Extension (E2)
910 and then not Nodes.Table (E1).In_List
911 and then not Nodes.Table (E2).In_List);
913 -- Exchange the contents of the two entities
915 Temp_Ent := Nodes.Table (E1);
916 Nodes.Table (E1) := Nodes.Table (E2);
917 Nodes.Table (E2) := Temp_Ent;
918 Temp_Ent := Nodes.Table (E1 + 1);
919 Nodes.Table (E1 + 1) := Nodes.Table (E2 + 1);
920 Nodes.Table (E2 + 1) := Temp_Ent;
921 Temp_Ent := Nodes.Table (E1 + 2);
922 Nodes.Table (E1 + 2) := Nodes.Table (E2 + 2);
923 Nodes.Table (E2 + 2) := Temp_Ent;
924 Temp_Ent := Nodes.Table (E1 + 3);
925 Nodes.Table (E1 + 3) := Nodes.Table (E2 + 3);
926 Nodes.Table (E2 + 3) := Temp_Ent;
927 Temp_Ent := Nodes.Table (E1 + 4);
928 Nodes.Table (E1 + 4) := Nodes.Table (E2 + 4);
929 Nodes.Table (E2 + 4) := Temp_Ent;
931 -- That exchange exchanged the parent pointers as well, which is what
932 -- we want, but we need to patch up the defining identifier pointers
933 -- in the parent nodes (the child pointers) to match this switch
934 -- unless for Implicit types entities which have no parent, in which
935 -- case we don't do anything otherwise we won't be able to revert back
936 -- to the original situation.
938 -- Shouldn't this use Is_Itype instead of the Parent test
940 if Present (Parent (E1)) and then Present (Parent (E2)) then
941 Set_Defining_Identifier (Parent (E1), E1);
942 Set_Defining_Identifier (Parent (E2), E2);
944 end Exchange_Entities;
950 function Extend_Node (Node : Node_Id) return Entity_Id is
953 procedure Debug_Extend_Node;
954 pragma Inline (Debug_Extend_Node);
955 -- Debug routine for debug flag N
957 -----------------------
958 -- Debug_Extend_Node --
959 -----------------------
961 procedure Debug_Extend_Node is
964 Write_Str ("Extend node ");
965 Write_Int (Int (Node));
967 if Result = Node then
968 Write_Str (" in place");
970 Write_Str (" copied to ");
971 Write_Int (Int (Result));
976 end Debug_Extend_Node;
978 -- Start of processing for Extend_Node
981 pragma Assert (not (Has_Extension (Node)));
982 Result := Allocate_Initialize_Node (Node, With_Extension => True);
983 pragma Debug (Debug_Extend_Node);
991 procedure Fix_Parents (Old_Node, New_Node : Node_Id) is
993 procedure Fix_Parent (Field : Union_Id; Old_Node, New_Node : Node_Id);
994 -- Fixup one parent pointer. Field is checked to see if it
995 -- points to a node, list, or element list that has a parent that
996 -- points to Old_Node. If so, the parent is reset to point to New_Node.
1002 procedure Fix_Parent (Field : Union_Id; Old_Node, New_Node : Node_Id) is
1004 -- Fix parent of node that is referenced by Field. Note that we must
1005 -- exclude the case where the node is a member of a list, because in
1006 -- this case the parent is the parent of the list.
1008 if Field in Node_Range
1009 and then Present (Node_Id (Field))
1010 and then not Nodes.Table (Node_Id (Field)).In_List
1011 and then Parent (Node_Id (Field)) = Old_Node
1013 Set_Parent (Node_Id (Field), New_Node);
1015 -- Fix parent of list that is referenced by Field
1017 elsif Field in List_Range
1018 and then Present (List_Id (Field))
1019 and then Parent (List_Id (Field)) = Old_Node
1021 Set_Parent (List_Id (Field), New_Node);
1025 -- Start of processing for Fix_Parents
1028 Fix_Parent (Field1 (New_Node), Old_Node, New_Node);
1029 Fix_Parent (Field2 (New_Node), Old_Node, New_Node);
1030 Fix_Parent (Field3 (New_Node), Old_Node, New_Node);
1031 Fix_Parent (Field4 (New_Node), Old_Node, New_Node);
1032 Fix_Parent (Field5 (New_Node), Old_Node, New_Node);
1035 -----------------------------------
1036 -- Get_Comes_From_Source_Default --
1037 -----------------------------------
1039 function Get_Comes_From_Source_Default return Boolean is
1041 return Default_Node.Comes_From_Source;
1042 end Get_Comes_From_Source_Default;
1048 function Has_Extension (N : Node_Id) return Boolean is
1050 return N < Nodes.Last and then Nodes.Table (N + 1).Is_Extension;
1057 procedure Initialize is
1059 pragma Warnings (Off, Dummy);
1063 Atree_Private_Part.Nodes.Init;
1067 -- Allocate Empty node
1069 Dummy := New_Node (N_Empty, No_Location);
1070 Set_Name1 (Empty, No_Name);
1072 -- Allocate Error node, and set Error_Posted, since we certainly
1073 -- only generate an Error node if we do post some kind of error!
1075 Dummy := New_Node (N_Error, No_Location);
1076 Set_Name1 (Error, Error_Name);
1077 Set_Error_Posted (Error, True);
1079 -- Set global variables for New_Copy_Tree
1081 NCT_Hash_Tables_Used := False;
1082 NCT_Table_Entries := 0;
1083 NCT_Hash_Table_Setup := False;
1086 --------------------------
1087 -- Is_Rewrite_Insertion --
1088 --------------------------
1090 function Is_Rewrite_Insertion (Node : Node_Id) return Boolean is
1092 return Nodes.Table (Node).Rewrite_Ins;
1093 end Is_Rewrite_Insertion;
1095 -----------------------------
1096 -- Is_Rewrite_Substitution --
1097 -----------------------------
1099 function Is_Rewrite_Substitution (Node : Node_Id) return Boolean is
1101 return Orig_Nodes.Table (Node) /= Node;
1102 end Is_Rewrite_Substitution;
1108 function Last_Node_Id return Node_Id is
1119 Nodes.Locked := True;
1120 Orig_Nodes.Locked := True;
1125 ----------------------------
1126 -- Mark_Rewrite_Insertion --
1127 ----------------------------
1129 procedure Mark_Rewrite_Insertion (New_Node : Node_Id) is
1131 Nodes.Table (New_Node).Rewrite_Ins := True;
1132 end Mark_Rewrite_Insertion;
1138 function New_Copy (Source : Node_Id) return Node_Id is
1139 New_Id : Node_Id := Source;
1142 if Source > Empty_Or_Error then
1144 New_Id := Allocate_Initialize_Node (Source, Has_Extension (Source));
1146 Nodes.Table (New_Id).Link := Empty_List_Or_Node;
1147 Nodes.Table (New_Id).In_List := False;
1149 -- If the original is marked as a rewrite insertion, then unmark
1150 -- the copy, since we inserted the original, not the copy.
1152 Nodes.Table (New_Id).Rewrite_Ins := False;
1153 pragma Debug (New_Node_Debugging_Output (New_Id));
1163 -- Our approach here requires a two pass traversal of the tree. The
1164 -- first pass visits all nodes that eventually will be copied looking
1165 -- for defining Itypes. If any defining Itypes are found, then they are
1166 -- copied, and an entry is added to the replacement map. In the second
1167 -- phase, the tree is copied, using the replacement map to replace any
1168 -- Itype references within the copied tree.
1170 -- The following hash tables are used if the Map supplied has more
1171 -- than hash threshhold entries to speed up access to the map. If
1172 -- there are fewer entries, then the map is searched sequentially
1173 -- (because setting up a hash table for only a few entries takes
1174 -- more time than it saves.
1176 function New_Copy_Hash (E : Entity_Id) return NCT_Header_Num;
1177 -- Hash function used for hash operations
1183 function New_Copy_Hash (E : Entity_Id) return NCT_Header_Num is
1185 return Nat (E) mod (NCT_Header_Num'Last + 1);
1192 -- The hash table NCT_Assoc associates old entities in the table
1193 -- with their corresponding new entities (i.e. the pairs of entries
1194 -- presented in the original Map argument are Key-Element pairs).
1196 package NCT_Assoc is new Simple_HTable (
1197 Header_Num => NCT_Header_Num,
1198 Element => Entity_Id,
1199 No_Element => Empty,
1201 Hash => New_Copy_Hash,
1202 Equal => Types."=");
1204 ---------------------
1205 -- NCT_Itype_Assoc --
1206 ---------------------
1208 -- The hash table NCT_Itype_Assoc contains entries only for those
1209 -- old nodes which have a non-empty Associated_Node_For_Itype set.
1210 -- The key is the associated node, and the element is the new node
1211 -- itself (NOT the associated node for the new node).
1213 package NCT_Itype_Assoc is new Simple_HTable (
1214 Header_Num => NCT_Header_Num,
1215 Element => Entity_Id,
1216 No_Element => Empty,
1218 Hash => New_Copy_Hash,
1219 Equal => Types."=");
1221 -- Start of processing for New_Copy_Tree function
1223 function New_Copy_Tree
1225 Map : Elist_Id := No_Elist;
1226 New_Sloc : Source_Ptr := No_Location;
1227 New_Scope : Entity_Id := Empty) return Node_Id
1229 Actual_Map : Elist_Id := Map;
1230 -- This is the actual map for the copy. It is initialized with the
1231 -- given elements, and then enlarged as required for Itypes that are
1232 -- copied during the first phase of the copy operation. The visit
1233 -- procedures add elements to this map as Itypes are encountered.
1234 -- The reason we cannot use Map directly, is that it may well be
1235 -- (and normally is) initialized to No_Elist, and if we have mapped
1236 -- entities, we have to reset it to point to a real Elist.
1238 function Assoc (N : Node_Or_Entity_Id) return Node_Id;
1239 -- Called during second phase to map entities into their corresponding
1240 -- copies using Actual_Map. If the argument is not an entity, or is not
1241 -- in Actual_Map, then it is returned unchanged.
1243 procedure Build_NCT_Hash_Tables;
1244 -- Builds hash tables (number of elements >= threshold value)
1246 function Copy_Elist_With_Replacement
1247 (Old_Elist : Elist_Id) return Elist_Id;
1248 -- Called during second phase to copy element list doing replacements
1250 procedure Copy_Itype_With_Replacement (New_Itype : Entity_Id);
1251 -- Called during the second phase to process a copied Itype. The actual
1252 -- copy happened during the first phase (so that we could make the entry
1253 -- in the mapping), but we still have to deal with the descendents of
1254 -- the copied Itype and copy them where necessary.
1256 function Copy_List_With_Replacement (Old_List : List_Id) return List_Id;
1257 -- Called during second phase to copy list doing replacements
1259 function Copy_Node_With_Replacement (Old_Node : Node_Id) return Node_Id;
1260 -- Called during second phase to copy node doing replacements
1262 procedure Visit_Elist (E : Elist_Id);
1263 -- Called during first phase to visit all elements of an Elist
1265 procedure Visit_Field (F : Union_Id; N : Node_Id);
1266 -- Visit a single field, recursing to call Visit_Node or Visit_List
1267 -- if the field is a syntactic descendent of the current node (i.e.
1268 -- its parent is Node N).
1270 procedure Visit_Itype (Old_Itype : Entity_Id);
1271 -- Called during first phase to visit subsidiary fields of a defining
1272 -- Itype, and also create a copy and make an entry in the replacement
1273 -- map for the new copy.
1275 procedure Visit_List (L : List_Id);
1276 -- Called during first phase to visit all elements of a List
1278 procedure Visit_Node (N : Node_Or_Entity_Id);
1279 -- Called during first phase to visit a node and all its subtrees
1285 function Assoc (N : Node_Or_Entity_Id) return Node_Id is
1290 if not Has_Extension (N) or else No (Actual_Map) then
1293 elsif NCT_Hash_Tables_Used then
1294 Ent := NCT_Assoc.Get (Entity_Id (N));
1296 if Present (Ent) then
1302 -- No hash table used, do serial search
1305 E := First_Elmt (Actual_Map);
1306 while Present (E) loop
1307 if Node (E) = N then
1308 return Node (Next_Elmt (E));
1310 E := Next_Elmt (Next_Elmt (E));
1318 ---------------------------
1319 -- Build_NCT_Hash_Tables --
1320 ---------------------------
1322 procedure Build_NCT_Hash_Tables is
1326 if NCT_Hash_Table_Setup then
1328 NCT_Itype_Assoc.Reset;
1331 Elmt := First_Elmt (Actual_Map);
1332 while Present (Elmt) loop
1335 -- Get new entity, and associate old and new
1338 NCT_Assoc.Set (Ent, Node (Elmt));
1340 if Is_Type (Ent) then
1342 Anode : constant Entity_Id :=
1343 Associated_Node_For_Itype (Ent);
1346 if Present (Anode) then
1348 -- Enter a link between the associated node of the
1349 -- old Itype and the new Itype, for updating later
1350 -- when node is copied.
1352 NCT_Itype_Assoc.Set (Anode, Node (Elmt));
1360 NCT_Hash_Tables_Used := True;
1361 NCT_Hash_Table_Setup := True;
1362 end Build_NCT_Hash_Tables;
1364 ---------------------------------
1365 -- Copy_Elist_With_Replacement --
1366 ---------------------------------
1368 function Copy_Elist_With_Replacement
1369 (Old_Elist : Elist_Id) return Elist_Id
1372 New_Elist : Elist_Id;
1375 if No (Old_Elist) then
1379 New_Elist := New_Elmt_List;
1381 M := First_Elmt (Old_Elist);
1382 while Present (M) loop
1383 Append_Elmt (Copy_Node_With_Replacement (Node (M)), New_Elist);
1389 end Copy_Elist_With_Replacement;
1391 ---------------------------------
1392 -- Copy_Itype_With_Replacement --
1393 ---------------------------------
1395 -- This routine exactly parallels its phase one analog Visit_Itype,
1396 -- and like that routine, knows far too many semantic details about
1397 -- the descendents of Itypes and whether they need copying or not.
1399 procedure Copy_Itype_With_Replacement (New_Itype : Entity_Id) is
1401 -- Translate Next_Entity, Scope and Etype fields, in case they
1402 -- reference entities that have been mapped into copies.
1404 Set_Next_Entity (New_Itype, Assoc (Next_Entity (New_Itype)));
1405 Set_Etype (New_Itype, Assoc (Etype (New_Itype)));
1407 if Present (New_Scope) then
1408 Set_Scope (New_Itype, New_Scope);
1410 Set_Scope (New_Itype, Assoc (Scope (New_Itype)));
1413 -- Copy referenced fields
1415 if Is_Discrete_Type (New_Itype) then
1416 Set_Scalar_Range (New_Itype,
1417 Copy_Node_With_Replacement (Scalar_Range (New_Itype)));
1419 elsif Has_Discriminants (Base_Type (New_Itype)) then
1420 Set_Discriminant_Constraint (New_Itype,
1421 Copy_Elist_With_Replacement
1422 (Discriminant_Constraint (New_Itype)));
1424 elsif Is_Array_Type (New_Itype) then
1425 if Present (First_Index (New_Itype)) then
1426 Set_First_Index (New_Itype,
1427 First (Copy_List_With_Replacement
1428 (List_Containing (First_Index (New_Itype)))));
1431 if Is_Packed (New_Itype) then
1432 Set_Packed_Array_Type (New_Itype,
1433 Copy_Node_With_Replacement
1434 (Packed_Array_Type (New_Itype)));
1437 end Copy_Itype_With_Replacement;
1439 --------------------------------
1440 -- Copy_List_With_Replacement --
1441 --------------------------------
1443 function Copy_List_With_Replacement
1444 (Old_List : List_Id) return List_Id
1450 if Old_List = No_List then
1454 New_List := Empty_List;
1456 E := First (Old_List);
1457 while Present (E) loop
1458 Append (Copy_Node_With_Replacement (E), New_List);
1464 end Copy_List_With_Replacement;
1466 --------------------------------
1467 -- Copy_Node_With_Replacement --
1468 --------------------------------
1470 function Copy_Node_With_Replacement
1471 (Old_Node : Node_Id) return Node_Id
1475 procedure Adjust_Named_Associations
1476 (Old_Node : Node_Id;
1477 New_Node : Node_Id);
1478 -- If a call node has named associations, these are chained through
1479 -- the First_Named_Actual, Next_Named_Actual links. These must be
1480 -- propagated separately to the new parameter list, because these
1481 -- are not syntactic fields.
1483 function Copy_Field_With_Replacement
1484 (Field : Union_Id) return Union_Id;
1485 -- Given Field, which is a field of Old_Node, return a copy of it
1486 -- if it is a syntactic field (i.e. its parent is Node), setting
1487 -- the parent of the copy to poit to New_Node. Otherwise returns
1488 -- the field (possibly mapped if it is an entity).
1490 -------------------------------
1491 -- Adjust_Named_Associations --
1492 -------------------------------
1494 procedure Adjust_Named_Associations
1495 (Old_Node : Node_Id;
1505 Old_E := First (Parameter_Associations (Old_Node));
1506 New_E := First (Parameter_Associations (New_Node));
1507 while Present (Old_E) loop
1508 if Nkind (Old_E) = N_Parameter_Association
1509 and then Present (Next_Named_Actual (Old_E))
1511 if First_Named_Actual (Old_Node)
1512 = Explicit_Actual_Parameter (Old_E)
1514 Set_First_Named_Actual
1515 (New_Node, Explicit_Actual_Parameter (New_E));
1518 -- Now scan parameter list from the beginning,to locate
1519 -- next named actual, which can be out of order.
1521 Old_Next := First (Parameter_Associations (Old_Node));
1522 New_Next := First (Parameter_Associations (New_Node));
1524 while Nkind (Old_Next) /= N_Parameter_Association
1525 or else Explicit_Actual_Parameter (Old_Next)
1526 /= Next_Named_Actual (Old_E)
1532 Set_Next_Named_Actual
1533 (New_E, Explicit_Actual_Parameter (New_Next));
1539 end Adjust_Named_Associations;
1541 ---------------------------------
1542 -- Copy_Field_With_Replacement --
1543 ---------------------------------
1545 function Copy_Field_With_Replacement
1546 (Field : Union_Id) return Union_Id
1549 if Field = Union_Id (Empty) then
1552 elsif Field in Node_Range then
1554 Old_N : constant Node_Id := Node_Id (Field);
1558 -- If syntactic field, as indicated by the parent pointer
1559 -- being set, then copy the referenced node recursively.
1561 if Parent (Old_N) = Old_Node then
1562 New_N := Copy_Node_With_Replacement (Old_N);
1564 if New_N /= Old_N then
1565 Set_Parent (New_N, New_Node);
1568 -- For semantic fields, update possible entity reference
1569 -- from the replacement map.
1572 New_N := Assoc (Old_N);
1575 return Union_Id (New_N);
1578 elsif Field in List_Range then
1580 Old_L : constant List_Id := List_Id (Field);
1584 -- If syntactic field, as indicated by the parent pointer,
1585 -- then recursively copy the entire referenced list.
1587 if Parent (Old_L) = Old_Node then
1588 New_L := Copy_List_With_Replacement (Old_L);
1589 Set_Parent (New_L, New_Node);
1591 -- For semantic list, just returned unchanged
1597 return Union_Id (New_L);
1600 -- Anything other than a list or a node is returned unchanged
1605 end Copy_Field_With_Replacement;
1607 -- Start of processing for Copy_Node_With_Replacement
1610 if Old_Node <= Empty_Or_Error then
1613 elsif Has_Extension (Old_Node) then
1614 return Assoc (Old_Node);
1617 New_Node := New_Copy (Old_Node);
1619 -- If the node we are copying is the associated node of a
1620 -- previously copied Itype, then adjust the associated node
1621 -- of the copy of that Itype accordingly.
1623 if Present (Actual_Map) then
1629 -- Case of hash table used
1631 if NCT_Hash_Tables_Used then
1632 Ent := NCT_Itype_Assoc.Get (Old_Node);
1634 if Present (Ent) then
1635 Set_Associated_Node_For_Itype (Ent, New_Node);
1638 -- Case of no hash table used
1641 E := First_Elmt (Actual_Map);
1642 while Present (E) loop
1643 if Is_Itype (Node (E))
1645 Old_Node = Associated_Node_For_Itype (Node (E))
1647 Set_Associated_Node_For_Itype
1648 (Node (Next_Elmt (E)), New_Node);
1651 E := Next_Elmt (Next_Elmt (E));
1657 -- Recursively copy descendents
1660 (New_Node, Copy_Field_With_Replacement (Field1 (New_Node)));
1662 (New_Node, Copy_Field_With_Replacement (Field2 (New_Node)));
1664 (New_Node, Copy_Field_With_Replacement (Field3 (New_Node)));
1666 (New_Node, Copy_Field_With_Replacement (Field4 (New_Node)));
1668 (New_Node, Copy_Field_With_Replacement (Field5 (New_Node)));
1670 -- Adjust Sloc of new node if necessary
1672 if New_Sloc /= No_Location then
1673 Set_Sloc (New_Node, New_Sloc);
1675 -- If we adjust the Sloc, then we are essentially making
1676 -- a completely new node, so the Comes_From_Source flag
1677 -- should be reset to the proper default value.
1679 Nodes.Table (New_Node).Comes_From_Source :=
1680 Default_Node.Comes_From_Source;
1683 -- If the node is call and has named associations,
1684 -- set the corresponding links in the copy.
1686 if (Nkind (Old_Node) = N_Function_Call
1687 or else Nkind (Old_Node) = N_Entry_Call_Statement
1689 Nkind (Old_Node) = N_Procedure_Call_Statement)
1690 and then Present (First_Named_Actual (Old_Node))
1692 Adjust_Named_Associations (Old_Node, New_Node);
1695 -- Reset First_Real_Statement for Handled_Sequence_Of_Statements.
1696 -- The replacement mechanism applies to entities, and is not used
1697 -- here. Eventually we may need a more general graph-copying
1698 -- routine. For now, do a sequential search to find desired node.
1700 if Nkind (Old_Node) = N_Handled_Sequence_Of_Statements
1701 and then Present (First_Real_Statement (Old_Node))
1704 Old_F : constant Node_Id := First_Real_Statement (Old_Node);
1708 N1 := First (Statements (Old_Node));
1709 N2 := First (Statements (New_Node));
1711 while N1 /= Old_F loop
1716 Set_First_Real_Statement (New_Node, N2);
1721 -- All done, return copied node
1724 end Copy_Node_With_Replacement;
1730 procedure Visit_Elist (E : Elist_Id) is
1734 Elmt := First_Elmt (E);
1736 while Elmt /= No_Elmt loop
1737 Visit_Node (Node (Elmt));
1747 procedure Visit_Field (F : Union_Id; N : Node_Id) is
1749 if F = Union_Id (Empty) then
1752 elsif F in Node_Range then
1754 -- Copy node if it is syntactic, i.e. its parent pointer is
1755 -- set to point to the field that referenced it (certain
1756 -- Itypes will also meet this criterion, which is fine, since
1757 -- these are clearly Itypes that do need to be copied, since
1758 -- we are copying their parent.)
1760 if Parent (Node_Id (F)) = N then
1761 Visit_Node (Node_Id (F));
1764 -- Another case, if we are pointing to an Itype, then we want
1765 -- to copy it if its associated node is somewhere in the tree
1768 -- Note: the exclusion of self-referential copies is just an
1769 -- optimization, since the search of the already copied list
1770 -- would catch it, but it is a common case (Etype pointing
1771 -- to itself for an Itype that is a base type).
1773 elsif Has_Extension (Node_Id (F))
1774 and then Is_Itype (Entity_Id (F))
1775 and then Node_Id (F) /= N
1781 P := Associated_Node_For_Itype (Node_Id (F));
1782 while Present (P) loop
1784 Visit_Node (Node_Id (F));
1791 -- An Itype whose parent is not being copied definitely
1792 -- should NOT be copied, since it does not belong in any
1793 -- sense to the copied subtree.
1799 elsif F in List_Range
1800 and then Parent (List_Id (F)) = N
1802 Visit_List (List_Id (F));
1811 -- Note: we are relying on far too much semantic knowledge in this
1812 -- routine, it really should just do a blind replacement of all
1813 -- fields, or at least a more blind replacement. For example, we
1814 -- do not deal with corresponding record types, and that works
1815 -- because we have no Itypes of task types, but nowhere is there
1816 -- a guarantee that this will always be the case. ???
1818 procedure Visit_Itype (Old_Itype : Entity_Id) is
1819 New_Itype : Entity_Id;
1824 -- Itypes that describe the designated type of access to subprograms
1825 -- have the structure of subprogram declarations, with signatures,
1826 -- etc. Either we duplicate the signatures completely, or choose to
1827 -- share such itypes, which is fine because their elaboration will
1828 -- have no side effects. In any case, this is additional semantic
1829 -- information that seems awkward to have in atree.
1831 if Ekind (Old_Itype) = E_Subprogram_Type then
1835 New_Itype := New_Copy (Old_Itype);
1837 -- The new Itype has all the attributes of the old one, and
1838 -- we just copy the contents of the entity. However, the back-end
1839 -- needs different names for debugging purposes, so we create a
1840 -- new internal name by appending the letter 'c' (copy) to the
1841 -- name of the original.
1843 Get_Name_String (Chars (Old_Itype));
1844 Add_Char_To_Name_Buffer ('c');
1845 Set_Chars (New_Itype, Name_Enter);
1847 -- If our associated node is an entity that has already been copied,
1848 -- then set the associated node of the copy to point to the right
1849 -- copy. If we have copied an Itype that is itself the associated
1850 -- node of some previously copied Itype, then we set the right
1851 -- pointer in the other direction.
1853 if Present (Actual_Map) then
1855 -- Case of hash tables used
1857 if NCT_Hash_Tables_Used then
1859 Ent := NCT_Assoc.Get (Associated_Node_For_Itype (Old_Itype));
1861 if Present (Ent) then
1862 Set_Associated_Node_For_Itype (New_Itype, Ent);
1865 Ent := NCT_Itype_Assoc.Get (Old_Itype);
1866 if Present (Ent) then
1867 Set_Associated_Node_For_Itype (Ent, New_Itype);
1869 -- If the hash table has no association for this Itype and
1870 -- its associated node, enter one now.
1874 (Associated_Node_For_Itype (Old_Itype), New_Itype);
1877 -- Case of hash tables not used
1880 E := First_Elmt (Actual_Map);
1881 while Present (E) loop
1882 if Associated_Node_For_Itype (Old_Itype) = Node (E) then
1883 Set_Associated_Node_For_Itype
1884 (New_Itype, Node (Next_Elmt (E)));
1887 if Is_Type (Node (E))
1889 Old_Itype = Associated_Node_For_Itype (Node (E))
1891 Set_Associated_Node_For_Itype
1892 (Node (Next_Elmt (E)), New_Itype);
1895 E := Next_Elmt (Next_Elmt (E));
1900 if Present (Freeze_Node (New_Itype)) then
1901 Set_Is_Frozen (New_Itype, False);
1902 Set_Freeze_Node (New_Itype, Empty);
1905 -- Add new association to map
1907 if No (Actual_Map) then
1908 Actual_Map := New_Elmt_List;
1911 Append_Elmt (Old_Itype, Actual_Map);
1912 Append_Elmt (New_Itype, Actual_Map);
1914 if NCT_Hash_Tables_Used then
1915 NCT_Assoc.Set (Old_Itype, New_Itype);
1918 NCT_Table_Entries := NCT_Table_Entries + 1;
1920 if NCT_Table_Entries > NCT_Hash_Threshhold then
1921 Build_NCT_Hash_Tables;
1925 -- If a record subtype is simply copied, the entity list will be
1926 -- shared. Thus cloned_Subtype must be set to indicate the sharing.
1928 if Ekind (Old_Itype) = E_Record_Subtype
1929 or else Ekind (Old_Itype) = E_Class_Wide_Subtype
1931 Set_Cloned_Subtype (New_Itype, Old_Itype);
1934 -- Visit descendents that eventually get copied
1936 Visit_Field (Union_Id (Etype (Old_Itype)), Old_Itype);
1938 if Is_Discrete_Type (Old_Itype) then
1939 Visit_Field (Union_Id (Scalar_Range (Old_Itype)), Old_Itype);
1941 elsif Has_Discriminants (Base_Type (Old_Itype)) then
1942 -- ??? This should involve call to Visit_Field
1943 Visit_Elist (Discriminant_Constraint (Old_Itype));
1945 elsif Is_Array_Type (Old_Itype) then
1946 if Present (First_Index (Old_Itype)) then
1947 Visit_Field (Union_Id (List_Containing
1948 (First_Index (Old_Itype))),
1952 if Is_Packed (Old_Itype) then
1953 Visit_Field (Union_Id (Packed_Array_Type (Old_Itype)),
1963 procedure Visit_List (L : List_Id) is
1966 if L /= No_List then
1969 while Present (N) loop
1980 procedure Visit_Node (N : Node_Or_Entity_Id) is
1982 -- Start of processing for Visit_Node
1985 -- Handle case of an Itype, which must be copied
1987 if Has_Extension (N)
1988 and then Is_Itype (N)
1990 -- Nothing to do if already in the list. This can happen with an
1991 -- Itype entity that appears more than once in the tree.
1992 -- Note that we do not want to visit descendents in this case.
1994 -- Test for already in list when hash table is used
1996 if NCT_Hash_Tables_Used then
1997 if Present (NCT_Assoc.Get (Entity_Id (N))) then
2001 -- Test for already in list when hash table not used
2007 if Present (Actual_Map) then
2008 E := First_Elmt (Actual_Map);
2009 while Present (E) loop
2010 if Node (E) = N then
2013 E := Next_Elmt (Next_Elmt (E));
2023 -- Visit descendents
2025 Visit_Field (Field1 (N), N);
2026 Visit_Field (Field2 (N), N);
2027 Visit_Field (Field3 (N), N);
2028 Visit_Field (Field4 (N), N);
2029 Visit_Field (Field5 (N), N);
2032 -- Start of processing for New_Copy_Tree
2037 -- See if we should use hash table
2039 if No (Actual_Map) then
2040 NCT_Hash_Tables_Used := False;
2047 NCT_Table_Entries := 0;
2049 Elmt := First_Elmt (Actual_Map);
2050 while Present (Elmt) loop
2051 NCT_Table_Entries := NCT_Table_Entries + 1;
2056 if NCT_Table_Entries > NCT_Hash_Threshhold then
2057 Build_NCT_Hash_Tables;
2059 NCT_Hash_Tables_Used := False;
2064 -- Hash table set up if required, now start phase one by visiting
2065 -- top node (we will recursively visit the descendents).
2067 Visit_Node (Source);
2069 -- Now the second phase of the copy can start. First we process
2070 -- all the mapped entities, copying their descendents.
2072 if Present (Actual_Map) then
2075 New_Itype : Entity_Id;
2077 Elmt := First_Elmt (Actual_Map);
2078 while Present (Elmt) loop
2080 New_Itype := Node (Elmt);
2081 Copy_Itype_With_Replacement (New_Itype);
2087 -- Now we can copy the actual tree
2089 return Copy_Node_With_Replacement (Source);
2097 (New_Node_Kind : Node_Kind;
2098 New_Sloc : Source_Ptr) return Entity_Id
2103 pragma Assert (New_Node_Kind in N_Entity);
2105 Ent := Allocate_Initialize_Node (Empty, With_Extension => True);
2107 -- If this is a node with a real location and we are generating
2108 -- source nodes, then reset Current_Error_Node. This is useful
2109 -- if we bomb during parsing to get a error location for the bomb.
2111 if Default_Node.Comes_From_Source and then New_Sloc > No_Location then
2112 Current_Error_Node := Ent;
2115 Nodes.Table (Ent).Nkind := New_Node_Kind;
2116 Nodes.Table (Ent).Sloc := New_Sloc;
2117 pragma Debug (New_Node_Debugging_Output (Ent));
2127 (New_Node_Kind : Node_Kind;
2128 New_Sloc : Source_Ptr) return Node_Id
2133 pragma Assert (New_Node_Kind not in N_Entity);
2134 Nod := Allocate_Initialize_Node (Empty, With_Extension => False);
2135 Nodes.Table (Nod).Nkind := New_Node_Kind;
2136 Nodes.Table (Nod).Sloc := New_Sloc;
2137 pragma Debug (New_Node_Debugging_Output (Nod));
2139 -- If this is a node with a real location and we are generating source
2140 -- nodes, then reset Current_Error_Node. This is useful if we bomb
2141 -- during parsing to get an error location for the bomb.
2143 if Default_Node.Comes_From_Source and then New_Sloc > No_Location then
2144 Current_Error_Node := Nod;
2150 -------------------------
2151 -- New_Node_Breakpoint --
2152 -------------------------
2154 procedure nn is -- New_Node_Breakpoint
2156 Write_Str ("Watched node ");
2157 Write_Int (Int (Watch_Node));
2158 Write_Str (" created");
2162 -------------------------------
2163 -- New_Node_Debugging_Output --
2164 -------------------------------
2166 procedure nnd (N : Node_Id) is -- New_Node_Debugging_Output
2167 Node_Is_Watched : constant Boolean := N = Watch_Node;
2170 if Debug_Flag_N or else Node_Is_Watched then
2171 Write_Str ("Allocate ");
2173 if Nkind (N) in N_Entity then
2174 Write_Str ("entity");
2179 Write_Str (", Id = ");
2180 Write_Int (Int (N));
2182 Write_Location (Sloc (N));
2184 Write_Str (Node_Kind'Image (Nkind (N)));
2187 if Node_Is_Watched then
2188 New_Node_Breakpoint;
2197 function Nkind (N : Node_Id) return Node_Kind is
2199 return Nodes.Table (N).Nkind;
2209 V2 : Node_Kind) return Boolean
2212 return Nkind_In (Nkind (N), V1, V2);
2219 V3 : Node_Kind) return Boolean
2222 return Nkind_In (Nkind (N), V1, V2, V3);
2230 V4 : Node_Kind) return Boolean
2233 return Nkind_In (Nkind (N), V1, V2, V3, V4);
2242 V5 : Node_Kind) return Boolean
2245 return Nkind_In (Nkind (N), V1, V2, V3, V4, V5);
2255 V6 : Node_Kind) return Boolean
2258 return Nkind_In (Nkind (N), V1, V2, V3, V4, V5, V6);
2269 V7 : Node_Kind) return Boolean
2272 return Nkind_In (Nkind (N), V1, V2, V3, V4, V5, V6, V7);
2284 V8 : Node_Kind) return Boolean
2287 return Nkind_In (Nkind (N), V1, V2, V3, V4, V5, V6, V7, V8);
2294 function No (N : Node_Id) return Boolean is
2303 function Nodes_Address return System.Address is
2305 return Nodes.Table (First_Node_Id)'Address;
2312 function Num_Nodes return Nat is
2321 function Original_Node (Node : Node_Id) return Node_Id is
2323 return Orig_Nodes.Table (Node);
2330 function Paren_Count (N : Node_Id) return Nat is
2334 pragma Assert (N <= Nodes.Last);
2336 if Nodes.Table (N).Pflag1 then
2340 if Nodes.Table (N).Pflag2 then
2344 -- Value of 0,1,2 returned as is
2349 -- Value of 3 means we search the table, and we must find an entry
2352 for J in Paren_Counts.First .. Paren_Counts.Last loop
2353 if N = Paren_Counts.Table (J).Nod then
2354 return Paren_Counts.Table (J).Count;
2358 raise Program_Error;
2366 function Parent (N : Node_Id) return Node_Id is
2368 if Is_List_Member (N) then
2369 return Parent (List_Containing (N));
2371 return Node_Id (Nodes.Table (N).Link);
2379 function Present (N : Node_Id) return Boolean is
2384 --------------------------------
2385 -- Preserve_Comes_From_Source --
2386 --------------------------------
2388 procedure Preserve_Comes_From_Source (NewN, OldN : Node_Id) is
2390 Nodes.Table (NewN).Comes_From_Source :=
2391 Nodes.Table (OldN).Comes_From_Source;
2392 end Preserve_Comes_From_Source;
2398 function Relocate_Node (Source : Node_Id) return Node_Id is
2406 New_Node := New_Copy (Source);
2407 Fix_Parents (Source, New_Node);
2409 -- We now set the parent of the new node to be the same as the
2410 -- parent of the source. Almost always this parent will be
2411 -- replaced by a new value when the relocated node is reattached
2412 -- to the tree, but by doing it now, we ensure that this node is
2413 -- not even temporarily disconnected from the tree. Note that this
2414 -- does not happen free, because in the list case, the parent does
2417 Set_Parent (New_Node, Parent (Source));
2419 -- If the node being relocated was a rewriting of some original
2420 -- node, then the relocated node has the same original node.
2422 if Orig_Nodes.Table (Source) /= Source then
2423 Orig_Nodes.Table (New_Node) := Orig_Nodes.Table (Source);
2433 procedure Replace (Old_Node, New_Node : Node_Id) is
2434 Old_Post : constant Boolean := Nodes.Table (Old_Node).Error_Posted;
2435 Old_CFS : constant Boolean := Nodes.Table (Old_Node).Comes_From_Source;
2439 (not Has_Extension (Old_Node)
2440 and not Has_Extension (New_Node)
2441 and not Nodes.Table (New_Node).In_List);
2443 -- Do copy, preserving link and in list status and comes from source
2445 Copy_Node (Source => New_Node, Destination => Old_Node);
2446 Nodes.Table (Old_Node).Comes_From_Source := Old_CFS;
2447 Nodes.Table (Old_Node).Error_Posted := Old_Post;
2449 -- Fix parents of substituted node, since it has changed identity
2451 Fix_Parents (New_Node, Old_Node);
2453 -- Since we are doing a replace, we assume that the original node
2454 -- is intended to become the new replaced node. The call would be
2455 -- to Rewrite if there were an intention to save the original node.
2457 Orig_Nodes.Table (Old_Node) := Old_Node;
2464 procedure Rewrite (Old_Node, New_Node : Node_Id) is
2465 Old_Error_P : constant Boolean := Nodes.Table (Old_Node).Error_Posted;
2466 -- This fields is always preserved in the new node
2468 Old_Paren_Count : Nat;
2469 Old_Must_Not_Freeze : Boolean;
2470 -- These fields are preserved in the new node only if the new node
2471 -- and the old node are both subexpression nodes.
2473 -- Note: it is a violation of abstraction levels for Must_Not_Freeze
2474 -- to be referenced like this. ???
2480 (not Has_Extension (Old_Node)
2481 and not Has_Extension (New_Node)
2482 and not Nodes.Table (New_Node).In_List);
2484 if Nkind (Old_Node) in N_Subexpr then
2485 Old_Paren_Count := Paren_Count (Old_Node);
2486 Old_Must_Not_Freeze := Must_Not_Freeze (Old_Node);
2488 Old_Paren_Count := 0;
2489 Old_Must_Not_Freeze := False;
2492 -- Allocate a new node, to be used to preserve the original contents
2493 -- of the Old_Node, for possible later retrival by Original_Node and
2494 -- make an entry in the Orig_Nodes table. This is only done if we have
2495 -- not already rewritten the node, as indicated by an Orig_Nodes entry
2496 -- that does not reference the Old_Node.
2498 if Orig_Nodes.Table (Old_Node) = Old_Node then
2499 Sav_Node := New_Copy (Old_Node);
2500 Orig_Nodes.Table (Sav_Node) := Sav_Node;
2501 Orig_Nodes.Table (Old_Node) := Sav_Node;
2504 -- Copy substitute node into place, preserving old fields as required
2506 Copy_Node (Source => New_Node, Destination => Old_Node);
2507 Nodes.Table (Old_Node).Error_Posted := Old_Error_P;
2509 if Nkind (New_Node) in N_Subexpr then
2510 Set_Paren_Count (Old_Node, Old_Paren_Count);
2511 Set_Must_Not_Freeze (Old_Node, Old_Must_Not_Freeze);
2514 Fix_Parents (New_Node, Old_Node);
2521 procedure Set_Analyzed (N : Node_Id; Val : Boolean := True) is
2523 Nodes.Table (N).Analyzed := Val;
2526 ---------------------------
2527 -- Set_Comes_From_Source --
2528 ---------------------------
2530 procedure Set_Comes_From_Source (N : Node_Id; Val : Boolean) is
2532 pragma Assert (N <= Nodes.Last);
2533 Nodes.Table (N).Comes_From_Source := Val;
2534 end Set_Comes_From_Source;
2536 -----------------------------------
2537 -- Set_Comes_From_Source_Default --
2538 -----------------------------------
2540 procedure Set_Comes_From_Source_Default (Default : Boolean) is
2542 Default_Node.Comes_From_Source := Default;
2543 end Set_Comes_From_Source_Default;
2549 procedure Set_Ekind (E : Entity_Id; Val : Entity_Kind) is
2551 pragma Assert (Nkind (E) in N_Entity);
2552 Nodes.Table (E + 1).Nkind := E_To_N (Val);
2555 ----------------------
2556 -- Set_Error_Posted --
2557 ----------------------
2559 procedure Set_Error_Posted (N : Node_Id; Val : Boolean := True) is
2561 Nodes.Table (N).Error_Posted := Val;
2562 end Set_Error_Posted;
2564 ---------------------
2565 -- Set_Paren_Count --
2566 ---------------------
2568 procedure Set_Paren_Count (N : Node_Id; Val : Nat) is
2570 pragma Assert (Nkind (N) in N_Subexpr);
2572 -- Value of 0,1,2 stored as is
2575 Nodes.Table (N).Pflag1 := (Val mod 2 /= 0);
2576 Nodes.Table (N).Pflag2 := (Val = 2);
2578 -- Value of 3 or greater stores 3 in node and makes table entry
2581 Nodes.Table (N).Pflag1 := True;
2582 Nodes.Table (N).Pflag2 := True;
2584 for J in Paren_Counts.First .. Paren_Counts.Last loop
2585 if N = Paren_Counts.Table (J).Nod then
2586 Paren_Counts.Table (J).Count := Val;
2591 Paren_Counts.Append ((Nod => N, Count => Val));
2593 end Set_Paren_Count;
2599 procedure Set_Parent (N : Node_Id; Val : Node_Id) is
2601 pragma Assert (not Nodes.Table (N).In_List);
2602 Nodes.Table (N).Link := Union_Id (Val);
2609 procedure Set_Sloc (N : Node_Id; Val : Source_Ptr) is
2611 Nodes.Table (N).Sloc := Val;
2618 function Sloc (N : Node_Id) return Source_Ptr is
2620 return Nodes.Table (N).Sloc;
2627 function Traverse_Func (Node : Node_Id) return Traverse_Final_Result is
2629 function Traverse_Field
2632 FN : Field_Num) return Traverse_Final_Result;
2633 -- Fld is one of the fields of Nod. If the field points to syntactic
2634 -- node or list, then this node or list is traversed, and the result is
2635 -- the result of this traversal. Otherwise a value of True is returned
2636 -- with no processing. FN is the number of the field (1 .. 5).
2638 --------------------
2639 -- Traverse_Field --
2640 --------------------
2642 function Traverse_Field
2645 FN : Field_Num) return Traverse_Final_Result
2648 if Fld = Union_Id (Empty) then
2651 -- Descendent is a node
2653 elsif Fld in Node_Range then
2655 -- Traverse descendent that is syntactic subtree node
2657 if Is_Syntactic_Field (Nkind (Nod), FN) then
2658 return Traverse_Func (Node_Id (Fld));
2660 -- Node that is not a syntactic subtree
2666 -- Descendent is a list
2668 elsif Fld in List_Range then
2670 -- Traverse descendent that is a syntactic subtree list
2672 if Is_Syntactic_Field (Nkind (Nod), FN) then
2674 Elmt : Node_Id := First (List_Id (Fld));
2676 while Present (Elmt) loop
2677 if Traverse_Func (Elmt) = Abandon then
2687 -- List that is not a syntactic subtree
2693 -- Field was not a node or a list
2700 Cur_Node : Node_Id := Node;
2702 -- Start of processing for Traverse_Func
2705 -- We walk Field2 last, and if it is a node, we eliminate the tail
2706 -- recursion by jumping back to this label. This is because Field2 is
2707 -- where the Left_Opnd field of N_Op_Concat is stored, and in practice
2708 -- concatenations are sometimes deeply nested, as in X1&X2&...&XN. This
2709 -- trick prevents us from running out of memory in that case. We don't
2710 -- bother eliminating the tail recursion if Field2 is a list.
2714 case Process (Cur_Node) is
2725 Cur_Node := Original_Node (Cur_Node);
2728 if Traverse_Field (Cur_Node, Field1 (Cur_Node), 1) = Abandon
2729 or else -- skip Field2 here
2730 Traverse_Field (Cur_Node, Field3 (Cur_Node), 3) = Abandon
2732 Traverse_Field (Cur_Node, Field4 (Cur_Node), 4) = Abandon
2734 Traverse_Field (Cur_Node, Field5 (Cur_Node), 5) = Abandon
2739 if Field2 (Cur_Node) not in Node_Range then
2740 return Traverse_Field (Cur_Node, Field2 (Cur_Node), 2);
2741 elsif Is_Syntactic_Field (Nkind (Cur_Node), 2) and then
2742 Field2 (Cur_Node) /= Empty_List_Or_Node
2744 -- Here is the tail recursion step, we reset Cur_Node and jump
2745 -- back to the start of the procedure, which has the same
2746 -- semantic effect as a call.
2748 Cur_Node := Node_Id (Field2 (Cur_Node));
2759 procedure Traverse_Proc (Node : Node_Id) is
2760 function Traverse is new Traverse_Func (Process);
2761 Discard : Traverse_Final_Result;
2762 pragma Warnings (Off, Discard);
2764 Discard := Traverse (Node);
2771 procedure Tree_Read is
2773 Tree_Read_Int (Node_Count);
2775 Orig_Nodes.Tree_Read;
2776 Paren_Counts.Tree_Read;
2783 procedure Tree_Write is
2785 Tree_Write_Int (Node_Count);
2787 Orig_Nodes.Tree_Write;
2788 Paren_Counts.Tree_Write;
2791 ------------------------------
2792 -- Unchecked Access Package --
2793 ------------------------------
2795 package body Unchecked_Access is
2797 function Field1 (N : Node_Id) return Union_Id is
2799 pragma Assert (N <= Nodes.Last);
2800 return Nodes.Table (N).Field1;
2803 function Field2 (N : Node_Id) return Union_Id is
2805 pragma Assert (N <= Nodes.Last);
2806 return Nodes.Table (N).Field2;
2809 function Field3 (N : Node_Id) return Union_Id is
2811 pragma Assert (N <= Nodes.Last);
2812 return Nodes.Table (N).Field3;
2815 function Field4 (N : Node_Id) return Union_Id is
2817 pragma Assert (N <= Nodes.Last);
2818 return Nodes.Table (N).Field4;
2821 function Field5 (N : Node_Id) return Union_Id is
2823 pragma Assert (N <= Nodes.Last);
2824 return Nodes.Table (N).Field5;
2827 function Field6 (N : Node_Id) return Union_Id is
2829 pragma Assert (Nkind (N) in N_Entity);
2830 return Nodes.Table (N + 1).Field6;
2833 function Field7 (N : Node_Id) return Union_Id is
2835 pragma Assert (Nkind (N) in N_Entity);
2836 return Nodes.Table (N + 1).Field7;
2839 function Field8 (N : Node_Id) return Union_Id is
2841 pragma Assert (Nkind (N) in N_Entity);
2842 return Nodes.Table (N + 1).Field8;
2845 function Field9 (N : Node_Id) return Union_Id is
2847 pragma Assert (Nkind (N) in N_Entity);
2848 return Nodes.Table (N + 1).Field9;
2851 function Field10 (N : Node_Id) return Union_Id is
2853 pragma Assert (Nkind (N) in N_Entity);
2854 return Nodes.Table (N + 1).Field10;
2857 function Field11 (N : Node_Id) return Union_Id is
2859 pragma Assert (Nkind (N) in N_Entity);
2860 return Nodes.Table (N + 1).Field11;
2863 function Field12 (N : Node_Id) return Union_Id is
2865 pragma Assert (Nkind (N) in N_Entity);
2866 return Nodes.Table (N + 1).Field12;
2869 function Field13 (N : Node_Id) return Union_Id is
2871 pragma Assert (Nkind (N) in N_Entity);
2872 return Nodes.Table (N + 2).Field6;
2875 function Field14 (N : Node_Id) return Union_Id is
2877 pragma Assert (Nkind (N) in N_Entity);
2878 return Nodes.Table (N + 2).Field7;
2881 function Field15 (N : Node_Id) return Union_Id is
2883 pragma Assert (Nkind (N) in N_Entity);
2884 return Nodes.Table (N + 2).Field8;
2887 function Field16 (N : Node_Id) return Union_Id is
2889 pragma Assert (Nkind (N) in N_Entity);
2890 return Nodes.Table (N + 2).Field9;
2893 function Field17 (N : Node_Id) return Union_Id is
2895 pragma Assert (Nkind (N) in N_Entity);
2896 return Nodes.Table (N + 2).Field10;
2899 function Field18 (N : Node_Id) return Union_Id is
2901 pragma Assert (Nkind (N) in N_Entity);
2902 return Nodes.Table (N + 2).Field11;
2905 function Field19 (N : Node_Id) return Union_Id is
2907 pragma Assert (Nkind (N) in N_Entity);
2908 return Nodes.Table (N + 3).Field6;
2911 function Field20 (N : Node_Id) return Union_Id is
2913 pragma Assert (Nkind (N) in N_Entity);
2914 return Nodes.Table (N + 3).Field7;
2917 function Field21 (N : Node_Id) return Union_Id is
2919 pragma Assert (Nkind (N) in N_Entity);
2920 return Nodes.Table (N + 3).Field8;
2923 function Field22 (N : Node_Id) return Union_Id is
2925 pragma Assert (Nkind (N) in N_Entity);
2926 return Nodes.Table (N + 3).Field9;
2929 function Field23 (N : Node_Id) return Union_Id is
2931 pragma Assert (Nkind (N) in N_Entity);
2932 return Nodes.Table (N + 3).Field10;
2935 function Field24 (N : Node_Id) return Union_Id is
2937 pragma Assert (Nkind (N) in N_Entity);
2938 return Nodes.Table (N + 4).Field6;
2941 function Field25 (N : Node_Id) return Union_Id is
2943 pragma Assert (Nkind (N) in N_Entity);
2944 return Nodes.Table (N + 4).Field7;
2947 function Field26 (N : Node_Id) return Union_Id is
2949 pragma Assert (Nkind (N) in N_Entity);
2950 return Nodes.Table (N + 4).Field8;
2953 function Field27 (N : Node_Id) return Union_Id is
2955 pragma Assert (Nkind (N) in N_Entity);
2956 return Nodes.Table (N + 4).Field9;
2959 function Field28 (N : Node_Id) return Union_Id is
2961 pragma Assert (Nkind (N) in N_Entity);
2962 return Nodes.Table (N + 4).Field10;
2965 function Node1 (N : Node_Id) return Node_Id is
2967 pragma Assert (N <= Nodes.Last);
2968 return Node_Id (Nodes.Table (N).Field1);
2971 function Node2 (N : Node_Id) return Node_Id is
2973 pragma Assert (N <= Nodes.Last);
2974 return Node_Id (Nodes.Table (N).Field2);
2977 function Node3 (N : Node_Id) return Node_Id is
2979 pragma Assert (N <= Nodes.Last);
2980 return Node_Id (Nodes.Table (N).Field3);
2983 function Node4 (N : Node_Id) return Node_Id is
2985 pragma Assert (N <= Nodes.Last);
2986 return Node_Id (Nodes.Table (N).Field4);
2989 function Node5 (N : Node_Id) return Node_Id is
2991 pragma Assert (N <= Nodes.Last);
2992 return Node_Id (Nodes.Table (N).Field5);
2995 function Node6 (N : Node_Id) return Node_Id is
2997 pragma Assert (Nkind (N) in N_Entity);
2998 return Node_Id (Nodes.Table (N + 1).Field6);
3001 function Node7 (N : Node_Id) return Node_Id is
3003 pragma Assert (Nkind (N) in N_Entity);
3004 return Node_Id (Nodes.Table (N + 1).Field7);
3007 function Node8 (N : Node_Id) return Node_Id is
3009 pragma Assert (Nkind (N) in N_Entity);
3010 return Node_Id (Nodes.Table (N + 1).Field8);
3013 function Node9 (N : Node_Id) return Node_Id is
3015 pragma Assert (Nkind (N) in N_Entity);
3016 return Node_Id (Nodes.Table (N + 1).Field9);
3019 function Node10 (N : Node_Id) return Node_Id is
3021 pragma Assert (Nkind (N) in N_Entity);
3022 return Node_Id (Nodes.Table (N + 1).Field10);
3025 function Node11 (N : Node_Id) return Node_Id is
3027 pragma Assert (Nkind (N) in N_Entity);
3028 return Node_Id (Nodes.Table (N + 1).Field11);
3031 function Node12 (N : Node_Id) return Node_Id is
3033 pragma Assert (Nkind (N) in N_Entity);
3034 return Node_Id (Nodes.Table (N + 1).Field12);
3037 function Node13 (N : Node_Id) return Node_Id is
3039 pragma Assert (Nkind (N) in N_Entity);
3040 return Node_Id (Nodes.Table (N + 2).Field6);
3043 function Node14 (N : Node_Id) return Node_Id is
3045 pragma Assert (Nkind (N) in N_Entity);
3046 return Node_Id (Nodes.Table (N + 2).Field7);
3049 function Node15 (N : Node_Id) return Node_Id is
3051 pragma Assert (Nkind (N) in N_Entity);
3052 return Node_Id (Nodes.Table (N + 2).Field8);
3055 function Node16 (N : Node_Id) return Node_Id is
3057 pragma Assert (Nkind (N) in N_Entity);
3058 return Node_Id (Nodes.Table (N + 2).Field9);
3061 function Node17 (N : Node_Id) return Node_Id is
3063 pragma Assert (Nkind (N) in N_Entity);
3064 return Node_Id (Nodes.Table (N + 2).Field10);
3067 function Node18 (N : Node_Id) return Node_Id is
3069 pragma Assert (Nkind (N) in N_Entity);
3070 return Node_Id (Nodes.Table (N + 2).Field11);
3073 function Node19 (N : Node_Id) return Node_Id is
3075 pragma Assert (Nkind (N) in N_Entity);
3076 return Node_Id (Nodes.Table (N + 3).Field6);
3079 function Node20 (N : Node_Id) return Node_Id is
3081 pragma Assert (Nkind (N) in N_Entity);
3082 return Node_Id (Nodes.Table (N + 3).Field7);
3085 function Node21 (N : Node_Id) return Node_Id is
3087 pragma Assert (Nkind (N) in N_Entity);
3088 return Node_Id (Nodes.Table (N + 3).Field8);
3091 function Node22 (N : Node_Id) return Node_Id is
3093 pragma Assert (Nkind (N) in N_Entity);
3094 return Node_Id (Nodes.Table (N + 3).Field9);
3097 function Node23 (N : Node_Id) return Node_Id is
3099 pragma Assert (Nkind (N) in N_Entity);
3100 return Node_Id (Nodes.Table (N + 3).Field10);
3103 function Node24 (N : Node_Id) return Node_Id is
3105 pragma Assert (Nkind (N) in N_Entity);
3106 return Node_Id (Nodes.Table (N + 4).Field6);
3109 function Node25 (N : Node_Id) return Node_Id is
3111 pragma Assert (Nkind (N) in N_Entity);
3112 return Node_Id (Nodes.Table (N + 4).Field7);
3115 function Node26 (N : Node_Id) return Node_Id is
3117 pragma Assert (Nkind (N) in N_Entity);
3118 return Node_Id (Nodes.Table (N + 4).Field8);
3121 function Node27 (N : Node_Id) return Node_Id is
3123 pragma Assert (Nkind (N) in N_Entity);
3124 return Node_Id (Nodes.Table (N + 4).Field9);
3127 function Node28 (N : Node_Id) return Node_Id is
3129 pragma Assert (Nkind (N) in N_Entity);
3130 return Node_Id (Nodes.Table (N + 4).Field10);
3133 function List1 (N : Node_Id) return List_Id is
3135 pragma Assert (N <= Nodes.Last);
3136 return List_Id (Nodes.Table (N).Field1);
3139 function List2 (N : Node_Id) return List_Id is
3141 pragma Assert (N <= Nodes.Last);
3142 return List_Id (Nodes.Table (N).Field2);
3145 function List3 (N : Node_Id) return List_Id is
3147 pragma Assert (N <= Nodes.Last);
3148 return List_Id (Nodes.Table (N).Field3);
3151 function List4 (N : Node_Id) return List_Id is
3153 pragma Assert (N <= Nodes.Last);
3154 return List_Id (Nodes.Table (N).Field4);
3157 function List5 (N : Node_Id) return List_Id is
3159 pragma Assert (N <= Nodes.Last);
3160 return List_Id (Nodes.Table (N).Field5);
3163 function List10 (N : Node_Id) return List_Id is
3165 pragma Assert (Nkind (N) in N_Entity);
3166 return List_Id (Nodes.Table (N + 1).Field10);
3169 function List14 (N : Node_Id) return List_Id is
3171 pragma Assert (Nkind (N) in N_Entity);
3172 return List_Id (Nodes.Table (N + 2).Field7);
3175 function Elist1 (N : Node_Id) return Elist_Id is
3176 pragma Assert (N <= Nodes.Last);
3177 Value : constant Union_Id := Nodes.Table (N).Field1;
3182 return Elist_Id (Value);
3186 function Elist2 (N : Node_Id) return Elist_Id is
3187 pragma Assert (N <= Nodes.Last);
3188 Value : constant Union_Id := Nodes.Table (N).Field2;
3193 return Elist_Id (Value);
3197 function Elist3 (N : Node_Id) return Elist_Id is
3198 pragma Assert (N <= Nodes.Last);
3199 Value : constant Union_Id := Nodes.Table (N).Field3;
3204 return Elist_Id (Value);
3208 function Elist4 (N : Node_Id) return Elist_Id is
3209 pragma Assert (N <= Nodes.Last);
3210 Value : constant Union_Id := Nodes.Table (N).Field4;
3215 return Elist_Id (Value);
3219 function Elist8 (N : Node_Id) return Elist_Id is
3220 pragma Assert (Nkind (N) in N_Entity);
3221 Value : constant Union_Id := Nodes.Table (N + 1).Field8;
3226 return Elist_Id (Value);
3230 function Elist13 (N : Node_Id) return Elist_Id is
3231 pragma Assert (Nkind (N) in N_Entity);
3232 Value : constant Union_Id := Nodes.Table (N + 2).Field6;
3237 return Elist_Id (Value);
3241 function Elist15 (N : Node_Id) return Elist_Id is
3242 pragma Assert (Nkind (N) in N_Entity);
3243 Value : constant Union_Id := Nodes.Table (N + 2).Field8;
3248 return Elist_Id (Value);
3252 function Elist16 (N : Node_Id) return Elist_Id is
3253 pragma Assert (Nkind (N) in N_Entity);
3254 Value : constant Union_Id := Nodes.Table (N + 2).Field9;
3259 return Elist_Id (Value);
3263 function Elist18 (N : Node_Id) return Elist_Id is
3264 pragma Assert (Nkind (N) in N_Entity);
3265 Value : constant Union_Id := Nodes.Table (N + 2).Field11;
3270 return Elist_Id (Value);
3274 function Elist21 (N : Node_Id) return Elist_Id is
3275 pragma Assert (Nkind (N) in N_Entity);
3276 Value : constant Union_Id := Nodes.Table (N + 3).Field8;
3281 return Elist_Id (Value);
3285 function Elist23 (N : Node_Id) return Elist_Id is
3286 pragma Assert (Nkind (N) in N_Entity);
3287 Value : constant Union_Id := Nodes.Table (N + 3).Field10;
3292 return Elist_Id (Value);
3296 function Elist25 (N : Node_Id) return Elist_Id is
3297 pragma Assert (Nkind (N) in N_Entity);
3298 Value : constant Union_Id := Nodes.Table (N + 4).Field7;
3303 return Elist_Id (Value);
3307 function Name1 (N : Node_Id) return Name_Id is
3309 pragma Assert (N <= Nodes.Last);
3310 return Name_Id (Nodes.Table (N).Field1);
3313 function Name2 (N : Node_Id) return Name_Id is
3315 pragma Assert (N <= Nodes.Last);
3316 return Name_Id (Nodes.Table (N).Field2);
3319 function Str3 (N : Node_Id) return String_Id is
3321 pragma Assert (N <= Nodes.Last);
3322 return String_Id (Nodes.Table (N).Field3);
3325 function Uint2 (N : Node_Id) return Uint is
3326 pragma Assert (N <= Nodes.Last);
3327 U : constant Union_Id := Nodes.Table (N).Field2;
3332 return From_Union (U);
3336 function Uint3 (N : Node_Id) return Uint is
3337 pragma Assert (N <= Nodes.Last);
3338 U : constant Union_Id := Nodes.Table (N).Field3;
3343 return From_Union (U);
3347 function Uint4 (N : Node_Id) return Uint is
3348 pragma Assert (N <= Nodes.Last);
3349 U : constant Union_Id := Nodes.Table (N).Field4;
3354 return From_Union (U);
3358 function Uint5 (N : Node_Id) return Uint is
3359 pragma Assert (N <= Nodes.Last);
3360 U : constant Union_Id := Nodes.Table (N).Field5;
3365 return From_Union (U);
3369 function Uint8 (N : Node_Id) return Uint is
3370 pragma Assert (Nkind (N) in N_Entity);
3371 U : constant Union_Id := Nodes.Table (N + 1).Field8;
3376 return From_Union (U);
3380 function Uint9 (N : Node_Id) return Uint is
3381 pragma Assert (Nkind (N) in N_Entity);
3382 U : constant Union_Id := Nodes.Table (N + 1).Field9;
3387 return From_Union (U);
3391 function Uint10 (N : Node_Id) return Uint is
3392 pragma Assert (Nkind (N) in N_Entity);
3393 U : constant Union_Id := Nodes.Table (N + 1).Field10;
3398 return From_Union (U);
3402 function Uint11 (N : Node_Id) return Uint is
3403 pragma Assert (Nkind (N) in N_Entity);
3404 U : constant Union_Id := Nodes.Table (N + 1).Field11;
3409 return From_Union (U);
3413 function Uint12 (N : Node_Id) return Uint is
3414 pragma Assert (Nkind (N) in N_Entity);
3415 U : constant Union_Id := Nodes.Table (N + 1).Field12;
3420 return From_Union (U);
3424 function Uint13 (N : Node_Id) return Uint is
3425 pragma Assert (Nkind (N) in N_Entity);
3426 U : constant Union_Id := Nodes.Table (N + 2).Field6;
3431 return From_Union (U);
3435 function Uint14 (N : Node_Id) return Uint is
3436 pragma Assert (Nkind (N) in N_Entity);
3437 U : constant Union_Id := Nodes.Table (N + 2).Field7;
3442 return From_Union (U);
3446 function Uint15 (N : Node_Id) return Uint is
3447 pragma Assert (Nkind (N) in N_Entity);
3448 U : constant Union_Id := Nodes.Table (N + 2).Field8;
3453 return From_Union (U);
3457 function Uint16 (N : Node_Id) return Uint is
3458 pragma Assert (Nkind (N) in N_Entity);
3459 U : constant Union_Id := Nodes.Table (N + 2).Field9;
3464 return From_Union (U);
3468 function Uint17 (N : Node_Id) return Uint is
3469 pragma Assert (Nkind (N) in N_Entity);
3470 U : constant Union_Id := Nodes.Table (N + 2).Field10;
3475 return From_Union (U);
3479 function Uint22 (N : Node_Id) return Uint is
3480 pragma Assert (Nkind (N) in N_Entity);
3481 U : constant Union_Id := Nodes.Table (N + 3).Field9;
3486 return From_Union (U);
3490 function Ureal3 (N : Node_Id) return Ureal is
3492 pragma Assert (N <= Nodes.Last);
3493 return From_Union (Nodes.Table (N).Field3);
3496 function Ureal18 (N : Node_Id) return Ureal is
3498 pragma Assert (Nkind (N) in N_Entity);
3499 return From_Union (Nodes.Table (N + 2).Field11);
3502 function Ureal21 (N : Node_Id) return Ureal is
3504 pragma Assert (Nkind (N) in N_Entity);
3505 return From_Union (Nodes.Table (N + 3).Field8);
3508 function Flag4 (N : Node_Id) return Boolean is
3510 pragma Assert (N <= Nodes.Last);
3511 return Nodes.Table (N).Flag4;
3514 function Flag5 (N : Node_Id) return Boolean is
3516 pragma Assert (N <= Nodes.Last);
3517 return Nodes.Table (N).Flag5;
3520 function Flag6 (N : Node_Id) return Boolean is
3522 pragma Assert (N <= Nodes.Last);
3523 return Nodes.Table (N).Flag6;
3526 function Flag7 (N : Node_Id) return Boolean is
3528 pragma Assert (N <= Nodes.Last);
3529 return Nodes.Table (N).Flag7;
3532 function Flag8 (N : Node_Id) return Boolean is
3534 pragma Assert (N <= Nodes.Last);
3535 return Nodes.Table (N).Flag8;
3538 function Flag9 (N : Node_Id) return Boolean is
3540 pragma Assert (N <= Nodes.Last);
3541 return Nodes.Table (N).Flag9;
3544 function Flag10 (N : Node_Id) return Boolean is
3546 pragma Assert (N <= Nodes.Last);
3547 return Nodes.Table (N).Flag10;
3550 function Flag11 (N : Node_Id) return Boolean is
3552 pragma Assert (N <= Nodes.Last);
3553 return Nodes.Table (N).Flag11;
3556 function Flag12 (N : Node_Id) return Boolean is
3558 pragma Assert (N <= Nodes.Last);
3559 return Nodes.Table (N).Flag12;
3562 function Flag13 (N : Node_Id) return Boolean is
3564 pragma Assert (N <= Nodes.Last);
3565 return Nodes.Table (N).Flag13;
3568 function Flag14 (N : Node_Id) return Boolean is
3570 pragma Assert (N <= Nodes.Last);
3571 return Nodes.Table (N).Flag14;
3574 function Flag15 (N : Node_Id) return Boolean is
3576 pragma Assert (N <= Nodes.Last);
3577 return Nodes.Table (N).Flag15;
3580 function Flag16 (N : Node_Id) return Boolean is
3582 pragma Assert (N <= Nodes.Last);
3583 return Nodes.Table (N).Flag16;
3586 function Flag17 (N : Node_Id) return Boolean is
3588 pragma Assert (N <= Nodes.Last);
3589 return Nodes.Table (N).Flag17;
3592 function Flag18 (N : Node_Id) return Boolean is
3594 pragma Assert (N <= Nodes.Last);
3595 return Nodes.Table (N).Flag18;
3598 function Flag19 (N : Node_Id) return Boolean is
3600 pragma Assert (Nkind (N) in N_Entity);
3601 return Nodes.Table (N + 1).In_List;
3604 function Flag20 (N : Node_Id) return Boolean is
3606 pragma Assert (Nkind (N) in N_Entity);
3607 return Nodes.Table (N + 1).Unused_1;
3610 function Flag21 (N : Node_Id) return Boolean is
3612 pragma Assert (Nkind (N) in N_Entity);
3613 return Nodes.Table (N + 1).Rewrite_Ins;
3616 function Flag22 (N : Node_Id) return Boolean is
3618 pragma Assert (Nkind (N) in N_Entity);
3619 return Nodes.Table (N + 1).Analyzed;
3622 function Flag23 (N : Node_Id) return Boolean is
3624 pragma Assert (Nkind (N) in N_Entity);
3625 return Nodes.Table (N + 1).Comes_From_Source;
3628 function Flag24 (N : Node_Id) return Boolean is
3630 pragma Assert (Nkind (N) in N_Entity);
3631 return Nodes.Table (N + 1).Error_Posted;
3634 function Flag25 (N : Node_Id) return Boolean is
3636 pragma Assert (Nkind (N) in N_Entity);
3637 return Nodes.Table (N + 1).Flag4;
3640 function Flag26 (N : Node_Id) return Boolean is
3642 pragma Assert (Nkind (N) in N_Entity);
3643 return Nodes.Table (N + 1).Flag5;
3646 function Flag27 (N : Node_Id) return Boolean is
3648 pragma Assert (Nkind (N) in N_Entity);
3649 return Nodes.Table (N + 1).Flag6;
3652 function Flag28 (N : Node_Id) return Boolean is
3654 pragma Assert (Nkind (N) in N_Entity);
3655 return Nodes.Table (N + 1).Flag7;
3658 function Flag29 (N : Node_Id) return Boolean is
3660 pragma Assert (Nkind (N) in N_Entity);
3661 return Nodes.Table (N + 1).Flag8;
3664 function Flag30 (N : Node_Id) return Boolean is
3666 pragma Assert (Nkind (N) in N_Entity);
3667 return Nodes.Table (N + 1).Flag9;
3670 function Flag31 (N : Node_Id) return Boolean is
3672 pragma Assert (Nkind (N) in N_Entity);
3673 return Nodes.Table (N + 1).Flag10;
3676 function Flag32 (N : Node_Id) return Boolean is
3678 pragma Assert (Nkind (N) in N_Entity);
3679 return Nodes.Table (N + 1).Flag11;
3682 function Flag33 (N : Node_Id) return Boolean is
3684 pragma Assert (Nkind (N) in N_Entity);
3685 return Nodes.Table (N + 1).Flag12;
3688 function Flag34 (N : Node_Id) return Boolean is
3690 pragma Assert (Nkind (N) in N_Entity);
3691 return Nodes.Table (N + 1).Flag13;
3694 function Flag35 (N : Node_Id) return Boolean is
3696 pragma Assert (Nkind (N) in N_Entity);
3697 return Nodes.Table (N + 1).Flag14;
3700 function Flag36 (N : Node_Id) return Boolean is
3702 pragma Assert (Nkind (N) in N_Entity);
3703 return Nodes.Table (N + 1).Flag15;
3706 function Flag37 (N : Node_Id) return Boolean is
3708 pragma Assert (Nkind (N) in N_Entity);
3709 return Nodes.Table (N + 1).Flag16;
3712 function Flag38 (N : Node_Id) return Boolean is
3714 pragma Assert (Nkind (N) in N_Entity);
3715 return Nodes.Table (N + 1).Flag17;
3718 function Flag39 (N : Node_Id) return Boolean is
3720 pragma Assert (Nkind (N) in N_Entity);
3721 return Nodes.Table (N + 1).Flag18;
3724 function Flag40 (N : Node_Id) return Boolean is
3726 pragma Assert (Nkind (N) in N_Entity);
3727 return Nodes.Table (N + 2).In_List;
3730 function Flag41 (N : Node_Id) return Boolean is
3732 pragma Assert (Nkind (N) in N_Entity);
3733 return Nodes.Table (N + 2).Unused_1;
3736 function Flag42 (N : Node_Id) return Boolean is
3738 pragma Assert (Nkind (N) in N_Entity);
3739 return Nodes.Table (N + 2).Rewrite_Ins;
3742 function Flag43 (N : Node_Id) return Boolean is
3744 pragma Assert (Nkind (N) in N_Entity);
3745 return Nodes.Table (N + 2).Analyzed;
3748 function Flag44 (N : Node_Id) return Boolean is
3750 pragma Assert (Nkind (N) in N_Entity);
3751 return Nodes.Table (N + 2).Comes_From_Source;
3754 function Flag45 (N : Node_Id) return Boolean is
3756 pragma Assert (Nkind (N) in N_Entity);
3757 return Nodes.Table (N + 2).Error_Posted;
3760 function Flag46 (N : Node_Id) return Boolean is
3762 pragma Assert (Nkind (N) in N_Entity);
3763 return Nodes.Table (N + 2).Flag4;
3766 function Flag47 (N : Node_Id) return Boolean is
3768 pragma Assert (Nkind (N) in N_Entity);
3769 return Nodes.Table (N + 2).Flag5;
3772 function Flag48 (N : Node_Id) return Boolean is
3774 pragma Assert (Nkind (N) in N_Entity);
3775 return Nodes.Table (N + 2).Flag6;
3778 function Flag49 (N : Node_Id) return Boolean is
3780 pragma Assert (Nkind (N) in N_Entity);
3781 return Nodes.Table (N + 2).Flag7;
3784 function Flag50 (N : Node_Id) return Boolean is
3786 pragma Assert (Nkind (N) in N_Entity);
3787 return Nodes.Table (N + 2).Flag8;
3790 function Flag51 (N : Node_Id) return Boolean is
3792 pragma Assert (Nkind (N) in N_Entity);
3793 return Nodes.Table (N + 2).Flag9;
3796 function Flag52 (N : Node_Id) return Boolean is
3798 pragma Assert (Nkind (N) in N_Entity);
3799 return Nodes.Table (N + 2).Flag10;
3802 function Flag53 (N : Node_Id) return Boolean is
3804 pragma Assert (Nkind (N) in N_Entity);
3805 return Nodes.Table (N + 2).Flag11;
3808 function Flag54 (N : Node_Id) return Boolean is
3810 pragma Assert (Nkind (N) in N_Entity);
3811 return Nodes.Table (N + 2).Flag12;
3814 function Flag55 (N : Node_Id) return Boolean is
3816 pragma Assert (Nkind (N) in N_Entity);
3817 return Nodes.Table (N + 2).Flag13;
3820 function Flag56 (N : Node_Id) return Boolean is
3822 pragma Assert (Nkind (N) in N_Entity);
3823 return Nodes.Table (N + 2).Flag14;
3826 function Flag57 (N : Node_Id) return Boolean is
3828 pragma Assert (Nkind (N) in N_Entity);
3829 return Nodes.Table (N + 2).Flag15;
3832 function Flag58 (N : Node_Id) return Boolean is
3834 pragma Assert (Nkind (N) in N_Entity);
3835 return Nodes.Table (N + 2).Flag16;
3838 function Flag59 (N : Node_Id) return Boolean is
3840 pragma Assert (Nkind (N) in N_Entity);
3841 return Nodes.Table (N + 2).Flag17;
3844 function Flag60 (N : Node_Id) return Boolean is
3846 pragma Assert (Nkind (N) in N_Entity);
3847 return Nodes.Table (N + 2).Flag18;
3850 function Flag61 (N : Node_Id) return Boolean is
3852 pragma Assert (Nkind (N) in N_Entity);
3853 return Nodes.Table (N + 1).Pflag1;
3856 function Flag62 (N : Node_Id) return Boolean is
3858 pragma Assert (Nkind (N) in N_Entity);
3859 return Nodes.Table (N + 1).Pflag2;
3862 function Flag63 (N : Node_Id) return Boolean is
3864 pragma Assert (Nkind (N) in N_Entity);
3865 return Nodes.Table (N + 2).Pflag1;
3868 function Flag64 (N : Node_Id) return Boolean is
3870 pragma Assert (Nkind (N) in N_Entity);
3871 return Nodes.Table (N + 2).Pflag2;
3874 function Flag65 (N : Node_Id) return Boolean is
3876 pragma Assert (Nkind (N) in N_Entity);
3877 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag65;
3880 function Flag66 (N : Node_Id) return Boolean is
3882 pragma Assert (Nkind (N) in N_Entity);
3883 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag66;
3886 function Flag67 (N : Node_Id) return Boolean is
3888 pragma Assert (Nkind (N) in N_Entity);
3889 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag67;
3892 function Flag68 (N : Node_Id) return Boolean is
3894 pragma Assert (Nkind (N) in N_Entity);
3895 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag68;
3898 function Flag69 (N : Node_Id) return Boolean is
3900 pragma Assert (Nkind (N) in N_Entity);
3901 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag69;
3904 function Flag70 (N : Node_Id) return Boolean is
3906 pragma Assert (Nkind (N) in N_Entity);
3907 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag70;
3910 function Flag71 (N : Node_Id) return Boolean is
3912 pragma Assert (Nkind (N) in N_Entity);
3913 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag71;
3916 function Flag72 (N : Node_Id) return Boolean is
3918 pragma Assert (Nkind (N) in N_Entity);
3919 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag72;
3922 function Flag73 (N : Node_Id) return Boolean is
3924 pragma Assert (Nkind (N) in N_Entity);
3925 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag73;
3928 function Flag74 (N : Node_Id) return Boolean is
3930 pragma Assert (Nkind (N) in N_Entity);
3931 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag74;
3934 function Flag75 (N : Node_Id) return Boolean is
3936 pragma Assert (Nkind (N) in N_Entity);
3937 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag75;
3940 function Flag76 (N : Node_Id) return Boolean is
3942 pragma Assert (Nkind (N) in N_Entity);
3943 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag76;
3946 function Flag77 (N : Node_Id) return Boolean is
3948 pragma Assert (Nkind (N) in N_Entity);
3949 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag77;
3952 function Flag78 (N : Node_Id) return Boolean is
3954 pragma Assert (Nkind (N) in N_Entity);
3955 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag78;
3958 function Flag79 (N : Node_Id) return Boolean is
3960 pragma Assert (Nkind (N) in N_Entity);
3961 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag79;
3964 function Flag80 (N : Node_Id) return Boolean is
3966 pragma Assert (Nkind (N) in N_Entity);
3967 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag80;
3970 function Flag81 (N : Node_Id) return Boolean is
3972 pragma Assert (Nkind (N) in N_Entity);
3973 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag81;
3976 function Flag82 (N : Node_Id) return Boolean is
3978 pragma Assert (Nkind (N) in N_Entity);
3979 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag82;
3982 function Flag83 (N : Node_Id) return Boolean is
3984 pragma Assert (Nkind (N) in N_Entity);
3985 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag83;
3988 function Flag84 (N : Node_Id) return Boolean is
3990 pragma Assert (Nkind (N) in N_Entity);
3991 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag84;
3994 function Flag85 (N : Node_Id) return Boolean is
3996 pragma Assert (Nkind (N) in N_Entity);
3997 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag85;
4000 function Flag86 (N : Node_Id) return Boolean is
4002 pragma Assert (Nkind (N) in N_Entity);
4003 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag86;
4006 function Flag87 (N : Node_Id) return Boolean is
4008 pragma Assert (Nkind (N) in N_Entity);
4009 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag87;
4012 function Flag88 (N : Node_Id) return Boolean is
4014 pragma Assert (Nkind (N) in N_Entity);
4015 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag88;
4018 function Flag89 (N : Node_Id) return Boolean is
4020 pragma Assert (Nkind (N) in N_Entity);
4021 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag89;
4024 function Flag90 (N : Node_Id) return Boolean is
4026 pragma Assert (Nkind (N) in N_Entity);
4027 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag90;
4030 function Flag91 (N : Node_Id) return Boolean is
4032 pragma Assert (Nkind (N) in N_Entity);
4033 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag91;
4036 function Flag92 (N : Node_Id) return Boolean is
4038 pragma Assert (Nkind (N) in N_Entity);
4039 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag92;
4042 function Flag93 (N : Node_Id) return Boolean is
4044 pragma Assert (Nkind (N) in N_Entity);
4045 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag93;
4048 function Flag94 (N : Node_Id) return Boolean is
4050 pragma Assert (Nkind (N) in N_Entity);
4051 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag94;
4054 function Flag95 (N : Node_Id) return Boolean is
4056 pragma Assert (Nkind (N) in N_Entity);
4057 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag95;
4060 function Flag96 (N : Node_Id) return Boolean is
4062 pragma Assert (Nkind (N) in N_Entity);
4063 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag96;
4066 function Flag97 (N : Node_Id) return Boolean is
4068 pragma Assert (Nkind (N) in N_Entity);
4069 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag97;
4072 function Flag98 (N : Node_Id) return Boolean is
4074 pragma Assert (Nkind (N) in N_Entity);
4075 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag98;
4078 function Flag99 (N : Node_Id) return Boolean is
4080 pragma Assert (Nkind (N) in N_Entity);
4081 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag99;
4084 function Flag100 (N : Node_Id) return Boolean is
4086 pragma Assert (Nkind (N) in N_Entity);
4087 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag100;
4090 function Flag101 (N : Node_Id) return Boolean is
4092 pragma Assert (Nkind (N) in N_Entity);
4093 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag101;
4096 function Flag102 (N : Node_Id) return Boolean is
4098 pragma Assert (Nkind (N) in N_Entity);
4099 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag102;
4102 function Flag103 (N : Node_Id) return Boolean is
4104 pragma Assert (Nkind (N) in N_Entity);
4105 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag103;
4108 function Flag104 (N : Node_Id) return Boolean is
4110 pragma Assert (Nkind (N) in N_Entity);
4111 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag104;
4114 function Flag105 (N : Node_Id) return Boolean is
4116 pragma Assert (Nkind (N) in N_Entity);
4117 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag105;
4120 function Flag106 (N : Node_Id) return Boolean is
4122 pragma Assert (Nkind (N) in N_Entity);
4123 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag106;
4126 function Flag107 (N : Node_Id) return Boolean is
4128 pragma Assert (Nkind (N) in N_Entity);
4129 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag107;
4132 function Flag108 (N : Node_Id) return Boolean is
4134 pragma Assert (Nkind (N) in N_Entity);
4135 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag108;
4138 function Flag109 (N : Node_Id) return Boolean is
4140 pragma Assert (Nkind (N) in N_Entity);
4141 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag109;
4144 function Flag110 (N : Node_Id) return Boolean is
4146 pragma Assert (Nkind (N) in N_Entity);
4147 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag110;
4150 function Flag111 (N : Node_Id) return Boolean is
4152 pragma Assert (Nkind (N) in N_Entity);
4153 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag111;
4156 function Flag112 (N : Node_Id) return Boolean is
4158 pragma Assert (Nkind (N) in N_Entity);
4159 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag112;
4162 function Flag113 (N : Node_Id) return Boolean is
4164 pragma Assert (Nkind (N) in N_Entity);
4165 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag113;
4168 function Flag114 (N : Node_Id) return Boolean is
4170 pragma Assert (Nkind (N) in N_Entity);
4171 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag114;
4174 function Flag115 (N : Node_Id) return Boolean is
4176 pragma Assert (Nkind (N) in N_Entity);
4177 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag115;
4180 function Flag116 (N : Node_Id) return Boolean is
4182 pragma Assert (Nkind (N) in N_Entity);
4183 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag116;
4186 function Flag117 (N : Node_Id) return Boolean is
4188 pragma Assert (Nkind (N) in N_Entity);
4189 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag117;
4192 function Flag118 (N : Node_Id) return Boolean is
4194 pragma Assert (Nkind (N) in N_Entity);
4195 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag118;
4198 function Flag119 (N : Node_Id) return Boolean is
4200 pragma Assert (Nkind (N) in N_Entity);
4201 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag119;
4204 function Flag120 (N : Node_Id) return Boolean is
4206 pragma Assert (Nkind (N) in N_Entity);
4207 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag120;
4210 function Flag121 (N : Node_Id) return Boolean is
4212 pragma Assert (Nkind (N) in N_Entity);
4213 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag121;
4216 function Flag122 (N : Node_Id) return Boolean is
4218 pragma Assert (Nkind (N) in N_Entity);
4219 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag122;
4222 function Flag123 (N : Node_Id) return Boolean is
4224 pragma Assert (Nkind (N) in N_Entity);
4225 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag123;
4228 function Flag124 (N : Node_Id) return Boolean is
4230 pragma Assert (Nkind (N) in N_Entity);
4231 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag124;
4234 function Flag125 (N : Node_Id) return Boolean is
4236 pragma Assert (Nkind (N) in N_Entity);
4237 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag125;
4240 function Flag126 (N : Node_Id) return Boolean is
4242 pragma Assert (Nkind (N) in N_Entity);
4243 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag126;
4246 function Flag127 (N : Node_Id) return Boolean is
4248 pragma Assert (Nkind (N) in N_Entity);
4249 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag127;
4252 function Flag128 (N : Node_Id) return Boolean is
4254 pragma Assert (Nkind (N) in N_Entity);
4255 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag128;
4258 function Flag129 (N : Node_Id) return Boolean is
4260 pragma Assert (Nkind (N) in N_Entity);
4261 return Nodes.Table (N + 3).In_List;
4264 function Flag130 (N : Node_Id) return Boolean is
4266 pragma Assert (Nkind (N) in N_Entity);
4267 return Nodes.Table (N + 3).Unused_1;
4270 function Flag131 (N : Node_Id) return Boolean is
4272 pragma Assert (Nkind (N) in N_Entity);
4273 return Nodes.Table (N + 3).Rewrite_Ins;
4276 function Flag132 (N : Node_Id) return Boolean is
4278 pragma Assert (Nkind (N) in N_Entity);
4279 return Nodes.Table (N + 3).Analyzed;
4282 function Flag133 (N : Node_Id) return Boolean is
4284 pragma Assert (Nkind (N) in N_Entity);
4285 return Nodes.Table (N + 3).Comes_From_Source;
4288 function Flag134 (N : Node_Id) return Boolean is
4290 pragma Assert (Nkind (N) in N_Entity);
4291 return Nodes.Table (N + 3).Error_Posted;
4294 function Flag135 (N : Node_Id) return Boolean is
4296 pragma Assert (Nkind (N) in N_Entity);
4297 return Nodes.Table (N + 3).Flag4;
4300 function Flag136 (N : Node_Id) return Boolean is
4302 pragma Assert (Nkind (N) in N_Entity);
4303 return Nodes.Table (N + 3).Flag5;
4306 function Flag137 (N : Node_Id) return Boolean is
4308 pragma Assert (Nkind (N) in N_Entity);
4309 return Nodes.Table (N + 3).Flag6;
4312 function Flag138 (N : Node_Id) return Boolean is
4314 pragma Assert (Nkind (N) in N_Entity);
4315 return Nodes.Table (N + 3).Flag7;
4318 function Flag139 (N : Node_Id) return Boolean is
4320 pragma Assert (Nkind (N) in N_Entity);
4321 return Nodes.Table (N + 3).Flag8;
4324 function Flag140 (N : Node_Id) return Boolean is
4326 pragma Assert (Nkind (N) in N_Entity);
4327 return Nodes.Table (N + 3).Flag9;
4330 function Flag141 (N : Node_Id) return Boolean is
4332 pragma Assert (Nkind (N) in N_Entity);
4333 return Nodes.Table (N + 3).Flag10;
4336 function Flag142 (N : Node_Id) return Boolean is
4338 pragma Assert (Nkind (N) in N_Entity);
4339 return Nodes.Table (N + 3).Flag11;
4342 function Flag143 (N : Node_Id) return Boolean is
4344 pragma Assert (Nkind (N) in N_Entity);
4345 return Nodes.Table (N + 3).Flag12;
4348 function Flag144 (N : Node_Id) return Boolean is
4350 pragma Assert (Nkind (N) in N_Entity);
4351 return Nodes.Table (N + 3).Flag13;
4354 function Flag145 (N : Node_Id) return Boolean is
4356 pragma Assert (Nkind (N) in N_Entity);
4357 return Nodes.Table (N + 3).Flag14;
4360 function Flag146 (N : Node_Id) return Boolean is
4362 pragma Assert (Nkind (N) in N_Entity);
4363 return Nodes.Table (N + 3).Flag15;
4366 function Flag147 (N : Node_Id) return Boolean is
4368 pragma Assert (Nkind (N) in N_Entity);
4369 return Nodes.Table (N + 3).Flag16;
4372 function Flag148 (N : Node_Id) return Boolean is
4374 pragma Assert (Nkind (N) in N_Entity);
4375 return Nodes.Table (N + 3).Flag17;
4378 function Flag149 (N : Node_Id) return Boolean is
4380 pragma Assert (Nkind (N) in N_Entity);
4381 return Nodes.Table (N + 3).Flag18;
4384 function Flag150 (N : Node_Id) return Boolean is
4386 pragma Assert (Nkind (N) in N_Entity);
4387 return Nodes.Table (N + 3).Pflag1;
4390 function Flag151 (N : Node_Id) return Boolean is
4392 pragma Assert (Nkind (N) in N_Entity);
4393 return Nodes.Table (N + 3).Pflag2;
4396 function Flag152 (N : Node_Id) return Boolean is
4398 pragma Assert (Nkind (N) in N_Entity);
4399 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag152;
4402 function Flag153 (N : Node_Id) return Boolean is
4404 pragma Assert (Nkind (N) in N_Entity);
4405 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag153;
4408 function Flag154 (N : Node_Id) return Boolean is
4410 pragma Assert (Nkind (N) in N_Entity);
4411 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag154;
4414 function Flag155 (N : Node_Id) return Boolean is
4416 pragma Assert (Nkind (N) in N_Entity);
4417 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag155;
4420 function Flag156 (N : Node_Id) return Boolean is
4422 pragma Assert (Nkind (N) in N_Entity);
4423 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag156;
4426 function Flag157 (N : Node_Id) return Boolean is
4428 pragma Assert (Nkind (N) in N_Entity);
4429 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag157;
4432 function Flag158 (N : Node_Id) return Boolean is
4434 pragma Assert (Nkind (N) in N_Entity);
4435 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag158;
4438 function Flag159 (N : Node_Id) return Boolean is
4440 pragma Assert (Nkind (N) in N_Entity);
4441 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag159;
4444 function Flag160 (N : Node_Id) return Boolean is
4446 pragma Assert (Nkind (N) in N_Entity);
4447 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag160;
4450 function Flag161 (N : Node_Id) return Boolean is
4452 pragma Assert (Nkind (N) in N_Entity);
4453 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag161;
4456 function Flag162 (N : Node_Id) return Boolean is
4458 pragma Assert (Nkind (N) in N_Entity);
4459 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag162;
4462 function Flag163 (N : Node_Id) return Boolean is
4464 pragma Assert (Nkind (N) in N_Entity);
4465 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag163;
4468 function Flag164 (N : Node_Id) return Boolean is
4470 pragma Assert (Nkind (N) in N_Entity);
4471 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag164;
4474 function Flag165 (N : Node_Id) return Boolean is
4476 pragma Assert (Nkind (N) in N_Entity);
4477 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag165;
4480 function Flag166 (N : Node_Id) return Boolean is
4482 pragma Assert (Nkind (N) in N_Entity);
4483 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag166;
4486 function Flag167 (N : Node_Id) return Boolean is
4488 pragma Assert (Nkind (N) in N_Entity);
4489 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag167;
4492 function Flag168 (N : Node_Id) return Boolean is
4494 pragma Assert (Nkind (N) in N_Entity);
4495 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag168;
4498 function Flag169 (N : Node_Id) return Boolean is
4500 pragma Assert (Nkind (N) in N_Entity);
4501 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag169;
4504 function Flag170 (N : Node_Id) return Boolean is
4506 pragma Assert (Nkind (N) in N_Entity);
4507 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag170;
4510 function Flag171 (N : Node_Id) return Boolean is
4512 pragma Assert (Nkind (N) in N_Entity);
4513 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag171;
4516 function Flag172 (N : Node_Id) return Boolean is
4518 pragma Assert (Nkind (N) in N_Entity);
4519 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag172;
4522 function Flag173 (N : Node_Id) return Boolean is
4524 pragma Assert (Nkind (N) in N_Entity);
4525 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag173;
4528 function Flag174 (N : Node_Id) return Boolean is
4530 pragma Assert (Nkind (N) in N_Entity);
4531 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag174;
4534 function Flag175 (N : Node_Id) return Boolean is
4536 pragma Assert (Nkind (N) in N_Entity);
4537 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag175;
4540 function Flag176 (N : Node_Id) return Boolean is
4542 pragma Assert (Nkind (N) in N_Entity);
4543 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag176;
4546 function Flag177 (N : Node_Id) return Boolean is
4548 pragma Assert (Nkind (N) in N_Entity);
4549 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag177;
4552 function Flag178 (N : Node_Id) return Boolean is
4554 pragma Assert (Nkind (N) in N_Entity);
4555 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag178;
4558 function Flag179 (N : Node_Id) return Boolean is
4560 pragma Assert (Nkind (N) in N_Entity);
4561 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag179;
4564 function Flag180 (N : Node_Id) return Boolean is
4566 pragma Assert (Nkind (N) in N_Entity);
4567 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag180;
4570 function Flag181 (N : Node_Id) return Boolean is
4572 pragma Assert (Nkind (N) in N_Entity);
4573 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag181;
4576 function Flag182 (N : Node_Id) return Boolean is
4578 pragma Assert (Nkind (N) in N_Entity);
4579 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag182;
4582 function Flag183 (N : Node_Id) return Boolean is
4584 pragma Assert (Nkind (N) in N_Entity);
4585 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag183;
4588 function Flag184 (N : Node_Id) return Boolean is
4590 pragma Assert (Nkind (N) in N_Entity);
4591 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag184;
4594 function Flag185 (N : Node_Id) return Boolean is
4596 pragma Assert (Nkind (N) in N_Entity);
4597 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag185;
4600 function Flag186 (N : Node_Id) return Boolean is
4602 pragma Assert (Nkind (N) in N_Entity);
4603 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag186;
4606 function Flag187 (N : Node_Id) return Boolean is
4608 pragma Assert (Nkind (N) in N_Entity);
4609 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag187;
4612 function Flag188 (N : Node_Id) return Boolean is
4614 pragma Assert (Nkind (N) in N_Entity);
4615 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag188;
4618 function Flag189 (N : Node_Id) return Boolean is
4620 pragma Assert (Nkind (N) in N_Entity);
4621 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag189;
4624 function Flag190 (N : Node_Id) return Boolean is
4626 pragma Assert (Nkind (N) in N_Entity);
4627 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag190;
4630 function Flag191 (N : Node_Id) return Boolean is
4632 pragma Assert (Nkind (N) in N_Entity);
4633 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag191;
4636 function Flag192 (N : Node_Id) return Boolean is
4638 pragma Assert (Nkind (N) in N_Entity);
4639 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag192;
4642 function Flag193 (N : Node_Id) return Boolean is
4644 pragma Assert (Nkind (N) in N_Entity);
4645 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag193;
4648 function Flag194 (N : Node_Id) return Boolean is
4650 pragma Assert (Nkind (N) in N_Entity);
4651 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag194;
4654 function Flag195 (N : Node_Id) return Boolean is
4656 pragma Assert (Nkind (N) in N_Entity);
4657 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag195;
4660 function Flag196 (N : Node_Id) return Boolean is
4662 pragma Assert (Nkind (N) in N_Entity);
4663 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag196;
4666 function Flag197 (N : Node_Id) return Boolean is
4668 pragma Assert (Nkind (N) in N_Entity);
4669 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag197;
4672 function Flag198 (N : Node_Id) return Boolean is
4674 pragma Assert (Nkind (N) in N_Entity);
4675 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag198;
4678 function Flag199 (N : Node_Id) return Boolean is
4680 pragma Assert (Nkind (N) in N_Entity);
4681 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag199;
4684 function Flag200 (N : Node_Id) return Boolean is
4686 pragma Assert (Nkind (N) in N_Entity);
4687 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag200;
4690 function Flag201 (N : Node_Id) return Boolean is
4692 pragma Assert (Nkind (N) in N_Entity);
4693 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag201;
4696 function Flag202 (N : Node_Id) return Boolean is
4698 pragma Assert (Nkind (N) in N_Entity);
4699 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag202;
4702 function Flag203 (N : Node_Id) return Boolean is
4704 pragma Assert (Nkind (N) in N_Entity);
4705 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag203;
4708 function Flag204 (N : Node_Id) return Boolean is
4710 pragma Assert (Nkind (N) in N_Entity);
4711 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag204;
4714 function Flag205 (N : Node_Id) return Boolean is
4716 pragma Assert (Nkind (N) in N_Entity);
4717 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag205;
4720 function Flag206 (N : Node_Id) return Boolean is
4722 pragma Assert (Nkind (N) in N_Entity);
4723 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag206;
4726 function Flag207 (N : Node_Id) return Boolean is
4728 pragma Assert (Nkind (N) in N_Entity);
4729 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag207;
4732 function Flag208 (N : Node_Id) return Boolean is
4734 pragma Assert (Nkind (N) in N_Entity);
4735 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag208;
4738 function Flag209 (N : Node_Id) return Boolean is
4740 pragma Assert (Nkind (N) in N_Entity);
4741 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag209;
4744 function Flag210 (N : Node_Id) return Boolean is
4746 pragma Assert (Nkind (N) in N_Entity);
4747 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag210;
4750 function Flag211 (N : Node_Id) return Boolean is
4752 pragma Assert (Nkind (N) in N_Entity);
4753 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag211;
4756 function Flag212 (N : Node_Id) return Boolean is
4758 pragma Assert (Nkind (N) in N_Entity);
4759 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag212;
4762 function Flag213 (N : Node_Id) return Boolean is
4764 pragma Assert (Nkind (N) in N_Entity);
4765 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag213;
4768 function Flag214 (N : Node_Id) return Boolean is
4770 pragma Assert (Nkind (N) in N_Entity);
4771 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag214;
4774 function Flag215 (N : Node_Id) return Boolean is
4776 pragma Assert (Nkind (N) in N_Entity);
4777 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag215;
4780 function Flag216 (N : Node_Id) return Boolean is
4782 pragma Assert (Nkind (N) in N_Entity);
4783 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag216;
4786 function Flag217 (N : Node_Id) return Boolean is
4788 pragma Assert (Nkind (N) in N_Entity);
4789 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag217;
4792 function Flag218 (N : Node_Id) return Boolean is
4794 pragma Assert (Nkind (N) in N_Entity);
4795 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag218;
4798 function Flag219 (N : Node_Id) return Boolean is
4800 pragma Assert (Nkind (N) in N_Entity);
4801 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag219;
4804 function Flag220 (N : Node_Id) return Boolean is
4806 pragma Assert (Nkind (N) in N_Entity);
4807 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag220;
4810 function Flag221 (N : Node_Id) return Boolean is
4812 pragma Assert (Nkind (N) in N_Entity);
4813 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag221;
4816 function Flag222 (N : Node_Id) return Boolean is
4818 pragma Assert (Nkind (N) in N_Entity);
4819 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag222;
4822 function Flag223 (N : Node_Id) return Boolean is
4824 pragma Assert (Nkind (N) in N_Entity);
4825 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag223;
4828 function Flag224 (N : Node_Id) return Boolean is
4830 pragma Assert (Nkind (N) in N_Entity);
4831 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag224;
4834 function Flag225 (N : Node_Id) return Boolean is
4836 pragma Assert (Nkind (N) in N_Entity);
4837 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag225;
4840 function Flag226 (N : Node_Id) return Boolean is
4842 pragma Assert (Nkind (N) in N_Entity);
4843 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag226;
4846 function Flag227 (N : Node_Id) return Boolean is
4848 pragma Assert (Nkind (N) in N_Entity);
4849 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag227;
4852 function Flag228 (N : Node_Id) return Boolean is
4854 pragma Assert (Nkind (N) in N_Entity);
4855 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag228;
4858 function Flag229 (N : Node_Id) return Boolean is
4860 pragma Assert (Nkind (N) in N_Entity);
4861 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag229;
4864 function Flag230 (N : Node_Id) return Boolean is
4866 pragma Assert (Nkind (N) in N_Entity);
4867 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag230;
4870 function Flag231 (N : Node_Id) return Boolean is
4872 pragma Assert (Nkind (N) in N_Entity);
4873 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag231;
4876 function Flag232 (N : Node_Id) return Boolean is
4878 pragma Assert (Nkind (N) in N_Entity);
4879 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag232;
4882 function Flag233 (N : Node_Id) return Boolean is
4884 pragma Assert (Nkind (N) in N_Entity);
4885 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag233;
4888 function Flag234 (N : Node_Id) return Boolean is
4890 pragma Assert (Nkind (N) in N_Entity);
4891 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag234;
4894 function Flag235 (N : Node_Id) return Boolean is
4896 pragma Assert (Nkind (N) in N_Entity);
4897 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag235;
4900 function Flag236 (N : Node_Id) return Boolean is
4902 pragma Assert (Nkind (N) in N_Entity);
4903 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag236;
4906 function Flag237 (N : Node_Id) return Boolean is
4908 pragma Assert (Nkind (N) in N_Entity);
4909 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag237;
4912 function Flag238 (N : Node_Id) return Boolean is
4914 pragma Assert (Nkind (N) in N_Entity);
4915 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag238;
4918 function Flag239 (N : Node_Id) return Boolean is
4920 pragma Assert (Nkind (N) in N_Entity);
4921 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag239;
4924 function Flag240 (N : Node_Id) return Boolean is
4926 pragma Assert (Nkind (N) in N_Entity);
4927 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag240;
4930 function Flag241 (N : Node_Id) return Boolean is
4932 pragma Assert (Nkind (N) in N_Entity);
4933 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag241;
4936 function Flag242 (N : Node_Id) return Boolean is
4938 pragma Assert (Nkind (N) in N_Entity);
4939 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag242;
4942 function Flag243 (N : Node_Id) return Boolean is
4944 pragma Assert (Nkind (N) in N_Entity);
4945 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag243;
4948 function Flag244 (N : Node_Id) return Boolean is
4950 pragma Assert (Nkind (N) in N_Entity);
4951 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag244;
4954 function Flag245 (N : Node_Id) return Boolean is
4956 pragma Assert (Nkind (N) in N_Entity);
4957 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag245;
4960 function Flag246 (N : Node_Id) return Boolean is
4962 pragma Assert (Nkind (N) in N_Entity);
4963 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag246;
4966 function Flag247 (N : Node_Id) return Boolean is
4968 pragma Assert (Nkind (N) in N_Entity);
4969 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag247;
4972 procedure Set_Nkind (N : Node_Id; Val : Node_Kind) is
4974 pragma Assert (N <= Nodes.Last);
4975 Nodes.Table (N).Nkind := Val;
4978 procedure Set_Field1 (N : Node_Id; Val : Union_Id) is
4980 pragma Assert (N <= Nodes.Last);
4981 Nodes.Table (N).Field1 := Val;
4984 procedure Set_Field2 (N : Node_Id; Val : Union_Id) is
4986 pragma Assert (N <= Nodes.Last);
4987 Nodes.Table (N).Field2 := Val;
4990 procedure Set_Field3 (N : Node_Id; Val : Union_Id) is
4992 pragma Assert (N <= Nodes.Last);
4993 Nodes.Table (N).Field3 := Val;
4996 procedure Set_Field4 (N : Node_Id; Val : Union_Id) is
4998 pragma Assert (N <= Nodes.Last);
4999 Nodes.Table (N).Field4 := Val;
5002 procedure Set_Field5 (N : Node_Id; Val : Union_Id) is
5004 pragma Assert (N <= Nodes.Last);
5005 Nodes.Table (N).Field5 := Val;
5008 procedure Set_Field6 (N : Node_Id; Val : Union_Id) is
5010 pragma Assert (Nkind (N) in N_Entity);
5011 Nodes.Table (N + 1).Field6 := Val;
5014 procedure Set_Field7 (N : Node_Id; Val : Union_Id) is
5016 pragma Assert (Nkind (N) in N_Entity);
5017 Nodes.Table (N + 1).Field7 := Val;
5020 procedure Set_Field8 (N : Node_Id; Val : Union_Id) is
5022 pragma Assert (Nkind (N) in N_Entity);
5023 Nodes.Table (N + 1).Field8 := Val;
5026 procedure Set_Field9 (N : Node_Id; Val : Union_Id) is
5028 pragma Assert (Nkind (N) in N_Entity);
5029 Nodes.Table (N + 1).Field9 := Val;
5032 procedure Set_Field10 (N : Node_Id; Val : Union_Id) is
5034 pragma Assert (Nkind (N) in N_Entity);
5035 Nodes.Table (N + 1).Field10 := Val;
5038 procedure Set_Field11 (N : Node_Id; Val : Union_Id) is
5040 pragma Assert (Nkind (N) in N_Entity);
5041 Nodes.Table (N + 1).Field11 := Val;
5044 procedure Set_Field12 (N : Node_Id; Val : Union_Id) is
5046 pragma Assert (Nkind (N) in N_Entity);
5047 Nodes.Table (N + 1).Field12 := Val;
5050 procedure Set_Field13 (N : Node_Id; Val : Union_Id) is
5052 pragma Assert (Nkind (N) in N_Entity);
5053 Nodes.Table (N + 2).Field6 := Val;
5056 procedure Set_Field14 (N : Node_Id; Val : Union_Id) is
5058 pragma Assert (Nkind (N) in N_Entity);
5059 Nodes.Table (N + 2).Field7 := Val;
5062 procedure Set_Field15 (N : Node_Id; Val : Union_Id) is
5064 pragma Assert (Nkind (N) in N_Entity);
5065 Nodes.Table (N + 2).Field8 := Val;
5068 procedure Set_Field16 (N : Node_Id; Val : Union_Id) is
5070 pragma Assert (Nkind (N) in N_Entity);
5071 Nodes.Table (N + 2).Field9 := Val;
5074 procedure Set_Field17 (N : Node_Id; Val : Union_Id) is
5076 pragma Assert (Nkind (N) in N_Entity);
5077 Nodes.Table (N + 2).Field10 := Val;
5080 procedure Set_Field18 (N : Node_Id; Val : Union_Id) is
5082 pragma Assert (Nkind (N) in N_Entity);
5083 Nodes.Table (N + 2).Field11 := Val;
5086 procedure Set_Field19 (N : Node_Id; Val : Union_Id) is
5088 pragma Assert (Nkind (N) in N_Entity);
5089 Nodes.Table (N + 3).Field6 := Val;
5092 procedure Set_Field20 (N : Node_Id; Val : Union_Id) is
5094 pragma Assert (Nkind (N) in N_Entity);
5095 Nodes.Table (N + 3).Field7 := Val;
5098 procedure Set_Field21 (N : Node_Id; Val : Union_Id) is
5100 pragma Assert (Nkind (N) in N_Entity);
5101 Nodes.Table (N + 3).Field8 := Val;
5104 procedure Set_Field22 (N : Node_Id; Val : Union_Id) is
5106 pragma Assert (Nkind (N) in N_Entity);
5107 Nodes.Table (N + 3).Field9 := Val;
5110 procedure Set_Field23 (N : Node_Id; Val : Union_Id) is
5112 pragma Assert (Nkind (N) in N_Entity);
5113 Nodes.Table (N + 3).Field10 := Val;
5116 procedure Set_Field24 (N : Node_Id; Val : Union_Id) is
5118 pragma Assert (Nkind (N) in N_Entity);
5119 Nodes.Table (N + 4).Field6 := Val;
5122 procedure Set_Field25 (N : Node_Id; Val : Union_Id) is
5124 pragma Assert (Nkind (N) in N_Entity);
5125 Nodes.Table (N + 4).Field7 := Val;
5128 procedure Set_Field26 (N : Node_Id; Val : Union_Id) is
5130 pragma Assert (Nkind (N) in N_Entity);
5131 Nodes.Table (N + 4).Field8 := Val;
5134 procedure Set_Field27 (N : Node_Id; Val : Union_Id) is
5136 pragma Assert (Nkind (N) in N_Entity);
5137 Nodes.Table (N + 4).Field9 := Val;
5140 procedure Set_Field28 (N : Node_Id; Val : Union_Id) is
5142 pragma Assert (Nkind (N) in N_Entity);
5143 Nodes.Table (N + 4).Field10 := Val;
5146 procedure Set_Node1 (N : Node_Id; Val : Node_Id) is
5148 pragma Assert (N <= Nodes.Last);
5149 Nodes.Table (N).Field1 := Union_Id (Val);
5152 procedure Set_Node2 (N : Node_Id; Val : Node_Id) is
5154 pragma Assert (N <= Nodes.Last);
5155 Nodes.Table (N).Field2 := Union_Id (Val);
5158 procedure Set_Node3 (N : Node_Id; Val : Node_Id) is
5160 pragma Assert (N <= Nodes.Last);
5161 Nodes.Table (N).Field3 := Union_Id (Val);
5164 procedure Set_Node4 (N : Node_Id; Val : Node_Id) is
5166 pragma Assert (N <= Nodes.Last);
5167 Nodes.Table (N).Field4 := Union_Id (Val);
5170 procedure Set_Node5 (N : Node_Id; Val : Node_Id) is
5172 pragma Assert (N <= Nodes.Last);
5173 Nodes.Table (N).Field5 := Union_Id (Val);
5176 procedure Set_Node6 (N : Node_Id; Val : Node_Id) is
5178 pragma Assert (Nkind (N) in N_Entity);
5179 Nodes.Table (N + 1).Field6 := Union_Id (Val);
5182 procedure Set_Node7 (N : Node_Id; Val : Node_Id) is
5184 pragma Assert (Nkind (N) in N_Entity);
5185 Nodes.Table (N + 1).Field7 := Union_Id (Val);
5188 procedure Set_Node8 (N : Node_Id; Val : Node_Id) is
5190 pragma Assert (Nkind (N) in N_Entity);
5191 Nodes.Table (N + 1).Field8 := Union_Id (Val);
5194 procedure Set_Node9 (N : Node_Id; Val : Node_Id) is
5196 pragma Assert (Nkind (N) in N_Entity);
5197 Nodes.Table (N + 1).Field9 := Union_Id (Val);
5200 procedure Set_Node10 (N : Node_Id; Val : Node_Id) is
5202 pragma Assert (Nkind (N) in N_Entity);
5203 Nodes.Table (N + 1).Field10 := Union_Id (Val);
5206 procedure Set_Node11 (N : Node_Id; Val : Node_Id) is
5208 pragma Assert (Nkind (N) in N_Entity);
5209 Nodes.Table (N + 1).Field11 := Union_Id (Val);
5212 procedure Set_Node12 (N : Node_Id; Val : Node_Id) is
5214 pragma Assert (Nkind (N) in N_Entity);
5215 Nodes.Table (N + 1).Field12 := Union_Id (Val);
5218 procedure Set_Node13 (N : Node_Id; Val : Node_Id) is
5220 pragma Assert (Nkind (N) in N_Entity);
5221 Nodes.Table (N + 2).Field6 := Union_Id (Val);
5224 procedure Set_Node14 (N : Node_Id; Val : Node_Id) is
5226 pragma Assert (Nkind (N) in N_Entity);
5227 Nodes.Table (N + 2).Field7 := Union_Id (Val);
5230 procedure Set_Node15 (N : Node_Id; Val : Node_Id) is
5232 pragma Assert (Nkind (N) in N_Entity);
5233 Nodes.Table (N + 2).Field8 := Union_Id (Val);
5236 procedure Set_Node16 (N : Node_Id; Val : Node_Id) is
5238 pragma Assert (Nkind (N) in N_Entity);
5239 Nodes.Table (N + 2).Field9 := Union_Id (Val);
5242 procedure Set_Node17 (N : Node_Id; Val : Node_Id) is
5244 pragma Assert (Nkind (N) in N_Entity);
5245 Nodes.Table (N + 2).Field10 := Union_Id (Val);
5248 procedure Set_Node18 (N : Node_Id; Val : Node_Id) is
5250 pragma Assert (Nkind (N) in N_Entity);
5251 Nodes.Table (N + 2).Field11 := Union_Id (Val);
5254 procedure Set_Node19 (N : Node_Id; Val : Node_Id) is
5256 pragma Assert (Nkind (N) in N_Entity);
5257 Nodes.Table (N + 3).Field6 := Union_Id (Val);
5260 procedure Set_Node20 (N : Node_Id; Val : Node_Id) is
5262 pragma Assert (Nkind (N) in N_Entity);
5263 Nodes.Table (N + 3).Field7 := Union_Id (Val);
5266 procedure Set_Node21 (N : Node_Id; Val : Node_Id) is
5268 pragma Assert (Nkind (N) in N_Entity);
5269 Nodes.Table (N + 3).Field8 := Union_Id (Val);
5272 procedure Set_Node22 (N : Node_Id; Val : Node_Id) is
5274 pragma Assert (Nkind (N) in N_Entity);
5275 Nodes.Table (N + 3).Field9 := Union_Id (Val);
5278 procedure Set_Node23 (N : Node_Id; Val : Node_Id) is
5280 pragma Assert (Nkind (N) in N_Entity);
5281 Nodes.Table (N + 3).Field10 := Union_Id (Val);
5284 procedure Set_Node24 (N : Node_Id; Val : Node_Id) is
5286 pragma Assert (Nkind (N) in N_Entity);
5287 Nodes.Table (N + 4).Field6 := Union_Id (Val);
5290 procedure Set_Node25 (N : Node_Id; Val : Node_Id) is
5292 pragma Assert (Nkind (N) in N_Entity);
5293 Nodes.Table (N + 4).Field7 := Union_Id (Val);
5296 procedure Set_Node26 (N : Node_Id; Val : Node_Id) is
5298 pragma Assert (Nkind (N) in N_Entity);
5299 Nodes.Table (N + 4).Field8 := Union_Id (Val);
5302 procedure Set_Node27 (N : Node_Id; Val : Node_Id) is
5304 pragma Assert (Nkind (N) in N_Entity);
5305 Nodes.Table (N + 4).Field9 := Union_Id (Val);
5308 procedure Set_Node28 (N : Node_Id; Val : Node_Id) is
5310 pragma Assert (Nkind (N) in N_Entity);
5311 Nodes.Table (N + 4).Field10 := Union_Id (Val);
5314 procedure Set_List1 (N : Node_Id; Val : List_Id) is
5316 pragma Assert (N <= Nodes.Last);
5317 Nodes.Table (N).Field1 := Union_Id (Val);
5320 procedure Set_List2 (N : Node_Id; Val : List_Id) is
5322 pragma Assert (N <= Nodes.Last);
5323 Nodes.Table (N).Field2 := Union_Id (Val);
5326 procedure Set_List3 (N : Node_Id; Val : List_Id) is
5328 pragma Assert (N <= Nodes.Last);
5329 Nodes.Table (N).Field3 := Union_Id (Val);
5332 procedure Set_List4 (N : Node_Id; Val : List_Id) is
5334 pragma Assert (N <= Nodes.Last);
5335 Nodes.Table (N).Field4 := Union_Id (Val);
5338 procedure Set_List5 (N : Node_Id; Val : List_Id) is
5340 pragma Assert (N <= Nodes.Last);
5341 Nodes.Table (N).Field5 := Union_Id (Val);
5344 procedure Set_List10 (N : Node_Id; Val : List_Id) is
5346 pragma Assert (Nkind (N) in N_Entity);
5347 Nodes.Table (N + 1).Field10 := Union_Id (Val);
5350 procedure Set_List14 (N : Node_Id; Val : List_Id) is
5352 pragma Assert (Nkind (N) in N_Entity);
5353 Nodes.Table (N + 2).Field7 := Union_Id (Val);
5356 procedure Set_Elist1 (N : Node_Id; Val : Elist_Id) is
5358 Nodes.Table (N).Field1 := Union_Id (Val);
5361 procedure Set_Elist2 (N : Node_Id; Val : Elist_Id) is
5363 Nodes.Table (N).Field2 := Union_Id (Val);
5366 procedure Set_Elist3 (N : Node_Id; Val : Elist_Id) is
5368 Nodes.Table (N).Field3 := Union_Id (Val);
5371 procedure Set_Elist4 (N : Node_Id; Val : Elist_Id) is
5373 Nodes.Table (N).Field4 := Union_Id (Val);
5376 procedure Set_Elist8 (N : Node_Id; Val : Elist_Id) is
5378 pragma Assert (Nkind (N) in N_Entity);
5379 Nodes.Table (N + 1).Field8 := Union_Id (Val);
5382 procedure Set_Elist13 (N : Node_Id; Val : Elist_Id) is
5384 pragma Assert (Nkind (N) in N_Entity);
5385 Nodes.Table (N + 2).Field6 := Union_Id (Val);
5388 procedure Set_Elist15 (N : Node_Id; Val : Elist_Id) is
5390 pragma Assert (Nkind (N) in N_Entity);
5391 Nodes.Table (N + 2).Field8 := Union_Id (Val);
5394 procedure Set_Elist16 (N : Node_Id; Val : Elist_Id) is
5396 pragma Assert (Nkind (N) in N_Entity);
5397 Nodes.Table (N + 2).Field9 := Union_Id (Val);
5400 procedure Set_Elist18 (N : Node_Id; Val : Elist_Id) is
5402 pragma Assert (Nkind (N) in N_Entity);
5403 Nodes.Table (N + 2).Field11 := Union_Id (Val);
5406 procedure Set_Elist21 (N : Node_Id; Val : Elist_Id) is
5408 pragma Assert (Nkind (N) in N_Entity);
5409 Nodes.Table (N + 3).Field8 := Union_Id (Val);
5412 procedure Set_Elist23 (N : Node_Id; Val : Elist_Id) is
5414 pragma Assert (Nkind (N) in N_Entity);
5415 Nodes.Table (N + 3).Field10 := Union_Id (Val);
5418 procedure Set_Elist25 (N : Node_Id; Val : Elist_Id) is
5420 pragma Assert (Nkind (N) in N_Entity);
5421 Nodes.Table (N + 4).Field7 := Union_Id (Val);
5424 procedure Set_Name1 (N : Node_Id; Val : Name_Id) is
5426 pragma Assert (N <= Nodes.Last);
5427 Nodes.Table (N).Field1 := Union_Id (Val);
5430 procedure Set_Name2 (N : Node_Id; Val : Name_Id) is
5432 pragma Assert (N <= Nodes.Last);
5433 Nodes.Table (N).Field2 := Union_Id (Val);
5436 procedure Set_Str3 (N : Node_Id; Val : String_Id) is
5438 pragma Assert (N <= Nodes.Last);
5439 Nodes.Table (N).Field3 := Union_Id (Val);
5442 procedure Set_Uint2 (N : Node_Id; Val : Uint) is
5444 pragma Assert (N <= Nodes.Last);
5445 Nodes.Table (N).Field2 := To_Union (Val);
5448 procedure Set_Uint3 (N : Node_Id; Val : Uint) is
5450 pragma Assert (N <= Nodes.Last);
5451 Nodes.Table (N).Field3 := To_Union (Val);
5454 procedure Set_Uint4 (N : Node_Id; Val : Uint) is
5456 pragma Assert (N <= Nodes.Last);
5457 Nodes.Table (N).Field4 := To_Union (Val);
5460 procedure Set_Uint5 (N : Node_Id; Val : Uint) is
5462 pragma Assert (N <= Nodes.Last);
5463 Nodes.Table (N).Field5 := To_Union (Val);
5466 procedure Set_Uint8 (N : Node_Id; Val : Uint) is
5468 pragma Assert (Nkind (N) in N_Entity);
5469 Nodes.Table (N + 1).Field8 := To_Union (Val);
5472 procedure Set_Uint9 (N : Node_Id; Val : Uint) is
5474 pragma Assert (Nkind (N) in N_Entity);
5475 Nodes.Table (N + 1).Field9 := To_Union (Val);
5478 procedure Set_Uint10 (N : Node_Id; Val : Uint) is
5480 pragma Assert (Nkind (N) in N_Entity);
5481 Nodes.Table (N + 1).Field10 := To_Union (Val);
5484 procedure Set_Uint11 (N : Node_Id; Val : Uint) is
5486 pragma Assert (Nkind (N) in N_Entity);
5487 Nodes.Table (N + 1).Field11 := To_Union (Val);
5490 procedure Set_Uint12 (N : Node_Id; Val : Uint) is
5492 pragma Assert (Nkind (N) in N_Entity);
5493 Nodes.Table (N + 1).Field12 := To_Union (Val);
5496 procedure Set_Uint13 (N : Node_Id; Val : Uint) is
5498 pragma Assert (Nkind (N) in N_Entity);
5499 Nodes.Table (N + 2).Field6 := To_Union (Val);
5502 procedure Set_Uint14 (N : Node_Id; Val : Uint) is
5504 pragma Assert (Nkind (N) in N_Entity);
5505 Nodes.Table (N + 2).Field7 := To_Union (Val);
5508 procedure Set_Uint15 (N : Node_Id; Val : Uint) is
5510 pragma Assert (Nkind (N) in N_Entity);
5511 Nodes.Table (N + 2).Field8 := To_Union (Val);
5514 procedure Set_Uint16 (N : Node_Id; Val : Uint) is
5516 pragma Assert (Nkind (N) in N_Entity);
5517 Nodes.Table (N + 2).Field9 := To_Union (Val);
5520 procedure Set_Uint17 (N : Node_Id; Val : Uint) is
5522 pragma Assert (Nkind (N) in N_Entity);
5523 Nodes.Table (N + 2).Field10 := To_Union (Val);
5526 procedure Set_Uint22 (N : Node_Id; Val : Uint) is
5528 pragma Assert (Nkind (N) in N_Entity);
5529 Nodes.Table (N + 3).Field9 := To_Union (Val);
5532 procedure Set_Ureal3 (N : Node_Id; Val : Ureal) is
5534 pragma Assert (N <= Nodes.Last);
5535 Nodes.Table (N).Field3 := To_Union (Val);
5538 procedure Set_Ureal18 (N : Node_Id; Val : Ureal) is
5540 pragma Assert (Nkind (N) in N_Entity);
5541 Nodes.Table (N + 2).Field11 := To_Union (Val);
5544 procedure Set_Ureal21 (N : Node_Id; Val : Ureal) is
5546 pragma Assert (Nkind (N) in N_Entity);
5547 Nodes.Table (N + 3).Field8 := To_Union (Val);
5550 procedure Set_Flag4 (N : Node_Id; Val : Boolean) is
5552 pragma Assert (N <= Nodes.Last);
5553 Nodes.Table (N).Flag4 := Val;
5556 procedure Set_Flag5 (N : Node_Id; Val : Boolean) is
5558 pragma Assert (N <= Nodes.Last);
5559 Nodes.Table (N).Flag5 := Val;
5562 procedure Set_Flag6 (N : Node_Id; Val : Boolean) is
5564 pragma Assert (N <= Nodes.Last);
5565 Nodes.Table (N).Flag6 := Val;
5568 procedure Set_Flag7 (N : Node_Id; Val : Boolean) is
5570 pragma Assert (N <= Nodes.Last);
5571 Nodes.Table (N).Flag7 := Val;
5574 procedure Set_Flag8 (N : Node_Id; Val : Boolean) is
5576 pragma Assert (N <= Nodes.Last);
5577 Nodes.Table (N).Flag8 := Val;
5580 procedure Set_Flag9 (N : Node_Id; Val : Boolean) is
5582 pragma Assert (N <= Nodes.Last);
5583 Nodes.Table (N).Flag9 := Val;
5586 procedure Set_Flag10 (N : Node_Id; Val : Boolean) is
5588 pragma Assert (N <= Nodes.Last);
5589 Nodes.Table (N).Flag10 := Val;
5592 procedure Set_Flag11 (N : Node_Id; Val : Boolean) is
5594 pragma Assert (N <= Nodes.Last);
5595 Nodes.Table (N).Flag11 := Val;
5598 procedure Set_Flag12 (N : Node_Id; Val : Boolean) is
5600 pragma Assert (N <= Nodes.Last);
5601 Nodes.Table (N).Flag12 := Val;
5604 procedure Set_Flag13 (N : Node_Id; Val : Boolean) is
5606 pragma Assert (N <= Nodes.Last);
5607 Nodes.Table (N).Flag13 := Val;
5610 procedure Set_Flag14 (N : Node_Id; Val : Boolean) is
5612 pragma Assert (N <= Nodes.Last);
5613 Nodes.Table (N).Flag14 := Val;
5616 procedure Set_Flag15 (N : Node_Id; Val : Boolean) is
5618 pragma Assert (N <= Nodes.Last);
5619 Nodes.Table (N).Flag15 := Val;
5622 procedure Set_Flag16 (N : Node_Id; Val : Boolean) is
5624 pragma Assert (N <= Nodes.Last);
5625 Nodes.Table (N).Flag16 := Val;
5628 procedure Set_Flag17 (N : Node_Id; Val : Boolean) is
5630 pragma Assert (N <= Nodes.Last);
5631 Nodes.Table (N).Flag17 := Val;
5634 procedure Set_Flag18 (N : Node_Id; Val : Boolean) is
5636 pragma Assert (N <= Nodes.Last);
5637 Nodes.Table (N).Flag18 := Val;
5640 procedure Set_Flag19 (N : Node_Id; Val : Boolean) is
5642 pragma Assert (Nkind (N) in N_Entity);
5643 Nodes.Table (N + 1).In_List := Val;
5646 procedure Set_Flag20 (N : Node_Id; Val : Boolean) is
5648 pragma Assert (Nkind (N) in N_Entity);
5649 Nodes.Table (N + 1).Unused_1 := Val;
5652 procedure Set_Flag21 (N : Node_Id; Val : Boolean) is
5654 pragma Assert (Nkind (N) in N_Entity);
5655 Nodes.Table (N + 1).Rewrite_Ins := Val;
5658 procedure Set_Flag22 (N : Node_Id; Val : Boolean) is
5660 pragma Assert (Nkind (N) in N_Entity);
5661 Nodes.Table (N + 1).Analyzed := Val;
5664 procedure Set_Flag23 (N : Node_Id; Val : Boolean) is
5666 pragma Assert (Nkind (N) in N_Entity);
5667 Nodes.Table (N + 1).Comes_From_Source := Val;
5670 procedure Set_Flag24 (N : Node_Id; Val : Boolean) is
5672 pragma Assert (Nkind (N) in N_Entity);
5673 Nodes.Table (N + 1).Error_Posted := Val;
5676 procedure Set_Flag25 (N : Node_Id; Val : Boolean) is
5678 pragma Assert (Nkind (N) in N_Entity);
5679 Nodes.Table (N + 1).Flag4 := Val;
5682 procedure Set_Flag26 (N : Node_Id; Val : Boolean) is
5684 pragma Assert (Nkind (N) in N_Entity);
5685 Nodes.Table (N + 1).Flag5 := Val;
5688 procedure Set_Flag27 (N : Node_Id; Val : Boolean) is
5690 pragma Assert (Nkind (N) in N_Entity);
5691 Nodes.Table (N + 1).Flag6 := Val;
5694 procedure Set_Flag28 (N : Node_Id; Val : Boolean) is
5696 pragma Assert (Nkind (N) in N_Entity);
5697 Nodes.Table (N + 1).Flag7 := Val;
5700 procedure Set_Flag29 (N : Node_Id; Val : Boolean) is
5702 pragma Assert (Nkind (N) in N_Entity);
5703 Nodes.Table (N + 1).Flag8 := Val;
5706 procedure Set_Flag30 (N : Node_Id; Val : Boolean) is
5708 pragma Assert (Nkind (N) in N_Entity);
5709 Nodes.Table (N + 1).Flag9 := Val;
5712 procedure Set_Flag31 (N : Node_Id; Val : Boolean) is
5714 pragma Assert (Nkind (N) in N_Entity);
5715 Nodes.Table (N + 1).Flag10 := Val;
5718 procedure Set_Flag32 (N : Node_Id; Val : Boolean) is
5720 pragma Assert (Nkind (N) in N_Entity);
5721 Nodes.Table (N + 1).Flag11 := Val;
5724 procedure Set_Flag33 (N : Node_Id; Val : Boolean) is
5726 pragma Assert (Nkind (N) in N_Entity);
5727 Nodes.Table (N + 1).Flag12 := Val;
5730 procedure Set_Flag34 (N : Node_Id; Val : Boolean) is
5732 pragma Assert (Nkind (N) in N_Entity);
5733 Nodes.Table (N + 1).Flag13 := Val;
5736 procedure Set_Flag35 (N : Node_Id; Val : Boolean) is
5738 pragma Assert (Nkind (N) in N_Entity);
5739 Nodes.Table (N + 1).Flag14 := Val;
5742 procedure Set_Flag36 (N : Node_Id; Val : Boolean) is
5744 pragma Assert (Nkind (N) in N_Entity);
5745 Nodes.Table (N + 1).Flag15 := Val;
5748 procedure Set_Flag37 (N : Node_Id; Val : Boolean) is
5750 pragma Assert (Nkind (N) in N_Entity);
5751 Nodes.Table (N + 1).Flag16 := Val;
5754 procedure Set_Flag38 (N : Node_Id; Val : Boolean) is
5756 pragma Assert (Nkind (N) in N_Entity);
5757 Nodes.Table (N + 1).Flag17 := Val;
5760 procedure Set_Flag39 (N : Node_Id; Val : Boolean) is
5762 pragma Assert (Nkind (N) in N_Entity);
5763 Nodes.Table (N + 1).Flag18 := Val;
5766 procedure Set_Flag40 (N : Node_Id; Val : Boolean) is
5768 pragma Assert (Nkind (N) in N_Entity);
5769 Nodes.Table (N + 2).In_List := Val;
5772 procedure Set_Flag41 (N : Node_Id; Val : Boolean) is
5774 pragma Assert (Nkind (N) in N_Entity);
5775 Nodes.Table (N + 2).Unused_1 := Val;
5778 procedure Set_Flag42 (N : Node_Id; Val : Boolean) is
5780 pragma Assert (Nkind (N) in N_Entity);
5781 Nodes.Table (N + 2).Rewrite_Ins := Val;
5784 procedure Set_Flag43 (N : Node_Id; Val : Boolean) is
5786 pragma Assert (Nkind (N) in N_Entity);
5787 Nodes.Table (N + 2).Analyzed := Val;
5790 procedure Set_Flag44 (N : Node_Id; Val : Boolean) is
5792 pragma Assert (Nkind (N) in N_Entity);
5793 Nodes.Table (N + 2).Comes_From_Source := Val;
5796 procedure Set_Flag45 (N : Node_Id; Val : Boolean) is
5798 pragma Assert (Nkind (N) in N_Entity);
5799 Nodes.Table (N + 2).Error_Posted := Val;
5802 procedure Set_Flag46 (N : Node_Id; Val : Boolean) is
5804 pragma Assert (Nkind (N) in N_Entity);
5805 Nodes.Table (N + 2).Flag4 := Val;
5808 procedure Set_Flag47 (N : Node_Id; Val : Boolean) is
5810 pragma Assert (Nkind (N) in N_Entity);
5811 Nodes.Table (N + 2).Flag5 := Val;
5814 procedure Set_Flag48 (N : Node_Id; Val : Boolean) is
5816 pragma Assert (Nkind (N) in N_Entity);
5817 Nodes.Table (N + 2).Flag6 := Val;
5820 procedure Set_Flag49 (N : Node_Id; Val : Boolean) is
5822 pragma Assert (Nkind (N) in N_Entity);
5823 Nodes.Table (N + 2).Flag7 := Val;
5826 procedure Set_Flag50 (N : Node_Id; Val : Boolean) is
5828 pragma Assert (Nkind (N) in N_Entity);
5829 Nodes.Table (N + 2).Flag8 := Val;
5832 procedure Set_Flag51 (N : Node_Id; Val : Boolean) is
5834 pragma Assert (Nkind (N) in N_Entity);
5835 Nodes.Table (N + 2).Flag9 := Val;
5838 procedure Set_Flag52 (N : Node_Id; Val : Boolean) is
5840 pragma Assert (Nkind (N) in N_Entity);
5841 Nodes.Table (N + 2).Flag10 := Val;
5844 procedure Set_Flag53 (N : Node_Id; Val : Boolean) is
5846 pragma Assert (Nkind (N) in N_Entity);
5847 Nodes.Table (N + 2).Flag11 := Val;
5850 procedure Set_Flag54 (N : Node_Id; Val : Boolean) is
5852 pragma Assert (Nkind (N) in N_Entity);
5853 Nodes.Table (N + 2).Flag12 := Val;
5856 procedure Set_Flag55 (N : Node_Id; Val : Boolean) is
5858 pragma Assert (Nkind (N) in N_Entity);
5859 Nodes.Table (N + 2).Flag13 := Val;
5862 procedure Set_Flag56 (N : Node_Id; Val : Boolean) is
5864 pragma Assert (Nkind (N) in N_Entity);
5865 Nodes.Table (N + 2).Flag14 := Val;
5868 procedure Set_Flag57 (N : Node_Id; Val : Boolean) is
5870 pragma Assert (Nkind (N) in N_Entity);
5871 Nodes.Table (N + 2).Flag15 := Val;
5874 procedure Set_Flag58 (N : Node_Id; Val : Boolean) is
5876 pragma Assert (Nkind (N) in N_Entity);
5877 Nodes.Table (N + 2).Flag16 := Val;
5880 procedure Set_Flag59 (N : Node_Id; Val : Boolean) is
5882 pragma Assert (Nkind (N) in N_Entity);
5883 Nodes.Table (N + 2).Flag17 := Val;
5886 procedure Set_Flag60 (N : Node_Id; Val : Boolean) is
5888 pragma Assert (Nkind (N) in N_Entity);
5889 Nodes.Table (N + 2).Flag18 := Val;
5892 procedure Set_Flag61 (N : Node_Id; Val : Boolean) is
5894 pragma Assert (Nkind (N) in N_Entity);
5895 Nodes.Table (N + 1).Pflag1 := Val;
5898 procedure Set_Flag62 (N : Node_Id; Val : Boolean) is
5900 pragma Assert (Nkind (N) in N_Entity);
5901 Nodes.Table (N + 1).Pflag2 := Val;
5904 procedure Set_Flag63 (N : Node_Id; Val : Boolean) is
5906 pragma Assert (Nkind (N) in N_Entity);
5907 Nodes.Table (N + 2).Pflag1 := Val;
5910 procedure Set_Flag64 (N : Node_Id; Val : Boolean) is
5912 pragma Assert (Nkind (N) in N_Entity);
5913 Nodes.Table (N + 2).Pflag2 := Val;
5916 procedure Set_Flag65 (N : Node_Id; Val : Boolean) is
5918 pragma Assert (Nkind (N) in N_Entity);
5921 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag65 := Val;
5924 procedure Set_Flag66 (N : Node_Id; Val : Boolean) is
5926 pragma Assert (Nkind (N) in N_Entity);
5929 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag66 := Val;
5932 procedure Set_Flag67 (N : Node_Id; Val : Boolean) is
5934 pragma Assert (Nkind (N) in N_Entity);
5937 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag67 := Val;
5940 procedure Set_Flag68 (N : Node_Id; Val : Boolean) is
5942 pragma Assert (Nkind (N) in N_Entity);
5945 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag68 := Val;
5948 procedure Set_Flag69 (N : Node_Id; Val : Boolean) is
5950 pragma Assert (Nkind (N) in N_Entity);
5953 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag69 := Val;
5956 procedure Set_Flag70 (N : Node_Id; Val : Boolean) is
5958 pragma Assert (Nkind (N) in N_Entity);
5961 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag70 := Val;
5964 procedure Set_Flag71 (N : Node_Id; Val : Boolean) is
5966 pragma Assert (Nkind (N) in N_Entity);
5969 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag71 := Val;
5972 procedure Set_Flag72 (N : Node_Id; Val : Boolean) is
5974 pragma Assert (Nkind (N) in N_Entity);
5977 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag72 := Val;
5980 procedure Set_Flag73 (N : Node_Id; Val : Boolean) is
5982 pragma Assert (Nkind (N) in N_Entity);
5985 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag73 := Val;
5988 procedure Set_Flag74 (N : Node_Id; Val : Boolean) is
5990 pragma Assert (Nkind (N) in N_Entity);
5993 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag74 := Val;
5996 procedure Set_Flag75 (N : Node_Id; Val : Boolean) is
5998 pragma Assert (Nkind (N) in N_Entity);
6001 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag75 := Val;
6004 procedure Set_Flag76 (N : Node_Id; Val : Boolean) is
6006 pragma Assert (Nkind (N) in N_Entity);
6009 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag76 := Val;
6012 procedure Set_Flag77 (N : Node_Id; Val : Boolean) is
6014 pragma Assert (Nkind (N) in N_Entity);
6017 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag77 := Val;
6020 procedure Set_Flag78 (N : Node_Id; Val : Boolean) is
6022 pragma Assert (Nkind (N) in N_Entity);
6025 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag78 := Val;
6028 procedure Set_Flag79 (N : Node_Id; Val : Boolean) is
6030 pragma Assert (Nkind (N) in N_Entity);
6033 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag79 := Val;
6036 procedure Set_Flag80 (N : Node_Id; Val : Boolean) is
6038 pragma Assert (Nkind (N) in N_Entity);
6041 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag80 := Val;
6044 procedure Set_Flag81 (N : Node_Id; Val : Boolean) is
6046 pragma Assert (Nkind (N) in N_Entity);
6049 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag81 := Val;
6052 procedure Set_Flag82 (N : Node_Id; Val : Boolean) is
6054 pragma Assert (Nkind (N) in N_Entity);
6057 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag82 := Val;
6060 procedure Set_Flag83 (N : Node_Id; Val : Boolean) is
6062 pragma Assert (Nkind (N) in N_Entity);
6065 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag83 := Val;
6068 procedure Set_Flag84 (N : Node_Id; Val : Boolean) is
6070 pragma Assert (Nkind (N) in N_Entity);
6073 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag84 := Val;
6076 procedure Set_Flag85 (N : Node_Id; Val : Boolean) is
6078 pragma Assert (Nkind (N) in N_Entity);
6081 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag85 := Val;
6084 procedure Set_Flag86 (N : Node_Id; Val : Boolean) is
6086 pragma Assert (Nkind (N) in N_Entity);
6089 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag86 := Val;
6092 procedure Set_Flag87 (N : Node_Id; Val : Boolean) is
6094 pragma Assert (Nkind (N) in N_Entity);
6097 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag87 := Val;
6100 procedure Set_Flag88 (N : Node_Id; Val : Boolean) is
6102 pragma Assert (Nkind (N) in N_Entity);
6105 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag88 := Val;
6108 procedure Set_Flag89 (N : Node_Id; Val : Boolean) is
6110 pragma Assert (Nkind (N) in N_Entity);
6113 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag89 := Val;
6116 procedure Set_Flag90 (N : Node_Id; Val : Boolean) is
6118 pragma Assert (Nkind (N) in N_Entity);
6121 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag90 := Val;
6124 procedure Set_Flag91 (N : Node_Id; Val : Boolean) is
6126 pragma Assert (Nkind (N) in N_Entity);
6129 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag91 := Val;
6132 procedure Set_Flag92 (N : Node_Id; Val : Boolean) is
6134 pragma Assert (Nkind (N) in N_Entity);
6137 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag92 := Val;
6140 procedure Set_Flag93 (N : Node_Id; Val : Boolean) is
6142 pragma Assert (Nkind (N) in N_Entity);
6145 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag93 := Val;
6148 procedure Set_Flag94 (N : Node_Id; Val : Boolean) is
6150 pragma Assert (Nkind (N) in N_Entity);
6153 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag94 := Val;
6156 procedure Set_Flag95 (N : Node_Id; Val : Boolean) is
6158 pragma Assert (Nkind (N) in N_Entity);
6161 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag95 := Val;
6164 procedure Set_Flag96 (N : Node_Id; Val : Boolean) is
6166 pragma Assert (Nkind (N) in N_Entity);
6169 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag96 := Val;
6172 procedure Set_Flag97 (N : Node_Id; Val : Boolean) is
6174 pragma Assert (Nkind (N) in N_Entity);
6177 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag97 := Val;
6180 procedure Set_Flag98 (N : Node_Id; Val : Boolean) is
6182 pragma Assert (Nkind (N) in N_Entity);
6185 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag98 := Val;
6188 procedure Set_Flag99 (N : Node_Id; Val : Boolean) is
6190 pragma Assert (Nkind (N) in N_Entity);
6193 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag99 := Val;
6196 procedure Set_Flag100 (N : Node_Id; Val : Boolean) is
6198 pragma Assert (Nkind (N) in N_Entity);
6201 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag100 := Val;
6204 procedure Set_Flag101 (N : Node_Id; Val : Boolean) is
6206 pragma Assert (Nkind (N) in N_Entity);
6209 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag101 := Val;
6212 procedure Set_Flag102 (N : Node_Id; Val : Boolean) is
6214 pragma Assert (Nkind (N) in N_Entity);
6217 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag102 := Val;
6220 procedure Set_Flag103 (N : Node_Id; Val : Boolean) is
6222 pragma Assert (Nkind (N) in N_Entity);
6225 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag103 := Val;
6228 procedure Set_Flag104 (N : Node_Id; Val : Boolean) is
6230 pragma Assert (Nkind (N) in N_Entity);
6233 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag104 := Val;
6236 procedure Set_Flag105 (N : Node_Id; Val : Boolean) is
6238 pragma Assert (Nkind (N) in N_Entity);
6241 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag105 := Val;
6244 procedure Set_Flag106 (N : Node_Id; Val : Boolean) is
6246 pragma Assert (Nkind (N) in N_Entity);
6249 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag106 := Val;
6252 procedure Set_Flag107 (N : Node_Id; Val : Boolean) is
6254 pragma Assert (Nkind (N) in N_Entity);
6257 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag107 := Val;
6260 procedure Set_Flag108 (N : Node_Id; Val : Boolean) is
6262 pragma Assert (Nkind (N) in N_Entity);
6265 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag108 := Val;
6268 procedure Set_Flag109 (N : Node_Id; Val : Boolean) is
6270 pragma Assert (Nkind (N) in N_Entity);
6273 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag109 := Val;
6276 procedure Set_Flag110 (N : Node_Id; Val : Boolean) is
6278 pragma Assert (Nkind (N) in N_Entity);
6281 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag110 := Val;
6284 procedure Set_Flag111 (N : Node_Id; Val : Boolean) is
6286 pragma Assert (Nkind (N) in N_Entity);
6289 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag111 := Val;
6292 procedure Set_Flag112 (N : Node_Id; Val : Boolean) is
6294 pragma Assert (Nkind (N) in N_Entity);
6297 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag112 := Val;
6300 procedure Set_Flag113 (N : Node_Id; Val : Boolean) is
6302 pragma Assert (Nkind (N) in N_Entity);
6305 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag113 := Val;
6308 procedure Set_Flag114 (N : Node_Id; Val : Boolean) is
6310 pragma Assert (Nkind (N) in N_Entity);
6313 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag114 := Val;
6316 procedure Set_Flag115 (N : Node_Id; Val : Boolean) is
6318 pragma Assert (Nkind (N) in N_Entity);
6321 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag115 := Val;
6324 procedure Set_Flag116 (N : Node_Id; Val : Boolean) is
6326 pragma Assert (Nkind (N) in N_Entity);
6329 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag116 := Val;
6332 procedure Set_Flag117 (N : Node_Id; Val : Boolean) is
6334 pragma Assert (Nkind (N) in N_Entity);
6337 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag117 := Val;
6340 procedure Set_Flag118 (N : Node_Id; Val : Boolean) is
6342 pragma Assert (Nkind (N) in N_Entity);
6345 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag118 := Val;
6348 procedure Set_Flag119 (N : Node_Id; Val : Boolean) is
6350 pragma Assert (Nkind (N) in N_Entity);
6353 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag119 := Val;
6356 procedure Set_Flag120 (N : Node_Id; Val : Boolean) is
6358 pragma Assert (Nkind (N) in N_Entity);
6361 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag120 := Val;
6364 procedure Set_Flag121 (N : Node_Id; Val : Boolean) is
6366 pragma Assert (Nkind (N) in N_Entity);
6369 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag121 := Val;
6372 procedure Set_Flag122 (N : Node_Id; Val : Boolean) is
6374 pragma Assert (Nkind (N) in N_Entity);
6377 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag122 := Val;
6380 procedure Set_Flag123 (N : Node_Id; Val : Boolean) is
6382 pragma Assert (Nkind (N) in N_Entity);
6385 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag123 := Val;
6388 procedure Set_Flag124 (N : Node_Id; Val : Boolean) is
6390 pragma Assert (Nkind (N) in N_Entity);
6393 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag124 := Val;
6396 procedure Set_Flag125 (N : Node_Id; Val : Boolean) is
6398 pragma Assert (Nkind (N) in N_Entity);
6401 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag125 := Val;
6404 procedure Set_Flag126 (N : Node_Id; Val : Boolean) is
6406 pragma Assert (Nkind (N) in N_Entity);
6409 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag126 := Val;
6412 procedure Set_Flag127 (N : Node_Id; Val : Boolean) is
6414 pragma Assert (Nkind (N) in N_Entity);
6417 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag127 := Val;
6420 procedure Set_Flag128 (N : Node_Id; Val : Boolean) is
6422 pragma Assert (Nkind (N) in N_Entity);
6425 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag128 := Val;
6428 procedure Set_Flag129 (N : Node_Id; Val : Boolean) is
6430 pragma Assert (Nkind (N) in N_Entity);
6431 Nodes.Table (N + 3).In_List := Val;
6434 procedure Set_Flag130 (N : Node_Id; Val : Boolean) is
6436 pragma Assert (Nkind (N) in N_Entity);
6437 Nodes.Table (N + 3).Unused_1 := Val;
6440 procedure Set_Flag131 (N : Node_Id; Val : Boolean) is
6442 pragma Assert (Nkind (N) in N_Entity);
6443 Nodes.Table (N + 3).Rewrite_Ins := Val;
6446 procedure Set_Flag132 (N : Node_Id; Val : Boolean) is
6448 pragma Assert (Nkind (N) in N_Entity);
6449 Nodes.Table (N + 3).Analyzed := Val;
6452 procedure Set_Flag133 (N : Node_Id; Val : Boolean) is
6454 pragma Assert (Nkind (N) in N_Entity);
6455 Nodes.Table (N + 3).Comes_From_Source := Val;
6458 procedure Set_Flag134 (N : Node_Id; Val : Boolean) is
6460 pragma Assert (Nkind (N) in N_Entity);
6461 Nodes.Table (N + 3).Error_Posted := Val;
6464 procedure Set_Flag135 (N : Node_Id; Val : Boolean) is
6466 pragma Assert (Nkind (N) in N_Entity);
6467 Nodes.Table (N + 3).Flag4 := Val;
6470 procedure Set_Flag136 (N : Node_Id; Val : Boolean) is
6472 pragma Assert (Nkind (N) in N_Entity);
6473 Nodes.Table (N + 3).Flag5 := Val;
6476 procedure Set_Flag137 (N : Node_Id; Val : Boolean) is
6478 pragma Assert (Nkind (N) in N_Entity);
6479 Nodes.Table (N + 3).Flag6 := Val;
6482 procedure Set_Flag138 (N : Node_Id; Val : Boolean) is
6484 pragma Assert (Nkind (N) in N_Entity);
6485 Nodes.Table (N + 3).Flag7 := Val;
6488 procedure Set_Flag139 (N : Node_Id; Val : Boolean) is
6490 pragma Assert (Nkind (N) in N_Entity);
6491 Nodes.Table (N + 3).Flag8 := Val;
6494 procedure Set_Flag140 (N : Node_Id; Val : Boolean) is
6496 pragma Assert (Nkind (N) in N_Entity);
6497 Nodes.Table (N + 3).Flag9 := Val;
6500 procedure Set_Flag141 (N : Node_Id; Val : Boolean) is
6502 pragma Assert (Nkind (N) in N_Entity);
6503 Nodes.Table (N + 3).Flag10 := Val;
6506 procedure Set_Flag142 (N : Node_Id; Val : Boolean) is
6508 pragma Assert (Nkind (N) in N_Entity);
6509 Nodes.Table (N + 3).Flag11 := Val;
6512 procedure Set_Flag143 (N : Node_Id; Val : Boolean) is
6514 pragma Assert (Nkind (N) in N_Entity);
6515 Nodes.Table (N + 3).Flag12 := Val;
6518 procedure Set_Flag144 (N : Node_Id; Val : Boolean) is
6520 pragma Assert (Nkind (N) in N_Entity);
6521 Nodes.Table (N + 3).Flag13 := Val;
6524 procedure Set_Flag145 (N : Node_Id; Val : Boolean) is
6526 pragma Assert (Nkind (N) in N_Entity);
6527 Nodes.Table (N + 3).Flag14 := Val;
6530 procedure Set_Flag146 (N : Node_Id; Val : Boolean) is
6532 pragma Assert (Nkind (N) in N_Entity);
6533 Nodes.Table (N + 3).Flag15 := Val;
6536 procedure Set_Flag147 (N : Node_Id; Val : Boolean) is
6538 pragma Assert (Nkind (N) in N_Entity);
6539 Nodes.Table (N + 3).Flag16 := Val;
6542 procedure Set_Flag148 (N : Node_Id; Val : Boolean) is
6544 pragma Assert (Nkind (N) in N_Entity);
6545 Nodes.Table (N + 3).Flag17 := Val;
6548 procedure Set_Flag149 (N : Node_Id; Val : Boolean) is
6550 pragma Assert (Nkind (N) in N_Entity);
6551 Nodes.Table (N + 3).Flag18 := Val;
6554 procedure Set_Flag150 (N : Node_Id; Val : Boolean) is
6556 pragma Assert (Nkind (N) in N_Entity);
6557 Nodes.Table (N + 3).Pflag1 := Val;
6560 procedure Set_Flag151 (N : Node_Id; Val : Boolean) is
6562 pragma Assert (Nkind (N) in N_Entity);
6563 Nodes.Table (N + 3).Pflag2 := Val;
6566 procedure Set_Flag152 (N : Node_Id; Val : Boolean) is
6568 pragma Assert (Nkind (N) in N_Entity);
6571 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag152 := Val;
6574 procedure Set_Flag153 (N : Node_Id; Val : Boolean) is
6576 pragma Assert (Nkind (N) in N_Entity);
6579 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag153 := Val;
6582 procedure Set_Flag154 (N : Node_Id; Val : Boolean) is
6584 pragma Assert (Nkind (N) in N_Entity);
6587 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag154 := Val;
6590 procedure Set_Flag155 (N : Node_Id; Val : Boolean) is
6592 pragma Assert (Nkind (N) in N_Entity);
6595 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag155 := Val;
6598 procedure Set_Flag156 (N : Node_Id; Val : Boolean) is
6600 pragma Assert (Nkind (N) in N_Entity);
6603 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag156 := Val;
6606 procedure Set_Flag157 (N : Node_Id; Val : Boolean) is
6608 pragma Assert (Nkind (N) in N_Entity);
6611 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag157 := Val;
6614 procedure Set_Flag158 (N : Node_Id; Val : Boolean) is
6616 pragma Assert (Nkind (N) in N_Entity);
6619 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag158 := Val;
6622 procedure Set_Flag159 (N : Node_Id; Val : Boolean) is
6624 pragma Assert (Nkind (N) in N_Entity);
6627 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag159 := Val;
6630 procedure Set_Flag160 (N : Node_Id; Val : Boolean) is
6632 pragma Assert (Nkind (N) in N_Entity);
6635 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag160 := Val;
6638 procedure Set_Flag161 (N : Node_Id; Val : Boolean) is
6640 pragma Assert (Nkind (N) in N_Entity);
6643 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag161 := Val;
6646 procedure Set_Flag162 (N : Node_Id; Val : Boolean) is
6648 pragma Assert (Nkind (N) in N_Entity);
6651 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag162 := Val;
6654 procedure Set_Flag163 (N : Node_Id; Val : Boolean) is
6656 pragma Assert (Nkind (N) in N_Entity);
6659 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag163 := Val;
6662 procedure Set_Flag164 (N : Node_Id; Val : Boolean) is
6664 pragma Assert (Nkind (N) in N_Entity);
6667 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag164 := Val;
6670 procedure Set_Flag165 (N : Node_Id; Val : Boolean) is
6672 pragma Assert (Nkind (N) in N_Entity);
6675 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag165 := Val;
6678 procedure Set_Flag166 (N : Node_Id; Val : Boolean) is
6680 pragma Assert (Nkind (N) in N_Entity);
6683 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag166 := Val;
6686 procedure Set_Flag167 (N : Node_Id; Val : Boolean) is
6688 pragma Assert (Nkind (N) in N_Entity);
6691 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag167 := Val;
6694 procedure Set_Flag168 (N : Node_Id; Val : Boolean) is
6696 pragma Assert (Nkind (N) in N_Entity);
6699 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag168 := Val;
6702 procedure Set_Flag169 (N : Node_Id; Val : Boolean) is
6704 pragma Assert (Nkind (N) in N_Entity);
6707 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag169 := Val;
6710 procedure Set_Flag170 (N : Node_Id; Val : Boolean) is
6712 pragma Assert (Nkind (N) in N_Entity);
6715 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag170 := Val;
6718 procedure Set_Flag171 (N : Node_Id; Val : Boolean) is
6720 pragma Assert (Nkind (N) in N_Entity);
6723 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag171 := Val;
6726 procedure Set_Flag172 (N : Node_Id; Val : Boolean) is
6728 pragma Assert (Nkind (N) in N_Entity);
6731 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag172 := Val;
6734 procedure Set_Flag173 (N : Node_Id; Val : Boolean) is
6736 pragma Assert (Nkind (N) in N_Entity);
6739 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag173 := Val;
6742 procedure Set_Flag174 (N : Node_Id; Val : Boolean) is
6744 pragma Assert (Nkind (N) in N_Entity);
6747 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag174 := Val;
6750 procedure Set_Flag175 (N : Node_Id; Val : Boolean) is
6752 pragma Assert (Nkind (N) in N_Entity);
6755 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag175 := Val;
6758 procedure Set_Flag176 (N : Node_Id; Val : Boolean) is
6760 pragma Assert (Nkind (N) in N_Entity);
6763 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag176 := Val;
6766 procedure Set_Flag177 (N : Node_Id; Val : Boolean) is
6768 pragma Assert (Nkind (N) in N_Entity);
6771 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag177 := Val;
6774 procedure Set_Flag178 (N : Node_Id; Val : Boolean) is
6776 pragma Assert (Nkind (N) in N_Entity);
6779 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag178 := Val;
6782 procedure Set_Flag179 (N : Node_Id; Val : Boolean) is
6784 pragma Assert (Nkind (N) in N_Entity);
6787 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag179 := Val;
6790 procedure Set_Flag180 (N : Node_Id; Val : Boolean) is
6792 pragma Assert (Nkind (N) in N_Entity);
6795 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag180 := Val;
6798 procedure Set_Flag181 (N : Node_Id; Val : Boolean) is
6800 pragma Assert (Nkind (N) in N_Entity);
6803 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag181 := Val;
6806 procedure Set_Flag182 (N : Node_Id; Val : Boolean) is
6808 pragma Assert (Nkind (N) in N_Entity);
6811 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag182 := Val;
6814 procedure Set_Flag183 (N : Node_Id; Val : Boolean) is
6816 pragma Assert (Nkind (N) in N_Entity);
6819 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag183 := Val;
6822 procedure Set_Flag184 (N : Node_Id; Val : Boolean) is
6824 pragma Assert (Nkind (N) in N_Entity);
6827 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag184 := Val;
6830 procedure Set_Flag185 (N : Node_Id; Val : Boolean) is
6832 pragma Assert (Nkind (N) in N_Entity);
6835 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag185 := Val;
6838 procedure Set_Flag186 (N : Node_Id; Val : Boolean) is
6840 pragma Assert (Nkind (N) in N_Entity);
6843 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag186 := Val;
6846 procedure Set_Flag187 (N : Node_Id; Val : Boolean) is
6848 pragma Assert (Nkind (N) in N_Entity);
6851 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag187 := Val;
6854 procedure Set_Flag188 (N : Node_Id; Val : Boolean) is
6856 pragma Assert (Nkind (N) in N_Entity);
6859 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag188 := Val;
6862 procedure Set_Flag189 (N : Node_Id; Val : Boolean) is
6864 pragma Assert (Nkind (N) in N_Entity);
6867 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag189 := Val;
6870 procedure Set_Flag190 (N : Node_Id; Val : Boolean) is
6872 pragma Assert (Nkind (N) in N_Entity);
6875 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag190 := Val;
6878 procedure Set_Flag191 (N : Node_Id; Val : Boolean) is
6880 pragma Assert (Nkind (N) in N_Entity);
6883 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag191 := Val;
6886 procedure Set_Flag192 (N : Node_Id; Val : Boolean) is
6888 pragma Assert (Nkind (N) in N_Entity);
6891 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag192 := Val;
6894 procedure Set_Flag193 (N : Node_Id; Val : Boolean) is
6896 pragma Assert (Nkind (N) in N_Entity);
6899 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag193 := Val;
6902 procedure Set_Flag194 (N : Node_Id; Val : Boolean) is
6904 pragma Assert (Nkind (N) in N_Entity);
6907 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag194 := Val;
6910 procedure Set_Flag195 (N : Node_Id; Val : Boolean) is
6912 pragma Assert (Nkind (N) in N_Entity);
6915 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag195 := Val;
6918 procedure Set_Flag196 (N : Node_Id; Val : Boolean) is
6920 pragma Assert (Nkind (N) in N_Entity);
6923 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag196 := Val;
6926 procedure Set_Flag197 (N : Node_Id; Val : Boolean) is
6928 pragma Assert (Nkind (N) in N_Entity);
6931 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag197 := Val;
6934 procedure Set_Flag198 (N : Node_Id; Val : Boolean) is
6936 pragma Assert (Nkind (N) in N_Entity);
6939 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag198 := Val;
6942 procedure Set_Flag199 (N : Node_Id; Val : Boolean) is
6944 pragma Assert (Nkind (N) in N_Entity);
6947 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag199 := Val;
6950 procedure Set_Flag200 (N : Node_Id; Val : Boolean) is
6952 pragma Assert (Nkind (N) in N_Entity);
6955 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag200 := Val;
6958 procedure Set_Flag201 (N : Node_Id; Val : Boolean) is
6960 pragma Assert (Nkind (N) in N_Entity);
6963 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag201 := Val;
6966 procedure Set_Flag202 (N : Node_Id; Val : Boolean) is
6968 pragma Assert (Nkind (N) in N_Entity);
6971 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag202 := Val;
6974 procedure Set_Flag203 (N : Node_Id; Val : Boolean) is
6976 pragma Assert (Nkind (N) in N_Entity);
6979 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag203 := Val;
6982 procedure Set_Flag204 (N : Node_Id; Val : Boolean) is
6984 pragma Assert (Nkind (N) in N_Entity);
6987 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag204 := Val;
6990 procedure Set_Flag205 (N : Node_Id; Val : Boolean) is
6992 pragma Assert (Nkind (N) in N_Entity);
6995 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag205 := Val;
6998 procedure Set_Flag206 (N : Node_Id; Val : Boolean) is
7000 pragma Assert (Nkind (N) in N_Entity);
7003 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag206 := Val;
7006 procedure Set_Flag207 (N : Node_Id; Val : Boolean) is
7008 pragma Assert (Nkind (N) in N_Entity);
7011 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag207 := Val;
7014 procedure Set_Flag208 (N : Node_Id; Val : Boolean) is
7016 pragma Assert (Nkind (N) in N_Entity);
7019 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag208 := Val;
7022 procedure Set_Flag209 (N : Node_Id; Val : Boolean) is
7024 pragma Assert (Nkind (N) in N_Entity);
7027 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag209 := Val;
7030 procedure Set_Flag210 (N : Node_Id; Val : Boolean) is
7032 pragma Assert (Nkind (N) in N_Entity);
7035 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag210 := Val;
7038 procedure Set_Flag211 (N : Node_Id; Val : Boolean) is
7040 pragma Assert (Nkind (N) in N_Entity);
7043 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag211 := Val;
7046 procedure Set_Flag212 (N : Node_Id; Val : Boolean) is
7048 pragma Assert (Nkind (N) in N_Entity);
7051 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag212 := Val;
7054 procedure Set_Flag213 (N : Node_Id; Val : Boolean) is
7056 pragma Assert (Nkind (N) in N_Entity);
7059 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag213 := Val;
7062 procedure Set_Flag214 (N : Node_Id; Val : Boolean) is
7064 pragma Assert (Nkind (N) in N_Entity);
7067 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag214 := Val;
7070 procedure Set_Flag215 (N : Node_Id; Val : Boolean) is
7072 pragma Assert (Nkind (N) in N_Entity);
7075 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag215 := Val;
7078 procedure Set_Flag216 (N : Node_Id; Val : Boolean) is
7080 pragma Assert (Nkind (N) in N_Entity);
7083 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag216 := Val;
7086 procedure Set_Flag217 (N : Node_Id; Val : Boolean) is
7088 pragma Assert (Nkind (N) in N_Entity);
7091 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag217 := Val;
7094 procedure Set_Flag218 (N : Node_Id; Val : Boolean) is
7096 pragma Assert (Nkind (N) in N_Entity);
7099 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag218 := Val;
7102 procedure Set_Flag219 (N : Node_Id; Val : Boolean) is
7104 pragma Assert (Nkind (N) in N_Entity);
7107 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag219 := Val;
7110 procedure Set_Flag220 (N : Node_Id; Val : Boolean) is
7112 pragma Assert (Nkind (N) in N_Entity);
7115 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag220 := Val;
7118 procedure Set_Flag221 (N : Node_Id; Val : Boolean) is
7120 pragma Assert (Nkind (N) in N_Entity);
7123 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag221 := Val;
7126 procedure Set_Flag222 (N : Node_Id; Val : Boolean) is
7128 pragma Assert (Nkind (N) in N_Entity);
7131 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag222 := Val;
7134 procedure Set_Flag223 (N : Node_Id; Val : Boolean) is
7136 pragma Assert (Nkind (N) in N_Entity);
7139 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag223 := Val;
7142 procedure Set_Flag224 (N : Node_Id; Val : Boolean) is
7144 pragma Assert (Nkind (N) in N_Entity);
7147 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag224 := Val;
7150 procedure Set_Flag225 (N : Node_Id; Val : Boolean) is
7152 pragma Assert (Nkind (N) in N_Entity);
7155 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag225 := Val;
7158 procedure Set_Flag226 (N : Node_Id; Val : Boolean) is
7160 pragma Assert (Nkind (N) in N_Entity);
7163 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag226 := Val;
7166 procedure Set_Flag227 (N : Node_Id; Val : Boolean) is
7168 pragma Assert (Nkind (N) in N_Entity);
7171 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag227 := Val;
7174 procedure Set_Flag228 (N : Node_Id; Val : Boolean) is
7176 pragma Assert (Nkind (N) in N_Entity);
7179 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag228 := Val;
7182 procedure Set_Flag229 (N : Node_Id; Val : Boolean) is
7184 pragma Assert (Nkind (N) in N_Entity);
7187 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag229 := Val;
7190 procedure Set_Flag230 (N : Node_Id; Val : Boolean) is
7192 pragma Assert (Nkind (N) in N_Entity);
7195 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag230 := Val;
7198 procedure Set_Flag231 (N : Node_Id; Val : Boolean) is
7200 pragma Assert (Nkind (N) in N_Entity);
7203 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag231 := Val;
7206 procedure Set_Flag232 (N : Node_Id; Val : Boolean) is
7208 pragma Assert (Nkind (N) in N_Entity);
7211 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag232 := Val;
7214 procedure Set_Flag233 (N : Node_Id; Val : Boolean) is
7216 pragma Assert (Nkind (N) in N_Entity);
7219 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag233 := Val;
7222 procedure Set_Flag234 (N : Node_Id; Val : Boolean) is
7224 pragma Assert (Nkind (N) in N_Entity);
7227 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag234 := Val;
7230 procedure Set_Flag235 (N : Node_Id; Val : Boolean) is
7232 pragma Assert (Nkind (N) in N_Entity);
7235 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag235 := Val;
7238 procedure Set_Flag236 (N : Node_Id; Val : Boolean) is
7240 pragma Assert (Nkind (N) in N_Entity);
7243 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag236 := Val;
7246 procedure Set_Flag237 (N : Node_Id; Val : Boolean) is
7248 pragma Assert (Nkind (N) in N_Entity);
7251 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag237 := Val;
7254 procedure Set_Flag238 (N : Node_Id; Val : Boolean) is
7256 pragma Assert (Nkind (N) in N_Entity);
7259 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag238 := Val;
7262 procedure Set_Flag239 (N : Node_Id; Val : Boolean) is
7264 pragma Assert (Nkind (N) in N_Entity);
7267 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag239 := Val;
7270 procedure Set_Flag240 (N : Node_Id; Val : Boolean) is
7272 pragma Assert (Nkind (N) in N_Entity);
7275 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag240 := Val;
7278 procedure Set_Flag241 (N : Node_Id; Val : Boolean) is
7280 pragma Assert (Nkind (N) in N_Entity);
7283 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag241 := Val;
7286 procedure Set_Flag242 (N : Node_Id; Val : Boolean) is
7288 pragma Assert (Nkind (N) in N_Entity);
7291 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag242 := Val;
7294 procedure Set_Flag243 (N : Node_Id; Val : Boolean) is
7296 pragma Assert (Nkind (N) in N_Entity);
7299 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag243 := Val;
7302 procedure Set_Flag244 (N : Node_Id; Val : Boolean) is
7304 pragma Assert (Nkind (N) in N_Entity);
7307 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag244 := Val;
7310 procedure Set_Flag245 (N : Node_Id; Val : Boolean) is
7312 pragma Assert (Nkind (N) in N_Entity);
7315 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag245 := Val;
7318 procedure Set_Flag246 (N : Node_Id; Val : Boolean) is
7320 pragma Assert (Nkind (N) in N_Entity);
7323 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag246 := Val;
7326 procedure Set_Flag247 (N : Node_Id; Val : Boolean) is
7328 pragma Assert (Nkind (N) in N_Entity);
7331 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag247 := Val;
7334 procedure Set_Node1_With_Parent (N : Node_Id; Val : Node_Id) is
7336 pragma Assert (N <= Nodes.Last);
7339 Set_Parent (Val, N);
7343 end Set_Node1_With_Parent;
7345 procedure Set_Node2_With_Parent (N : Node_Id; Val : Node_Id) is
7347 pragma Assert (N <= Nodes.Last);
7350 Set_Parent (Val, N);
7354 end Set_Node2_With_Parent;
7356 procedure Set_Node3_With_Parent (N : Node_Id; Val : Node_Id) is
7358 pragma Assert (N <= Nodes.Last);
7361 Set_Parent (Val, N);
7365 end Set_Node3_With_Parent;
7367 procedure Set_Node4_With_Parent (N : Node_Id; Val : Node_Id) is
7369 pragma Assert (N <= Nodes.Last);
7372 Set_Parent (Val, N);
7376 end Set_Node4_With_Parent;
7378 procedure Set_Node5_With_Parent (N : Node_Id; Val : Node_Id) is
7380 pragma Assert (N <= Nodes.Last);
7383 Set_Parent (Val, N);
7387 end Set_Node5_With_Parent;
7389 procedure Set_List1_With_Parent (N : Node_Id; Val : List_Id) is
7391 pragma Assert (N <= Nodes.Last);
7392 if Val /= No_List and then Val /= Error_List then
7393 Set_Parent (Val, N);
7396 end Set_List1_With_Parent;
7398 procedure Set_List2_With_Parent (N : Node_Id; Val : List_Id) is
7400 pragma Assert (N <= Nodes.Last);
7401 if Val /= No_List and then Val /= Error_List then
7402 Set_Parent (Val, N);
7405 end Set_List2_With_Parent;
7407 procedure Set_List3_With_Parent (N : Node_Id; Val : List_Id) is
7409 pragma Assert (N <= Nodes.Last);
7410 if Val /= No_List and then Val /= Error_List then
7411 Set_Parent (Val, N);
7414 end Set_List3_With_Parent;
7416 procedure Set_List4_With_Parent (N : Node_Id; Val : List_Id) is
7418 pragma Assert (N <= Nodes.Last);
7419 if Val /= No_List and then Val /= Error_List then
7420 Set_Parent (Val, N);
7423 end Set_List4_With_Parent;
7425 procedure Set_List5_With_Parent (N : Node_Id; Val : List_Id) is
7427 pragma Assert (N <= Nodes.Last);
7428 if Val /= No_List and then Val /= Error_List then
7429 Set_Parent (Val, N);
7432 end Set_List5_With_Parent;
7434 end Unchecked_Access;
7442 Nodes.Locked := False;
7443 Orig_Nodes.Locked := False;