1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
9 -- Copyright (C) 1992-2009, 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 3, 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. --
18 -- As a special exception under Section 7 of GPL version 3, you are granted --
19 -- additional permissions described in the GCC Runtime Library Exception, --
20 -- version 3.1, as published by the Free Software Foundation. --
22 -- You should have received a copy of the GNU General Public License and --
23 -- a copy of the GCC Runtime Library Exception along with this program; --
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
25 -- <http://www.gnu.org/licenses/>. --
27 -- GNAT was originally developed by the GNAT team at New York University. --
28 -- Extensive contributions were provided by Ada Core Technologies Inc. --
30 ------------------------------------------------------------------------------
32 pragma Style_Checks (All_Checks);
33 -- Turn off subprogram ordering check for this package
35 -- WARNING: There is a C version of this package. Any changes to this source
36 -- file must be properly reflected in the file atree.h which is a C header
37 -- file containing equivalent definitions for use by gigi.
39 with Debug; use Debug;
40 with Nlists; use Nlists;
41 with Elists; use Elists;
42 with Output; use Output;
43 with Sinput; use Sinput;
44 with Tree_IO; use Tree_IO;
46 with GNAT.HTable; use GNAT.HTable;
54 -- Suppose you find that node 12345 is messed up. You might want to find
55 -- the code that created that node. There are two ways to do this:
57 -- One way is to set a conditional breakpoint on New_Node_Debugging_Output
59 -- break nnd if n = 12345
60 -- and run gnat1 again from the beginning.
62 -- The other way is to set a breakpoint near the beginning (e.g. on
63 -- gnat1drv), and run. Then set Watch_Node (nickname "ww") to 12345 in gdb:
65 -- and set a breakpoint on New_Node_Breakpoint (nickname "nn"). Continue.
67 -- Either way, gnat1 will stop when node 12345 is created
69 -- The second method is faster
71 ww : Node_Id'Base := Node_Id'First - 1;
72 pragma Export (Ada, ww); -- trick the optimizer
73 Watch_Node : Node_Id'Base renames ww;
74 -- Node to "watch"; that is, whenever a node is created, we check if it is
75 -- equal to Watch_Node, and if so, call New_Node_Breakpoint. You have
76 -- presumably set a breakpoint on New_Node_Breakpoint. Note that the
77 -- initial value of Node_Id'First - 1 ensures that by default, no node
78 -- will be equal to Watch_Node.
81 pragma Export (Ada, nn);
82 procedure New_Node_Breakpoint renames nn;
83 -- This doesn't do anything interesting; it's just for setting breakpoint
84 -- on as explained above.
86 procedure nnd (N : Node_Id);
87 pragma Export (Ada, nnd);
88 procedure New_Node_Debugging_Output (N : Node_Id) renames nnd;
89 -- For debugging. If debugging is turned on, New_Node and New_Entity call
90 -- this. If debug flag N is turned on, this prints out the new node.
92 -- If Node = Watch_Node, this prints out the new node and calls
93 -- New_Node_Breakpoint. Otherwise, does nothing.
95 -----------------------------
96 -- Local Objects and Types --
97 -----------------------------
100 -- Count allocated nodes for Num_Nodes function
102 use Unchecked_Access;
103 -- We are allowed to see these from within our own body!
105 use Atree_Private_Part;
106 -- We are also allowed to see our private data structures!
108 function E_To_N is new Unchecked_Conversion (Entity_Kind, Node_Kind);
109 function N_To_E is new Unchecked_Conversion (Node_Kind, Entity_Kind);
110 -- Functions used to store Entity_Kind value in Nkind field
112 -- The following declarations are used to store flags 65-72 in the
113 -- Nkind field of the third component of an extended (entity) node.
115 type Flag_Byte is record
126 pragma Pack (Flag_Byte);
127 for Flag_Byte'Size use 8;
129 type Flag_Byte_Ptr is access all Flag_Byte;
130 type Node_Kind_Ptr is access all Node_Kind;
132 function To_Flag_Byte is new
133 Unchecked_Conversion (Node_Kind, Flag_Byte);
135 function To_Flag_Byte_Ptr is new
136 Unchecked_Conversion (Node_Kind_Ptr, Flag_Byte_Ptr);
138 -- The following declarations are used to store flags 73-96 and the
139 -- Convention field in the Field12 field of the third component of an
140 -- extended (Entity) node.
142 type Flag_Word is record
170 Convention : Convention_Id;
173 pragma Pack (Flag_Word);
174 for Flag_Word'Size use 32;
175 for Flag_Word'Alignment use 4;
177 type Flag_Word_Ptr is access all Flag_Word;
178 type Union_Id_Ptr is access all Union_Id;
180 function To_Flag_Word is new
181 Unchecked_Conversion (Union_Id, Flag_Word);
183 function To_Flag_Word_Ptr is new
184 Unchecked_Conversion (Union_Id_Ptr, Flag_Word_Ptr);
186 -- The following declarations are used to store flags 97-128 in the
187 -- Field12 field of the fourth component of an extended (entity) node.
189 type Flag_Word2 is record
227 pragma Pack (Flag_Word2);
228 for Flag_Word2'Size use 32;
229 for Flag_Word2'Alignment use 4;
231 type Flag_Word2_Ptr is access all Flag_Word2;
233 function To_Flag_Word2 is new
234 Unchecked_Conversion (Union_Id, Flag_Word2);
236 function To_Flag_Word2_Ptr is new
237 Unchecked_Conversion (Union_Id_Ptr, Flag_Word2_Ptr);
239 -- The following declarations are used to store flags 152-183 in the
240 -- Field11 field of the fourth component of an extended (entity) node.
242 type Flag_Word3 is record
280 pragma Pack (Flag_Word3);
281 for Flag_Word3'Size use 32;
282 for Flag_Word3'Alignment use 4;
284 type Flag_Word3_Ptr is access all Flag_Word3;
286 function To_Flag_Word3 is new
287 Unchecked_Conversion (Union_Id, Flag_Word3);
289 function To_Flag_Word3_Ptr is new
290 Unchecked_Conversion (Union_Id_Ptr, Flag_Word3_Ptr);
292 -- The following declarations are used to store flags 184-215 in the
293 -- Field11 field of the fifth component of an extended (entity) node.
295 type Flag_Word4 is record
333 pragma Pack (Flag_Word4);
334 for Flag_Word4'Size use 32;
335 for Flag_Word4'Alignment use 4;
337 type Flag_Word4_Ptr is access all Flag_Word4;
339 function To_Flag_Word4 is new
340 Unchecked_Conversion (Union_Id, Flag_Word4);
342 function To_Flag_Word4_Ptr is new
343 Unchecked_Conversion (Union_Id_Ptr, Flag_Word4_Ptr);
345 -- The following declarations are used to store flags 216-247 in the
346 -- Field12 field of the fifth component of an extended (entity) node.
348 type Flag_Word5 is record
386 pragma Pack (Flag_Word5);
387 for Flag_Word5'Size use 32;
388 for Flag_Word5'Alignment use 4;
390 type Flag_Word5_Ptr is access all Flag_Word5;
392 function To_Flag_Word5 is new
393 Unchecked_Conversion (Union_Id, Flag_Word5);
395 function To_Flag_Word5_Ptr is new
396 Unchecked_Conversion (Union_Id_Ptr, Flag_Word5_Ptr);
398 -- Default value used to initialize default nodes. Note that some of the
399 -- fields get overwritten, and in particular, Nkind always gets reset.
401 Default_Node : Node_Record := (
402 Is_Extension => False,
407 Rewrite_Ins => False,
409 Comes_From_Source => False, -- modified by Set_Comes_From_Source_Default
410 Error_Posted => False,
429 Nkind => N_Unused_At_Start,
432 Link => Empty_List_Or_Node,
433 Field1 => Empty_List_Or_Node,
434 Field2 => Empty_List_Or_Node,
435 Field3 => Empty_List_Or_Node,
436 Field4 => Empty_List_Or_Node,
437 Field5 => Empty_List_Or_Node);
439 -- Default value used to initialize node extensions (i.e. the second
440 -- and third and fourth components of an extended node). Note we are
441 -- cheating a bit here when it comes to Node12, which really holds
442 -- flags an (for the third component), the convention. But it works
443 -- because Empty, False, Convention_Ada, all happen to be all zero bits.
445 Default_Node_Extension : constant Node_Record := (
446 Is_Extension => True,
451 Rewrite_Ins => False,
453 Comes_From_Source => False,
454 Error_Posted => False,
473 Nkind => E_To_N (E_Void),
475 Field6 => Empty_List_Or_Node,
476 Field7 => Empty_List_Or_Node,
477 Field8 => Empty_List_Or_Node,
478 Field9 => Empty_List_Or_Node,
479 Field10 => Empty_List_Or_Node,
480 Field11 => Empty_List_Or_Node,
481 Field12 => Empty_List_Or_Node);
483 --------------------------------------------------
484 -- Implementation of Tree Substitution Routines --
485 --------------------------------------------------
487 -- A separate table keeps track of the mapping between rewritten nodes
488 -- and their corresponding original tree nodes. Rewrite makes an entry
489 -- in this table for use by Original_Node. By default, if no call is
490 -- Rewrite, the entry in this table points to the original unwritten node.
492 -- Note: eventually, this should be a field in the Node directly, but
493 -- for now we do not want to disturb the efficiency of a power of 2
496 package Orig_Nodes is new Table.Table (
497 Table_Component_Type => Node_Id,
498 Table_Index_Type => Node_Id'Base,
499 Table_Low_Bound => First_Node_Id,
500 Table_Initial => Alloc.Orig_Nodes_Initial,
501 Table_Increment => Alloc.Orig_Nodes_Increment,
502 Table_Name => "Orig_Nodes");
504 ----------------------------------------
505 -- Global_Variables for New_Copy_Tree --
506 ----------------------------------------
508 -- These global variables are used by New_Copy_Tree. See description
509 -- of the body of this subprogram for details. Global variables can be
510 -- safely used by New_Copy_Tree, since there is no case of a recursive
511 -- call from the processing inside New_Copy_Tree.
513 NCT_Hash_Threshhold : constant := 20;
514 -- If there are more than this number of pairs of entries in the
515 -- map, then Hash_Tables_Used will be set, and the hash tables will
516 -- be initialized and used for the searches.
518 NCT_Hash_Tables_Used : Boolean := False;
519 -- Set to True if hash tables are in use
521 NCT_Table_Entries : Nat;
522 -- Count entries in table to see if threshhold is reached
524 NCT_Hash_Table_Setup : Boolean := False;
525 -- Set to True if hash table contains data. We set this True if we
526 -- setup the hash table with data, and leave it set permanently
527 -- from then on, this is a signal that second and subsequent users
528 -- of the hash table must clear the old entries before reuse.
530 subtype NCT_Header_Num is Int range 0 .. 511;
531 -- Defines range of headers in hash tables (512 headers)
533 --------------------------
534 -- Paren_Count Handling --
535 --------------------------
537 -- As noted in the spec, the paren count in a sub-expression node has
538 -- four possible values 0,1,2, and 3. The value 3 really means 3 or more,
539 -- and we use an auxiliary serially scanned table to record the actual
540 -- count. A serial search is fine, only pathological programs will use
541 -- entries in this table. Normal programs won't use it at all.
543 type Paren_Count_Entry is record
545 -- The node to which this count applies
547 Count : Nat range 3 .. Nat'Last;
548 -- The count of parentheses, which will be in the indicated range
551 package Paren_Counts is new Table.Table (
552 Table_Component_Type => Paren_Count_Entry,
553 Table_Index_Type => Int,
554 Table_Low_Bound => 0,
556 Table_Increment => 200,
557 Table_Name => "Paren_Counts");
559 -----------------------
560 -- Local Subprograms --
561 -----------------------
563 procedure Fix_Parents (Ref_Node, Fix_Node : Node_Id);
564 -- Fixup parent pointers for the syntactic children of Fix_Node after
565 -- a copy, setting them to Fix_Node when they pointed to Ref_Node.
567 function Allocate_Initialize_Node
569 With_Extension : Boolean) return Node_Id;
570 -- Allocate a new node or node extension. If Src is not empty,
571 -- the information for the newly-allocated node is copied from it.
573 ------------------------------
574 -- Allocate_Initialize_Node --
575 ------------------------------
577 function Allocate_Initialize_Node
579 With_Extension : Boolean) return Node_Id
581 New_Id : Node_Id := Src;
582 Nod : Node_Record := Default_Node;
583 Ext1 : Node_Record := Default_Node_Extension;
584 Ext2 : Node_Record := Default_Node_Extension;
585 Ext3 : Node_Record := Default_Node_Extension;
586 Ext4 : Node_Record := Default_Node_Extension;
589 if Present (Src) then
590 Nod := Nodes.Table (Src);
592 if Has_Extension (Src) then
593 Ext1 := Nodes.Table (Src + 1);
594 Ext2 := Nodes.Table (Src + 2);
595 Ext3 := Nodes.Table (Src + 3);
596 Ext4 := Nodes.Table (Src + 4);
600 if not (Present (Src)
601 and then not Has_Extension (Src)
602 and then With_Extension
603 and then Src = Nodes.Last)
605 -- We are allocating a new node, or extending a node
606 -- other than Nodes.Last.
609 New_Id := Nodes.Last;
610 Orig_Nodes.Append (New_Id);
611 Node_Count := Node_Count + 1;
614 -- Specifically copy Paren_Count to deal with creating new table entry
615 -- if the parentheses count is at the maximum possible value already.
617 if Present (Src) and then Nkind (Src) in N_Subexpr then
618 Set_Paren_Count (New_Id, Paren_Count (Src));
621 -- Set extension nodes if required
623 if With_Extension then
630 Orig_Nodes.Set_Last (Nodes.Last);
631 Allocate_List_Tables (Nodes.Last);
633 end Allocate_Initialize_Node;
639 function Analyzed (N : Node_Id) return Boolean is
641 pragma Assert (N <= Nodes.Last);
642 return Nodes.Table (N).Analyzed;
645 --------------------------
646 -- Basic_Set_Convention --
647 --------------------------
649 procedure Basic_Set_Convention (E : Entity_Id; Val : Convention_Id) is
651 pragma Assert (Nkind (E) in N_Entity);
654 (Nodes.Table (E + 2).Field12'Unrestricted_Access)).Convention := Val;
655 end Basic_Set_Convention;
661 procedure Change_Node (N : Node_Id; New_Node_Kind : Node_Kind) is
662 Save_Sloc : constant Source_Ptr := Sloc (N);
663 Save_In_List : constant Boolean := Nodes.Table (N).In_List;
664 Save_Link : constant Union_Id := Nodes.Table (N).Link;
665 Save_CFS : constant Boolean := Nodes.Table (N).Comes_From_Source;
666 Save_Posted : constant Boolean := Nodes.Table (N).Error_Posted;
667 Par_Count : Nat := 0;
670 if Nkind (N) in N_Subexpr then
671 Par_Count := Paren_Count (N);
674 Nodes.Table (N) := Default_Node;
675 Nodes.Table (N).Sloc := Save_Sloc;
676 Nodes.Table (N).In_List := Save_In_List;
677 Nodes.Table (N).Link := Save_Link;
678 Nodes.Table (N).Comes_From_Source := Save_CFS;
679 Nodes.Table (N).Nkind := New_Node_Kind;
680 Nodes.Table (N).Error_Posted := Save_Posted;
682 if New_Node_Kind in N_Subexpr then
683 Set_Paren_Count (N, Par_Count);
687 -----------------------
688 -- Comes_From_Source --
689 -----------------------
691 function Comes_From_Source (N : Node_Id) return Boolean is
693 pragma Assert (N <= Nodes.Last);
694 return Nodes.Table (N).Comes_From_Source;
695 end Comes_From_Source;
701 function Convention (E : Entity_Id) return Convention_Id is
703 pragma Assert (Nkind (E) in N_Entity);
704 return To_Flag_Word (Nodes.Table (E + 2).Field12).Convention;
711 procedure Copy_Node (Source : Node_Id; Destination : Node_Id) is
712 Save_In_List : constant Boolean := Nodes.Table (Destination).In_List;
713 Save_Link : constant Union_Id := Nodes.Table (Destination).Link;
716 Nodes.Table (Destination) := Nodes.Table (Source);
717 Nodes.Table (Destination).In_List := Save_In_List;
718 Nodes.Table (Destination).Link := Save_Link;
720 -- Specifically set Paren_Count to make sure auxiliary table entry
721 -- gets correctly made if the parentheses count is at the max value.
723 if Nkind (Destination) in N_Subexpr then
724 Set_Paren_Count (Destination, Paren_Count (Source));
727 -- Deal with copying extension nodes if present
729 if Has_Extension (Source) then
730 pragma Assert (Has_Extension (Destination));
731 Nodes.Table (Destination + 1) := Nodes.Table (Source + 1);
732 Nodes.Table (Destination + 2) := Nodes.Table (Source + 2);
733 Nodes.Table (Destination + 3) := Nodes.Table (Source + 3);
734 Nodes.Table (Destination + 4) := Nodes.Table (Source + 4);
737 pragma Assert (not Has_Extension (Source));
742 ------------------------
743 -- Copy_Separate_Tree --
744 ------------------------
746 function Copy_Separate_Tree (Source : Node_Id) return Node_Id is
749 function Copy_Entity (E : Entity_Id) return Entity_Id;
750 -- Copy Entity, copying only the Ekind and Chars fields
752 function Copy_List (List : List_Id) return List_Id;
755 function Possible_Copy (Field : Union_Id) return Union_Id;
756 -- Given a field, returns a copy of the node or list if its parent
757 -- is the current source node, and otherwise returns the input
763 function Copy_Entity (E : Entity_Id) return Entity_Id is
767 case N_Entity (Nkind (E)) is
768 when N_Defining_Identifier =>
769 New_Ent := New_Entity (N_Defining_Identifier, Sloc (E));
771 when N_Defining_Character_Literal =>
772 New_Ent := New_Entity (N_Defining_Character_Literal, Sloc (E));
774 when N_Defining_Operator_Symbol =>
775 New_Ent := New_Entity (N_Defining_Operator_Symbol, Sloc (E));
778 Set_Chars (New_Ent, Chars (E));
786 function Copy_List (List : List_Id) return List_Id is
791 if List = No_List then
798 while Present (E) loop
799 if Has_Extension (E) then
800 Append (Copy_Entity (E), NL);
802 Append (Copy_Separate_Tree (E), NL);
816 function Possible_Copy (Field : Union_Id) return Union_Id is
820 if Field in Node_Range then
821 New_N := Union_Id (Copy_Separate_Tree (Node_Id (Field)));
823 if Parent (Node_Id (Field)) = Source then
824 Set_Parent (Node_Id (New_N), New_Id);
829 elsif Field in List_Range then
830 New_N := Union_Id (Copy_List (List_Id (Field)));
832 if Parent (List_Id (Field)) = Source then
833 Set_Parent (List_Id (New_N), New_Id);
843 -- Start of processing for Copy_Separate_Tree
846 if Source <= Empty_Or_Error then
849 elsif Has_Extension (Source) then
850 return Copy_Entity (Source);
853 New_Id := New_Copy (Source);
855 -- Recursively copy descendents
857 Set_Field1 (New_Id, Possible_Copy (Field1 (New_Id)));
858 Set_Field2 (New_Id, Possible_Copy (Field2 (New_Id)));
859 Set_Field3 (New_Id, Possible_Copy (Field3 (New_Id)));
860 Set_Field4 (New_Id, Possible_Copy (Field4 (New_Id)));
861 Set_Field5 (New_Id, Possible_Copy (Field5 (New_Id)));
863 -- Set Entity field to Empty
864 -- Why is this done??? and why is it always right to do it???
866 if Nkind (New_Id) in N_Has_Entity
867 or else Nkind (New_Id) = N_Freeze_Entity
869 Set_Entity (New_Id, Empty);
872 -- All done, return copied node
876 end Copy_Separate_Tree;
882 function Ekind (E : Entity_Id) return Entity_Kind is
884 pragma Assert (Nkind (E) in N_Entity);
885 return N_To_E (Nodes.Table (E + 1).Nkind);
892 function Error_Posted (N : Node_Id) return Boolean is
894 pragma Assert (N <= Nodes.Last);
895 return Nodes.Table (N).Error_Posted;
898 -----------------------
899 -- Exchange_Entities --
900 -----------------------
902 procedure Exchange_Entities (E1 : Entity_Id; E2 : Entity_Id) is
903 Temp_Ent : Node_Record;
906 pragma Assert (Has_Extension (E1)
907 and then Has_Extension (E2)
908 and then not Nodes.Table (E1).In_List
909 and then not Nodes.Table (E2).In_List);
911 -- Exchange the contents of the two entities
913 Temp_Ent := Nodes.Table (E1);
914 Nodes.Table (E1) := Nodes.Table (E2);
915 Nodes.Table (E2) := Temp_Ent;
916 Temp_Ent := Nodes.Table (E1 + 1);
917 Nodes.Table (E1 + 1) := Nodes.Table (E2 + 1);
918 Nodes.Table (E2 + 1) := Temp_Ent;
919 Temp_Ent := Nodes.Table (E1 + 2);
920 Nodes.Table (E1 + 2) := Nodes.Table (E2 + 2);
921 Nodes.Table (E2 + 2) := Temp_Ent;
922 Temp_Ent := Nodes.Table (E1 + 3);
923 Nodes.Table (E1 + 3) := Nodes.Table (E2 + 3);
924 Nodes.Table (E2 + 3) := Temp_Ent;
925 Temp_Ent := Nodes.Table (E1 + 4);
926 Nodes.Table (E1 + 4) := Nodes.Table (E2 + 4);
927 Nodes.Table (E2 + 4) := Temp_Ent;
929 -- That exchange exchanged the parent pointers as well, which is what
930 -- we want, but we need to patch up the defining identifier pointers
931 -- in the parent nodes (the child pointers) to match this switch
932 -- unless for Implicit types entities which have no parent, in which
933 -- case we don't do anything otherwise we won't be able to revert back
934 -- to the original situation.
936 -- Shouldn't this use Is_Itype instead of the Parent test
938 if Present (Parent (E1)) and then Present (Parent (E2)) then
939 Set_Defining_Identifier (Parent (E1), E1);
940 Set_Defining_Identifier (Parent (E2), E2);
942 end Exchange_Entities;
948 function Extend_Node (Node : Node_Id) return Entity_Id is
951 procedure Debug_Extend_Node;
952 pragma Inline (Debug_Extend_Node);
953 -- Debug routine for debug flag N
955 -----------------------
956 -- Debug_Extend_Node --
957 -----------------------
959 procedure Debug_Extend_Node is
962 Write_Str ("Extend node ");
963 Write_Int (Int (Node));
965 if Result = Node then
966 Write_Str (" in place");
968 Write_Str (" copied to ");
969 Write_Int (Int (Result));
974 end Debug_Extend_Node;
976 -- Start of processing for Extend_Node
979 pragma Assert (not (Has_Extension (Node)));
980 Result := Allocate_Initialize_Node (Node, With_Extension => True);
981 pragma Debug (Debug_Extend_Node);
989 procedure Fix_Parents (Ref_Node, Fix_Node : Node_Id) is
991 procedure Fix_Parent (Field : Union_Id);
992 -- Fixup one parent pointer. Field is checked to see if it points to
993 -- a node, list, or element list that has a parent that points to
994 -- Ref_Node. If so, the parent is reset to point to Fix_Node.
1000 procedure Fix_Parent (Field : Union_Id) is
1002 -- Fix parent of node that is referenced by Field. Note that we must
1003 -- exclude the case where the node is a member of a list, because in
1004 -- this case the parent is the parent of the list.
1006 if Field in Node_Range
1007 and then Present (Node_Id (Field))
1008 and then not Nodes.Table (Node_Id (Field)).In_List
1009 and then Parent (Node_Id (Field)) = Ref_Node
1011 Set_Parent (Node_Id (Field), Fix_Node);
1013 -- Fix parent of list that is referenced by Field
1015 elsif Field in List_Range
1016 and then Present (List_Id (Field))
1017 and then Parent (List_Id (Field)) = Ref_Node
1019 Set_Parent (List_Id (Field), Fix_Node);
1023 -- Start of processing for Fix_Parents
1026 Fix_Parent (Field1 (Fix_Node));
1027 Fix_Parent (Field2 (Fix_Node));
1028 Fix_Parent (Field3 (Fix_Node));
1029 Fix_Parent (Field4 (Fix_Node));
1030 Fix_Parent (Field5 (Fix_Node));
1033 -----------------------------------
1034 -- Get_Comes_From_Source_Default --
1035 -----------------------------------
1037 function Get_Comes_From_Source_Default return Boolean is
1039 return Default_Node.Comes_From_Source;
1040 end Get_Comes_From_Source_Default;
1046 function Has_Extension (N : Node_Id) return Boolean is
1048 return N < Nodes.Last and then Nodes.Table (N + 1).Is_Extension;
1055 procedure Initialize is
1057 pragma Warnings (Off, Dummy);
1061 Atree_Private_Part.Nodes.Init;
1065 -- Allocate Empty node
1067 Dummy := New_Node (N_Empty, No_Location);
1068 Set_Name1 (Empty, No_Name);
1070 -- Allocate Error node, and set Error_Posted, since we certainly
1071 -- only generate an Error node if we do post some kind of error!
1073 Dummy := New_Node (N_Error, No_Location);
1074 Set_Name1 (Error, Error_Name);
1075 Set_Error_Posted (Error, True);
1077 -- Set global variables for New_Copy_Tree
1079 NCT_Hash_Tables_Used := False;
1080 NCT_Table_Entries := 0;
1081 NCT_Hash_Table_Setup := False;
1084 --------------------------
1085 -- Is_Rewrite_Insertion --
1086 --------------------------
1088 function Is_Rewrite_Insertion (Node : Node_Id) return Boolean is
1090 return Nodes.Table (Node).Rewrite_Ins;
1091 end Is_Rewrite_Insertion;
1093 -----------------------------
1094 -- Is_Rewrite_Substitution --
1095 -----------------------------
1097 function Is_Rewrite_Substitution (Node : Node_Id) return Boolean is
1099 return Orig_Nodes.Table (Node) /= Node;
1100 end Is_Rewrite_Substitution;
1106 function Last_Node_Id return Node_Id is
1117 Nodes.Locked := True;
1118 Orig_Nodes.Locked := True;
1123 ----------------------------
1124 -- Mark_Rewrite_Insertion --
1125 ----------------------------
1127 procedure Mark_Rewrite_Insertion (New_Node : Node_Id) is
1129 Nodes.Table (New_Node).Rewrite_Ins := True;
1130 end Mark_Rewrite_Insertion;
1136 function New_Copy (Source : Node_Id) return Node_Id is
1137 New_Id : Node_Id := Source;
1140 if Source > Empty_Or_Error then
1142 New_Id := Allocate_Initialize_Node (Source, Has_Extension (Source));
1144 Nodes.Table (New_Id).Link := Empty_List_Or_Node;
1145 Nodes.Table (New_Id).In_List := False;
1147 -- If the original is marked as a rewrite insertion, then unmark
1148 -- the copy, since we inserted the original, not the copy.
1150 Nodes.Table (New_Id).Rewrite_Ins := False;
1151 pragma Debug (New_Node_Debugging_Output (New_Id));
1161 -- Our approach here requires a two pass traversal of the tree. The
1162 -- first pass visits all nodes that eventually will be copied looking
1163 -- for defining Itypes. If any defining Itypes are found, then they are
1164 -- copied, and an entry is added to the replacement map. In the second
1165 -- phase, the tree is copied, using the replacement map to replace any
1166 -- Itype references within the copied tree.
1168 -- The following hash tables are used if the Map supplied has more
1169 -- than hash threshhold entries to speed up access to the map. If
1170 -- there are fewer entries, then the map is searched sequentially
1171 -- (because setting up a hash table for only a few entries takes
1172 -- more time than it saves.
1174 function New_Copy_Hash (E : Entity_Id) return NCT_Header_Num;
1175 -- Hash function used for hash operations
1181 function New_Copy_Hash (E : Entity_Id) return NCT_Header_Num is
1183 return Nat (E) mod (NCT_Header_Num'Last + 1);
1190 -- The hash table NCT_Assoc associates old entities in the table
1191 -- with their corresponding new entities (i.e. the pairs of entries
1192 -- presented in the original Map argument are Key-Element pairs).
1194 package NCT_Assoc is new Simple_HTable (
1195 Header_Num => NCT_Header_Num,
1196 Element => Entity_Id,
1197 No_Element => Empty,
1199 Hash => New_Copy_Hash,
1200 Equal => Types."=");
1202 ---------------------
1203 -- NCT_Itype_Assoc --
1204 ---------------------
1206 -- The hash table NCT_Itype_Assoc contains entries only for those
1207 -- old nodes which have a non-empty Associated_Node_For_Itype set.
1208 -- The key is the associated node, and the element is the new node
1209 -- itself (NOT the associated node for the new node).
1211 package NCT_Itype_Assoc is new Simple_HTable (
1212 Header_Num => NCT_Header_Num,
1213 Element => Entity_Id,
1214 No_Element => Empty,
1216 Hash => New_Copy_Hash,
1217 Equal => Types."=");
1219 -- Start of processing for New_Copy_Tree function
1221 function New_Copy_Tree
1223 Map : Elist_Id := No_Elist;
1224 New_Sloc : Source_Ptr := No_Location;
1225 New_Scope : Entity_Id := Empty) return Node_Id
1227 Actual_Map : Elist_Id := Map;
1228 -- This is the actual map for the copy. It is initialized with the
1229 -- given elements, and then enlarged as required for Itypes that are
1230 -- copied during the first phase of the copy operation. The visit
1231 -- procedures add elements to this map as Itypes are encountered.
1232 -- The reason we cannot use Map directly, is that it may well be
1233 -- (and normally is) initialized to No_Elist, and if we have mapped
1234 -- entities, we have to reset it to point to a real Elist.
1236 function Assoc (N : Node_Or_Entity_Id) return Node_Id;
1237 -- Called during second phase to map entities into their corresponding
1238 -- copies using Actual_Map. If the argument is not an entity, or is not
1239 -- in Actual_Map, then it is returned unchanged.
1241 procedure Build_NCT_Hash_Tables;
1242 -- Builds hash tables (number of elements >= threshold value)
1244 function Copy_Elist_With_Replacement
1245 (Old_Elist : Elist_Id) return Elist_Id;
1246 -- Called during second phase to copy element list doing replacements
1248 procedure Copy_Itype_With_Replacement (New_Itype : Entity_Id);
1249 -- Called during the second phase to process a copied Itype. The actual
1250 -- copy happened during the first phase (so that we could make the entry
1251 -- in the mapping), but we still have to deal with the descendents of
1252 -- the copied Itype and copy them where necessary.
1254 function Copy_List_With_Replacement (Old_List : List_Id) return List_Id;
1255 -- Called during second phase to copy list doing replacements
1257 function Copy_Node_With_Replacement (Old_Node : Node_Id) return Node_Id;
1258 -- Called during second phase to copy node doing replacements
1260 procedure Visit_Elist (E : Elist_Id);
1261 -- Called during first phase to visit all elements of an Elist
1263 procedure Visit_Field (F : Union_Id; N : Node_Id);
1264 -- Visit a single field, recursing to call Visit_Node or Visit_List
1265 -- if the field is a syntactic descendent of the current node (i.e.
1266 -- its parent is Node N).
1268 procedure Visit_Itype (Old_Itype : Entity_Id);
1269 -- Called during first phase to visit subsidiary fields of a defining
1270 -- Itype, and also create a copy and make an entry in the replacement
1271 -- map for the new copy.
1273 procedure Visit_List (L : List_Id);
1274 -- Called during first phase to visit all elements of a List
1276 procedure Visit_Node (N : Node_Or_Entity_Id);
1277 -- Called during first phase to visit a node and all its subtrees
1283 function Assoc (N : Node_Or_Entity_Id) return Node_Id is
1288 if not Has_Extension (N) or else No (Actual_Map) then
1291 elsif NCT_Hash_Tables_Used then
1292 Ent := NCT_Assoc.Get (Entity_Id (N));
1294 if Present (Ent) then
1300 -- No hash table used, do serial search
1303 E := First_Elmt (Actual_Map);
1304 while Present (E) loop
1305 if Node (E) = N then
1306 return Node (Next_Elmt (E));
1308 E := Next_Elmt (Next_Elmt (E));
1316 ---------------------------
1317 -- Build_NCT_Hash_Tables --
1318 ---------------------------
1320 procedure Build_NCT_Hash_Tables is
1324 if NCT_Hash_Table_Setup then
1326 NCT_Itype_Assoc.Reset;
1329 Elmt := First_Elmt (Actual_Map);
1330 while Present (Elmt) loop
1333 -- Get new entity, and associate old and new
1336 NCT_Assoc.Set (Ent, Node (Elmt));
1338 if Is_Type (Ent) then
1340 Anode : constant Entity_Id :=
1341 Associated_Node_For_Itype (Ent);
1344 if Present (Anode) then
1346 -- Enter a link between the associated node of the
1347 -- old Itype and the new Itype, for updating later
1348 -- when node is copied.
1350 NCT_Itype_Assoc.Set (Anode, Node (Elmt));
1358 NCT_Hash_Tables_Used := True;
1359 NCT_Hash_Table_Setup := True;
1360 end Build_NCT_Hash_Tables;
1362 ---------------------------------
1363 -- Copy_Elist_With_Replacement --
1364 ---------------------------------
1366 function Copy_Elist_With_Replacement
1367 (Old_Elist : Elist_Id) return Elist_Id
1370 New_Elist : Elist_Id;
1373 if No (Old_Elist) then
1377 New_Elist := New_Elmt_List;
1379 M := First_Elmt (Old_Elist);
1380 while Present (M) loop
1381 Append_Elmt (Copy_Node_With_Replacement (Node (M)), New_Elist);
1387 end Copy_Elist_With_Replacement;
1389 ---------------------------------
1390 -- Copy_Itype_With_Replacement --
1391 ---------------------------------
1393 -- This routine exactly parallels its phase one analog Visit_Itype,
1394 -- and like that routine, knows far too many semantic details about
1395 -- the descendents of Itypes and whether they need copying or not.
1397 procedure Copy_Itype_With_Replacement (New_Itype : Entity_Id) is
1399 -- Translate Next_Entity, Scope and Etype fields, in case they
1400 -- reference entities that have been mapped into copies.
1402 Set_Next_Entity (New_Itype, Assoc (Next_Entity (New_Itype)));
1403 Set_Etype (New_Itype, Assoc (Etype (New_Itype)));
1405 if Present (New_Scope) then
1406 Set_Scope (New_Itype, New_Scope);
1408 Set_Scope (New_Itype, Assoc (Scope (New_Itype)));
1411 -- Copy referenced fields
1413 if Is_Discrete_Type (New_Itype) then
1414 Set_Scalar_Range (New_Itype,
1415 Copy_Node_With_Replacement (Scalar_Range (New_Itype)));
1417 elsif Has_Discriminants (Base_Type (New_Itype)) then
1418 Set_Discriminant_Constraint (New_Itype,
1419 Copy_Elist_With_Replacement
1420 (Discriminant_Constraint (New_Itype)));
1422 elsif Is_Array_Type (New_Itype) then
1423 if Present (First_Index (New_Itype)) then
1424 Set_First_Index (New_Itype,
1425 First (Copy_List_With_Replacement
1426 (List_Containing (First_Index (New_Itype)))));
1429 if Is_Packed (New_Itype) then
1430 Set_Packed_Array_Type (New_Itype,
1431 Copy_Node_With_Replacement
1432 (Packed_Array_Type (New_Itype)));
1435 end Copy_Itype_With_Replacement;
1437 --------------------------------
1438 -- Copy_List_With_Replacement --
1439 --------------------------------
1441 function Copy_List_With_Replacement
1442 (Old_List : List_Id) return List_Id
1448 if Old_List = No_List then
1452 New_List := Empty_List;
1454 E := First (Old_List);
1455 while Present (E) loop
1456 Append (Copy_Node_With_Replacement (E), New_List);
1462 end Copy_List_With_Replacement;
1464 --------------------------------
1465 -- Copy_Node_With_Replacement --
1466 --------------------------------
1468 function Copy_Node_With_Replacement
1469 (Old_Node : Node_Id) return Node_Id
1473 procedure Adjust_Named_Associations
1474 (Old_Node : Node_Id;
1475 New_Node : Node_Id);
1476 -- If a call node has named associations, these are chained through
1477 -- the First_Named_Actual, Next_Named_Actual links. These must be
1478 -- propagated separately to the new parameter list, because these
1479 -- are not syntactic fields.
1481 function Copy_Field_With_Replacement
1482 (Field : Union_Id) return Union_Id;
1483 -- Given Field, which is a field of Old_Node, return a copy of it
1484 -- if it is a syntactic field (i.e. its parent is Node), setting
1485 -- the parent of the copy to poit to New_Node. Otherwise returns
1486 -- the field (possibly mapped if it is an entity).
1488 -------------------------------
1489 -- Adjust_Named_Associations --
1490 -------------------------------
1492 procedure Adjust_Named_Associations
1493 (Old_Node : Node_Id;
1503 Old_E := First (Parameter_Associations (Old_Node));
1504 New_E := First (Parameter_Associations (New_Node));
1505 while Present (Old_E) loop
1506 if Nkind (Old_E) = N_Parameter_Association
1507 and then Present (Next_Named_Actual (Old_E))
1509 if First_Named_Actual (Old_Node)
1510 = Explicit_Actual_Parameter (Old_E)
1512 Set_First_Named_Actual
1513 (New_Node, Explicit_Actual_Parameter (New_E));
1516 -- Now scan parameter list from the beginning,to locate
1517 -- next named actual, which can be out of order.
1519 Old_Next := First (Parameter_Associations (Old_Node));
1520 New_Next := First (Parameter_Associations (New_Node));
1522 while Nkind (Old_Next) /= N_Parameter_Association
1523 or else Explicit_Actual_Parameter (Old_Next)
1524 /= Next_Named_Actual (Old_E)
1530 Set_Next_Named_Actual
1531 (New_E, Explicit_Actual_Parameter (New_Next));
1537 end Adjust_Named_Associations;
1539 ---------------------------------
1540 -- Copy_Field_With_Replacement --
1541 ---------------------------------
1543 function Copy_Field_With_Replacement
1544 (Field : Union_Id) return Union_Id
1547 if Field = Union_Id (Empty) then
1550 elsif Field in Node_Range then
1552 Old_N : constant Node_Id := Node_Id (Field);
1556 -- If syntactic field, as indicated by the parent pointer
1557 -- being set, then copy the referenced node recursively.
1559 if Parent (Old_N) = Old_Node then
1560 New_N := Copy_Node_With_Replacement (Old_N);
1562 if New_N /= Old_N then
1563 Set_Parent (New_N, New_Node);
1566 -- For semantic fields, update possible entity reference
1567 -- from the replacement map.
1570 New_N := Assoc (Old_N);
1573 return Union_Id (New_N);
1576 elsif Field in List_Range then
1578 Old_L : constant List_Id := List_Id (Field);
1582 -- If syntactic field, as indicated by the parent pointer,
1583 -- then recursively copy the entire referenced list.
1585 if Parent (Old_L) = Old_Node then
1586 New_L := Copy_List_With_Replacement (Old_L);
1587 Set_Parent (New_L, New_Node);
1589 -- For semantic list, just returned unchanged
1595 return Union_Id (New_L);
1598 -- Anything other than a list or a node is returned unchanged
1603 end Copy_Field_With_Replacement;
1605 -- Start of processing for Copy_Node_With_Replacement
1608 if Old_Node <= Empty_Or_Error then
1611 elsif Has_Extension (Old_Node) then
1612 return Assoc (Old_Node);
1615 New_Node := New_Copy (Old_Node);
1617 -- If the node we are copying is the associated node of a
1618 -- previously copied Itype, then adjust the associated node
1619 -- of the copy of that Itype accordingly.
1621 if Present (Actual_Map) then
1627 -- Case of hash table used
1629 if NCT_Hash_Tables_Used then
1630 Ent := NCT_Itype_Assoc.Get (Old_Node);
1632 if Present (Ent) then
1633 Set_Associated_Node_For_Itype (Ent, New_Node);
1636 -- Case of no hash table used
1639 E := First_Elmt (Actual_Map);
1640 while Present (E) loop
1641 if Is_Itype (Node (E))
1643 Old_Node = Associated_Node_For_Itype (Node (E))
1645 Set_Associated_Node_For_Itype
1646 (Node (Next_Elmt (E)), New_Node);
1649 E := Next_Elmt (Next_Elmt (E));
1655 -- Recursively copy descendents
1658 (New_Node, Copy_Field_With_Replacement (Field1 (New_Node)));
1660 (New_Node, Copy_Field_With_Replacement (Field2 (New_Node)));
1662 (New_Node, Copy_Field_With_Replacement (Field3 (New_Node)));
1664 (New_Node, Copy_Field_With_Replacement (Field4 (New_Node)));
1666 (New_Node, Copy_Field_With_Replacement (Field5 (New_Node)));
1668 -- Adjust Sloc of new node if necessary
1670 if New_Sloc /= No_Location then
1671 Set_Sloc (New_Node, New_Sloc);
1673 -- If we adjust the Sloc, then we are essentially making
1674 -- a completely new node, so the Comes_From_Source flag
1675 -- should be reset to the proper default value.
1677 Nodes.Table (New_Node).Comes_From_Source :=
1678 Default_Node.Comes_From_Source;
1681 -- If the node is call and has named associations,
1682 -- set the corresponding links in the copy.
1684 if (Nkind (Old_Node) = N_Function_Call
1685 or else Nkind (Old_Node) = N_Entry_Call_Statement
1687 Nkind (Old_Node) = N_Procedure_Call_Statement)
1688 and then Present (First_Named_Actual (Old_Node))
1690 Adjust_Named_Associations (Old_Node, New_Node);
1693 -- Reset First_Real_Statement for Handled_Sequence_Of_Statements.
1694 -- The replacement mechanism applies to entities, and is not used
1695 -- here. Eventually we may need a more general graph-copying
1696 -- routine. For now, do a sequential search to find desired node.
1698 if Nkind (Old_Node) = N_Handled_Sequence_Of_Statements
1699 and then Present (First_Real_Statement (Old_Node))
1702 Old_F : constant Node_Id := First_Real_Statement (Old_Node);
1706 N1 := First (Statements (Old_Node));
1707 N2 := First (Statements (New_Node));
1709 while N1 /= Old_F loop
1714 Set_First_Real_Statement (New_Node, N2);
1719 -- All done, return copied node
1722 end Copy_Node_With_Replacement;
1728 procedure Visit_Elist (E : Elist_Id) is
1732 Elmt := First_Elmt (E);
1734 while Elmt /= No_Elmt loop
1735 Visit_Node (Node (Elmt));
1745 procedure Visit_Field (F : Union_Id; N : Node_Id) is
1747 if F = Union_Id (Empty) then
1750 elsif F in Node_Range then
1752 -- Copy node if it is syntactic, i.e. its parent pointer is
1753 -- set to point to the field that referenced it (certain
1754 -- Itypes will also meet this criterion, which is fine, since
1755 -- these are clearly Itypes that do need to be copied, since
1756 -- we are copying their parent.)
1758 if Parent (Node_Id (F)) = N then
1759 Visit_Node (Node_Id (F));
1762 -- Another case, if we are pointing to an Itype, then we want
1763 -- to copy it if its associated node is somewhere in the tree
1766 -- Note: the exclusion of self-referential copies is just an
1767 -- optimization, since the search of the already copied list
1768 -- would catch it, but it is a common case (Etype pointing
1769 -- to itself for an Itype that is a base type).
1771 elsif Has_Extension (Node_Id (F))
1772 and then Is_Itype (Entity_Id (F))
1773 and then Node_Id (F) /= N
1779 P := Associated_Node_For_Itype (Node_Id (F));
1780 while Present (P) loop
1782 Visit_Node (Node_Id (F));
1789 -- An Itype whose parent is not being copied definitely
1790 -- should NOT be copied, since it does not belong in any
1791 -- sense to the copied subtree.
1797 elsif F in List_Range
1798 and then Parent (List_Id (F)) = N
1800 Visit_List (List_Id (F));
1809 -- Note: we are relying on far too much semantic knowledge in this
1810 -- routine, it really should just do a blind replacement of all
1811 -- fields, or at least a more blind replacement. For example, we
1812 -- do not deal with corresponding record types, and that works
1813 -- because we have no Itypes of task types, but nowhere is there
1814 -- a guarantee that this will always be the case. ???
1816 procedure Visit_Itype (Old_Itype : Entity_Id) is
1817 New_Itype : Entity_Id;
1822 -- Itypes that describe the designated type of access to subprograms
1823 -- have the structure of subprogram declarations, with signatures,
1824 -- etc. Either we duplicate the signatures completely, or choose to
1825 -- share such itypes, which is fine because their elaboration will
1826 -- have no side effects. In any case, this is additional semantic
1827 -- information that seems awkward to have in atree.
1829 if Ekind (Old_Itype) = E_Subprogram_Type then
1833 New_Itype := New_Copy (Old_Itype);
1835 -- The new Itype has all the attributes of the old one, and
1836 -- we just copy the contents of the entity. However, the back-end
1837 -- needs different names for debugging purposes, so we create a
1838 -- new internal name by appending the letter 'c' (copy) to the
1839 -- name of the original.
1841 Get_Name_String (Chars (Old_Itype));
1842 Add_Char_To_Name_Buffer ('c');
1843 Set_Chars (New_Itype, Name_Enter);
1845 -- If our associated node is an entity that has already been copied,
1846 -- then set the associated node of the copy to point to the right
1847 -- copy. If we have copied an Itype that is itself the associated
1848 -- node of some previously copied Itype, then we set the right
1849 -- pointer in the other direction.
1851 if Present (Actual_Map) then
1853 -- Case of hash tables used
1855 if NCT_Hash_Tables_Used then
1857 Ent := NCT_Assoc.Get (Associated_Node_For_Itype (Old_Itype));
1859 if Present (Ent) then
1860 Set_Associated_Node_For_Itype (New_Itype, Ent);
1863 Ent := NCT_Itype_Assoc.Get (Old_Itype);
1864 if Present (Ent) then
1865 Set_Associated_Node_For_Itype (Ent, New_Itype);
1867 -- If the hash table has no association for this Itype and
1868 -- its associated node, enter one now.
1872 (Associated_Node_For_Itype (Old_Itype), New_Itype);
1875 -- Case of hash tables not used
1878 E := First_Elmt (Actual_Map);
1879 while Present (E) loop
1880 if Associated_Node_For_Itype (Old_Itype) = Node (E) then
1881 Set_Associated_Node_For_Itype
1882 (New_Itype, Node (Next_Elmt (E)));
1885 if Is_Type (Node (E))
1887 Old_Itype = Associated_Node_For_Itype (Node (E))
1889 Set_Associated_Node_For_Itype
1890 (Node (Next_Elmt (E)), New_Itype);
1893 E := Next_Elmt (Next_Elmt (E));
1898 if Present (Freeze_Node (New_Itype)) then
1899 Set_Is_Frozen (New_Itype, False);
1900 Set_Freeze_Node (New_Itype, Empty);
1903 -- Add new association to map
1905 if No (Actual_Map) then
1906 Actual_Map := New_Elmt_List;
1909 Append_Elmt (Old_Itype, Actual_Map);
1910 Append_Elmt (New_Itype, Actual_Map);
1912 if NCT_Hash_Tables_Used then
1913 NCT_Assoc.Set (Old_Itype, New_Itype);
1916 NCT_Table_Entries := NCT_Table_Entries + 1;
1918 if NCT_Table_Entries > NCT_Hash_Threshhold then
1919 Build_NCT_Hash_Tables;
1923 -- If a record subtype is simply copied, the entity list will be
1924 -- shared. Thus cloned_Subtype must be set to indicate the sharing.
1926 if Ekind (Old_Itype) = E_Record_Subtype
1927 or else Ekind (Old_Itype) = E_Class_Wide_Subtype
1929 Set_Cloned_Subtype (New_Itype, Old_Itype);
1932 -- Visit descendents that eventually get copied
1934 Visit_Field (Union_Id (Etype (Old_Itype)), Old_Itype);
1936 if Is_Discrete_Type (Old_Itype) then
1937 Visit_Field (Union_Id (Scalar_Range (Old_Itype)), Old_Itype);
1939 elsif Has_Discriminants (Base_Type (Old_Itype)) then
1940 -- ??? This should involve call to Visit_Field
1941 Visit_Elist (Discriminant_Constraint (Old_Itype));
1943 elsif Is_Array_Type (Old_Itype) then
1944 if Present (First_Index (Old_Itype)) then
1945 Visit_Field (Union_Id (List_Containing
1946 (First_Index (Old_Itype))),
1950 if Is_Packed (Old_Itype) then
1951 Visit_Field (Union_Id (Packed_Array_Type (Old_Itype)),
1961 procedure Visit_List (L : List_Id) is
1964 if L /= No_List then
1967 while Present (N) loop
1978 procedure Visit_Node (N : Node_Or_Entity_Id) is
1980 -- Start of processing for Visit_Node
1983 -- Handle case of an Itype, which must be copied
1985 if Has_Extension (N)
1986 and then Is_Itype (N)
1988 -- Nothing to do if already in the list. This can happen with an
1989 -- Itype entity that appears more than once in the tree.
1990 -- Note that we do not want to visit descendents in this case.
1992 -- Test for already in list when hash table is used
1994 if NCT_Hash_Tables_Used then
1995 if Present (NCT_Assoc.Get (Entity_Id (N))) then
1999 -- Test for already in list when hash table not used
2005 if Present (Actual_Map) then
2006 E := First_Elmt (Actual_Map);
2007 while Present (E) loop
2008 if Node (E) = N then
2011 E := Next_Elmt (Next_Elmt (E));
2021 -- Visit descendents
2023 Visit_Field (Field1 (N), N);
2024 Visit_Field (Field2 (N), N);
2025 Visit_Field (Field3 (N), N);
2026 Visit_Field (Field4 (N), N);
2027 Visit_Field (Field5 (N), N);
2030 -- Start of processing for New_Copy_Tree
2035 -- See if we should use hash table
2037 if No (Actual_Map) then
2038 NCT_Hash_Tables_Used := False;
2045 NCT_Table_Entries := 0;
2047 Elmt := First_Elmt (Actual_Map);
2048 while Present (Elmt) loop
2049 NCT_Table_Entries := NCT_Table_Entries + 1;
2054 if NCT_Table_Entries > NCT_Hash_Threshhold then
2055 Build_NCT_Hash_Tables;
2057 NCT_Hash_Tables_Used := False;
2062 -- Hash table set up if required, now start phase one by visiting
2063 -- top node (we will recursively visit the descendents).
2065 Visit_Node (Source);
2067 -- Now the second phase of the copy can start. First we process
2068 -- all the mapped entities, copying their descendents.
2070 if Present (Actual_Map) then
2073 New_Itype : Entity_Id;
2075 Elmt := First_Elmt (Actual_Map);
2076 while Present (Elmt) loop
2078 New_Itype := Node (Elmt);
2079 Copy_Itype_With_Replacement (New_Itype);
2085 -- Now we can copy the actual tree
2087 return Copy_Node_With_Replacement (Source);
2095 (New_Node_Kind : Node_Kind;
2096 New_Sloc : Source_Ptr) return Entity_Id
2101 pragma Assert (New_Node_Kind in N_Entity);
2103 Ent := Allocate_Initialize_Node (Empty, With_Extension => True);
2105 -- If this is a node with a real location and we are generating
2106 -- source nodes, then reset Current_Error_Node. This is useful
2107 -- if we bomb during parsing to get a error location for the bomb.
2109 if Default_Node.Comes_From_Source and then New_Sloc > No_Location then
2110 Current_Error_Node := Ent;
2113 Nodes.Table (Ent).Nkind := New_Node_Kind;
2114 Nodes.Table (Ent).Sloc := New_Sloc;
2115 pragma Debug (New_Node_Debugging_Output (Ent));
2125 (New_Node_Kind : Node_Kind;
2126 New_Sloc : Source_Ptr) return Node_Id
2131 pragma Assert (New_Node_Kind not in N_Entity);
2132 Nod := Allocate_Initialize_Node (Empty, With_Extension => False);
2133 Nodes.Table (Nod).Nkind := New_Node_Kind;
2134 Nodes.Table (Nod).Sloc := New_Sloc;
2135 pragma Debug (New_Node_Debugging_Output (Nod));
2137 -- If this is a node with a real location and we are generating source
2138 -- nodes, then reset Current_Error_Node. This is useful if we bomb
2139 -- during parsing to get an error location for the bomb.
2141 if Default_Node.Comes_From_Source and then New_Sloc > No_Location then
2142 Current_Error_Node := Nod;
2148 -------------------------
2149 -- New_Node_Breakpoint --
2150 -------------------------
2152 procedure nn is -- New_Node_Breakpoint
2154 Write_Str ("Watched node ");
2155 Write_Int (Int (Watch_Node));
2156 Write_Str (" created");
2160 -------------------------------
2161 -- New_Node_Debugging_Output --
2162 -------------------------------
2164 procedure nnd (N : Node_Id) is -- New_Node_Debugging_Output
2165 Node_Is_Watched : constant Boolean := N = Watch_Node;
2168 if Debug_Flag_N or else Node_Is_Watched then
2169 Write_Str ("Allocate ");
2171 if Nkind (N) in N_Entity then
2172 Write_Str ("entity");
2177 Write_Str (", Id = ");
2178 Write_Int (Int (N));
2180 Write_Location (Sloc (N));
2182 Write_Str (Node_Kind'Image (Nkind (N)));
2185 if Node_Is_Watched then
2186 New_Node_Breakpoint;
2195 function Nkind (N : Node_Id) return Node_Kind is
2197 return Nodes.Table (N).Nkind;
2207 V2 : Node_Kind) return Boolean
2210 return Nkind_In (Nkind (N), V1, V2);
2217 V3 : Node_Kind) return Boolean
2220 return Nkind_In (Nkind (N), V1, V2, V3);
2228 V4 : Node_Kind) return Boolean
2231 return Nkind_In (Nkind (N), V1, V2, V3, V4);
2240 V5 : Node_Kind) return Boolean
2243 return Nkind_In (Nkind (N), V1, V2, V3, V4, V5);
2253 V6 : Node_Kind) return Boolean
2256 return Nkind_In (Nkind (N), V1, V2, V3, V4, V5, V6);
2267 V7 : Node_Kind) return Boolean
2270 return Nkind_In (Nkind (N), V1, V2, V3, V4, V5, V6, V7);
2282 V8 : Node_Kind) return Boolean
2285 return Nkind_In (Nkind (N), V1, V2, V3, V4, V5, V6, V7, V8);
2292 function No (N : Node_Id) return Boolean is
2301 function Nodes_Address return System.Address is
2303 return Nodes.Table (First_Node_Id)'Address;
2310 function Num_Nodes return Nat is
2319 function Original_Node (Node : Node_Id) return Node_Id is
2321 return Orig_Nodes.Table (Node);
2328 function Paren_Count (N : Node_Id) return Nat is
2332 pragma Assert (N <= Nodes.Last);
2334 if Nodes.Table (N).Pflag1 then
2338 if Nodes.Table (N).Pflag2 then
2342 -- Value of 0,1,2 returned as is
2347 -- Value of 3 means we search the table, and we must find an entry
2350 for J in Paren_Counts.First .. Paren_Counts.Last loop
2351 if N = Paren_Counts.Table (J).Nod then
2352 return Paren_Counts.Table (J).Count;
2356 raise Program_Error;
2364 function Parent (N : Node_Id) return Node_Id is
2366 if Is_List_Member (N) then
2367 return Parent (List_Containing (N));
2369 return Node_Id (Nodes.Table (N).Link);
2377 function Present (N : Node_Id) return Boolean is
2382 --------------------------------
2383 -- Preserve_Comes_From_Source --
2384 --------------------------------
2386 procedure Preserve_Comes_From_Source (NewN, OldN : Node_Id) is
2388 Nodes.Table (NewN).Comes_From_Source :=
2389 Nodes.Table (OldN).Comes_From_Source;
2390 end Preserve_Comes_From_Source;
2396 function Relocate_Node (Source : Node_Id) return Node_Id is
2404 New_Node := New_Copy (Source);
2405 Fix_Parents (Ref_Node => Source, Fix_Node => New_Node);
2407 -- We now set the parent of the new node to be the same as the
2408 -- parent of the source. Almost always this parent will be
2409 -- replaced by a new value when the relocated node is reattached
2410 -- to the tree, but by doing it now, we ensure that this node is
2411 -- not even temporarily disconnected from the tree. Note that this
2412 -- does not happen free, because in the list case, the parent does
2415 Set_Parent (New_Node, Parent (Source));
2417 -- If the node being relocated was a rewriting of some original
2418 -- node, then the relocated node has the same original node.
2420 if Orig_Nodes.Table (Source) /= Source then
2421 Orig_Nodes.Table (New_Node) := Orig_Nodes.Table (Source);
2431 procedure Replace (Old_Node, New_Node : Node_Id) is
2432 Old_Post : constant Boolean := Nodes.Table (Old_Node).Error_Posted;
2433 Old_CFS : constant Boolean := Nodes.Table (Old_Node).Comes_From_Source;
2437 (not Has_Extension (Old_Node)
2438 and not Has_Extension (New_Node)
2439 and not Nodes.Table (New_Node).In_List);
2441 -- Do copy, preserving link and in list status and comes from source
2443 Copy_Node (Source => New_Node, Destination => Old_Node);
2444 Nodes.Table (Old_Node).Comes_From_Source := Old_CFS;
2445 Nodes.Table (Old_Node).Error_Posted := Old_Post;
2447 -- Fix parents of substituted node, since it has changed identity
2449 Fix_Parents (Ref_Node => New_Node, Fix_Node => Old_Node);
2451 -- Since we are doing a replace, we assume that the original node
2452 -- is intended to become the new replaced node. The call would be
2453 -- to Rewrite if there were an intention to save the original node.
2455 Orig_Nodes.Table (Old_Node) := Old_Node;
2462 procedure Rewrite (Old_Node, New_Node : Node_Id) is
2463 Old_Error_P : constant Boolean := Nodes.Table (Old_Node).Error_Posted;
2464 -- This fields is always preserved in the new node
2466 Old_Paren_Count : Nat;
2467 Old_Must_Not_Freeze : Boolean;
2468 -- These fields are preserved in the new node only if the new node
2469 -- and the old node are both subexpression nodes.
2471 -- Note: it is a violation of abstraction levels for Must_Not_Freeze
2472 -- to be referenced like this. ???
2478 (not Has_Extension (Old_Node)
2479 and not Has_Extension (New_Node)
2480 and not Nodes.Table (New_Node).In_List);
2482 if Nkind (Old_Node) in N_Subexpr then
2483 Old_Paren_Count := Paren_Count (Old_Node);
2484 Old_Must_Not_Freeze := Must_Not_Freeze (Old_Node);
2486 Old_Paren_Count := 0;
2487 Old_Must_Not_Freeze := False;
2490 -- Allocate a new node, to be used to preserve the original contents
2491 -- of the Old_Node, for possible later retrival by Original_Node and
2492 -- make an entry in the Orig_Nodes table. This is only done if we have
2493 -- not already rewritten the node, as indicated by an Orig_Nodes entry
2494 -- that does not reference the Old_Node.
2496 if Orig_Nodes.Table (Old_Node) = Old_Node then
2497 Sav_Node := New_Copy (Old_Node);
2498 Orig_Nodes.Table (Sav_Node) := Sav_Node;
2499 Orig_Nodes.Table (Old_Node) := Sav_Node;
2502 -- Copy substitute node into place, preserving old fields as required
2504 Copy_Node (Source => New_Node, Destination => Old_Node);
2505 Nodes.Table (Old_Node).Error_Posted := Old_Error_P;
2507 if Nkind (New_Node) in N_Subexpr then
2508 Set_Paren_Count (Old_Node, Old_Paren_Count);
2509 Set_Must_Not_Freeze (Old_Node, Old_Must_Not_Freeze);
2512 Fix_Parents (Ref_Node => New_Node, Fix_Node => Old_Node);
2519 procedure Set_Analyzed (N : Node_Id; Val : Boolean := True) is
2521 Nodes.Table (N).Analyzed := Val;
2524 ---------------------------
2525 -- Set_Comes_From_Source --
2526 ---------------------------
2528 procedure Set_Comes_From_Source (N : Node_Id; Val : Boolean) is
2530 pragma Assert (N <= Nodes.Last);
2531 Nodes.Table (N).Comes_From_Source := Val;
2532 end Set_Comes_From_Source;
2534 -----------------------------------
2535 -- Set_Comes_From_Source_Default --
2536 -----------------------------------
2538 procedure Set_Comes_From_Source_Default (Default : Boolean) is
2540 Default_Node.Comes_From_Source := Default;
2541 end Set_Comes_From_Source_Default;
2547 procedure Set_Ekind (E : Entity_Id; Val : Entity_Kind) is
2549 pragma Assert (Nkind (E) in N_Entity);
2550 Nodes.Table (E + 1).Nkind := E_To_N (Val);
2553 ----------------------
2554 -- Set_Error_Posted --
2555 ----------------------
2557 procedure Set_Error_Posted (N : Node_Id; Val : Boolean := True) is
2559 Nodes.Table (N).Error_Posted := Val;
2560 end Set_Error_Posted;
2562 ---------------------
2563 -- Set_Paren_Count --
2564 ---------------------
2566 procedure Set_Paren_Count (N : Node_Id; Val : Nat) is
2568 pragma Assert (Nkind (N) in N_Subexpr);
2570 -- Value of 0,1,2 stored as is
2573 Nodes.Table (N).Pflag1 := (Val mod 2 /= 0);
2574 Nodes.Table (N).Pflag2 := (Val = 2);
2576 -- Value of 3 or greater stores 3 in node and makes table entry
2579 Nodes.Table (N).Pflag1 := True;
2580 Nodes.Table (N).Pflag2 := True;
2582 for J in Paren_Counts.First .. Paren_Counts.Last loop
2583 if N = Paren_Counts.Table (J).Nod then
2584 Paren_Counts.Table (J).Count := Val;
2589 Paren_Counts.Append ((Nod => N, Count => Val));
2591 end Set_Paren_Count;
2597 procedure Set_Parent (N : Node_Id; Val : Node_Id) is
2599 pragma Assert (not Nodes.Table (N).In_List);
2600 Nodes.Table (N).Link := Union_Id (Val);
2607 procedure Set_Sloc (N : Node_Id; Val : Source_Ptr) is
2609 Nodes.Table (N).Sloc := Val;
2616 function Sloc (N : Node_Id) return Source_Ptr is
2618 return Nodes.Table (N).Sloc;
2625 function Traverse_Func (Node : Node_Id) return Traverse_Final_Result is
2627 function Traverse_Field
2630 FN : Field_Num) return Traverse_Final_Result;
2631 -- Fld is one of the fields of Nod. If the field points to syntactic
2632 -- node or list, then this node or list is traversed, and the result is
2633 -- the result of this traversal. Otherwise a value of True is returned
2634 -- with no processing. FN is the number of the field (1 .. 5).
2636 --------------------
2637 -- Traverse_Field --
2638 --------------------
2640 function Traverse_Field
2643 FN : Field_Num) return Traverse_Final_Result
2646 if Fld = Union_Id (Empty) then
2649 -- Descendent is a node
2651 elsif Fld in Node_Range then
2653 -- Traverse descendent that is syntactic subtree node
2655 if Is_Syntactic_Field (Nkind (Nod), FN) then
2656 return Traverse_Func (Node_Id (Fld));
2658 -- Node that is not a syntactic subtree
2664 -- Descendent is a list
2666 elsif Fld in List_Range then
2668 -- Traverse descendent that is a syntactic subtree list
2670 if Is_Syntactic_Field (Nkind (Nod), FN) then
2672 Elmt : Node_Id := First (List_Id (Fld));
2674 while Present (Elmt) loop
2675 if Traverse_Func (Elmt) = Abandon then
2685 -- List that is not a syntactic subtree
2691 -- Field was not a node or a list
2698 Cur_Node : Node_Id := Node;
2700 -- Start of processing for Traverse_Func
2703 -- We walk Field2 last, and if it is a node, we eliminate the tail
2704 -- recursion by jumping back to this label. This is because Field2 is
2705 -- where the Left_Opnd field of N_Op_Concat is stored, and in practice
2706 -- concatenations are sometimes deeply nested, as in X1&X2&...&XN. This
2707 -- trick prevents us from running out of memory in that case. We don't
2708 -- bother eliminating the tail recursion if Field2 is a list.
2712 case Process (Cur_Node) is
2723 Cur_Node := Original_Node (Cur_Node);
2726 if Traverse_Field (Cur_Node, Field1 (Cur_Node), 1) = Abandon
2727 or else -- skip Field2 here
2728 Traverse_Field (Cur_Node, Field3 (Cur_Node), 3) = Abandon
2730 Traverse_Field (Cur_Node, Field4 (Cur_Node), 4) = Abandon
2732 Traverse_Field (Cur_Node, Field5 (Cur_Node), 5) = Abandon
2737 if Field2 (Cur_Node) not in Node_Range then
2738 return Traverse_Field (Cur_Node, Field2 (Cur_Node), 2);
2740 elsif Is_Syntactic_Field (Nkind (Cur_Node), 2)
2741 and then Field2 (Cur_Node) /= Empty_List_Or_Node
2743 -- Here is the tail recursion step, we reset Cur_Node and jump back
2744 -- to the start of the procedure, which has the same semantic effect
2747 Cur_Node := Node_Id (Field2 (Cur_Node));
2758 procedure Traverse_Proc (Node : Node_Id) is
2759 function Traverse is new Traverse_Func (Process);
2760 Discard : Traverse_Final_Result;
2761 pragma Warnings (Off, Discard);
2763 Discard := Traverse (Node);
2770 procedure Tree_Read is
2772 Tree_Read_Int (Node_Count);
2774 Orig_Nodes.Tree_Read;
2775 Paren_Counts.Tree_Read;
2782 procedure Tree_Write is
2784 Tree_Write_Int (Node_Count);
2786 Orig_Nodes.Tree_Write;
2787 Paren_Counts.Tree_Write;
2790 ------------------------------
2791 -- Unchecked Access Package --
2792 ------------------------------
2794 package body Unchecked_Access is
2796 function Field1 (N : Node_Id) return Union_Id is
2798 pragma Assert (N <= Nodes.Last);
2799 return Nodes.Table (N).Field1;
2802 function Field2 (N : Node_Id) return Union_Id is
2804 pragma Assert (N <= Nodes.Last);
2805 return Nodes.Table (N).Field2;
2808 function Field3 (N : Node_Id) return Union_Id is
2810 pragma Assert (N <= Nodes.Last);
2811 return Nodes.Table (N).Field3;
2814 function Field4 (N : Node_Id) return Union_Id is
2816 pragma Assert (N <= Nodes.Last);
2817 return Nodes.Table (N).Field4;
2820 function Field5 (N : Node_Id) return Union_Id is
2822 pragma Assert (N <= Nodes.Last);
2823 return Nodes.Table (N).Field5;
2826 function Field6 (N : Node_Id) return Union_Id is
2828 pragma Assert (Nkind (N) in N_Entity);
2829 return Nodes.Table (N + 1).Field6;
2832 function Field7 (N : Node_Id) return Union_Id is
2834 pragma Assert (Nkind (N) in N_Entity);
2835 return Nodes.Table (N + 1).Field7;
2838 function Field8 (N : Node_Id) return Union_Id is
2840 pragma Assert (Nkind (N) in N_Entity);
2841 return Nodes.Table (N + 1).Field8;
2844 function Field9 (N : Node_Id) return Union_Id is
2846 pragma Assert (Nkind (N) in N_Entity);
2847 return Nodes.Table (N + 1).Field9;
2850 function Field10 (N : Node_Id) return Union_Id is
2852 pragma Assert (Nkind (N) in N_Entity);
2853 return Nodes.Table (N + 1).Field10;
2856 function Field11 (N : Node_Id) return Union_Id is
2858 pragma Assert (Nkind (N) in N_Entity);
2859 return Nodes.Table (N + 1).Field11;
2862 function Field12 (N : Node_Id) return Union_Id is
2864 pragma Assert (Nkind (N) in N_Entity);
2865 return Nodes.Table (N + 1).Field12;
2868 function Field13 (N : Node_Id) return Union_Id is
2870 pragma Assert (Nkind (N) in N_Entity);
2871 return Nodes.Table (N + 2).Field6;
2874 function Field14 (N : Node_Id) return Union_Id is
2876 pragma Assert (Nkind (N) in N_Entity);
2877 return Nodes.Table (N + 2).Field7;
2880 function Field15 (N : Node_Id) return Union_Id is
2882 pragma Assert (Nkind (N) in N_Entity);
2883 return Nodes.Table (N + 2).Field8;
2886 function Field16 (N : Node_Id) return Union_Id is
2888 pragma Assert (Nkind (N) in N_Entity);
2889 return Nodes.Table (N + 2).Field9;
2892 function Field17 (N : Node_Id) return Union_Id is
2894 pragma Assert (Nkind (N) in N_Entity);
2895 return Nodes.Table (N + 2).Field10;
2898 function Field18 (N : Node_Id) return Union_Id is
2900 pragma Assert (Nkind (N) in N_Entity);
2901 return Nodes.Table (N + 2).Field11;
2904 function Field19 (N : Node_Id) return Union_Id is
2906 pragma Assert (Nkind (N) in N_Entity);
2907 return Nodes.Table (N + 3).Field6;
2910 function Field20 (N : Node_Id) return Union_Id is
2912 pragma Assert (Nkind (N) in N_Entity);
2913 return Nodes.Table (N + 3).Field7;
2916 function Field21 (N : Node_Id) return Union_Id is
2918 pragma Assert (Nkind (N) in N_Entity);
2919 return Nodes.Table (N + 3).Field8;
2922 function Field22 (N : Node_Id) return Union_Id is
2924 pragma Assert (Nkind (N) in N_Entity);
2925 return Nodes.Table (N + 3).Field9;
2928 function Field23 (N : Node_Id) return Union_Id is
2930 pragma Assert (Nkind (N) in N_Entity);
2931 return Nodes.Table (N + 3).Field10;
2934 function Field24 (N : Node_Id) return Union_Id is
2936 pragma Assert (Nkind (N) in N_Entity);
2937 return Nodes.Table (N + 4).Field6;
2940 function Field25 (N : Node_Id) return Union_Id is
2942 pragma Assert (Nkind (N) in N_Entity);
2943 return Nodes.Table (N + 4).Field7;
2946 function Field26 (N : Node_Id) return Union_Id is
2948 pragma Assert (Nkind (N) in N_Entity);
2949 return Nodes.Table (N + 4).Field8;
2952 function Field27 (N : Node_Id) return Union_Id is
2954 pragma Assert (Nkind (N) in N_Entity);
2955 return Nodes.Table (N + 4).Field9;
2958 function Field28 (N : Node_Id) return Union_Id is
2960 pragma Assert (Nkind (N) in N_Entity);
2961 return Nodes.Table (N + 4).Field10;
2964 function Node1 (N : Node_Id) return Node_Id is
2966 pragma Assert (N <= Nodes.Last);
2967 return Node_Id (Nodes.Table (N).Field1);
2970 function Node2 (N : Node_Id) return Node_Id is
2972 pragma Assert (N <= Nodes.Last);
2973 return Node_Id (Nodes.Table (N).Field2);
2976 function Node3 (N : Node_Id) return Node_Id is
2978 pragma Assert (N <= Nodes.Last);
2979 return Node_Id (Nodes.Table (N).Field3);
2982 function Node4 (N : Node_Id) return Node_Id is
2984 pragma Assert (N <= Nodes.Last);
2985 return Node_Id (Nodes.Table (N).Field4);
2988 function Node5 (N : Node_Id) return Node_Id is
2990 pragma Assert (N <= Nodes.Last);
2991 return Node_Id (Nodes.Table (N).Field5);
2994 function Node6 (N : Node_Id) return Node_Id is
2996 pragma Assert (Nkind (N) in N_Entity);
2997 return Node_Id (Nodes.Table (N + 1).Field6);
3000 function Node7 (N : Node_Id) return Node_Id is
3002 pragma Assert (Nkind (N) in N_Entity);
3003 return Node_Id (Nodes.Table (N + 1).Field7);
3006 function Node8 (N : Node_Id) return Node_Id is
3008 pragma Assert (Nkind (N) in N_Entity);
3009 return Node_Id (Nodes.Table (N + 1).Field8);
3012 function Node9 (N : Node_Id) return Node_Id is
3014 pragma Assert (Nkind (N) in N_Entity);
3015 return Node_Id (Nodes.Table (N + 1).Field9);
3018 function Node10 (N : Node_Id) return Node_Id is
3020 pragma Assert (Nkind (N) in N_Entity);
3021 return Node_Id (Nodes.Table (N + 1).Field10);
3024 function Node11 (N : Node_Id) return Node_Id is
3026 pragma Assert (Nkind (N) in N_Entity);
3027 return Node_Id (Nodes.Table (N + 1).Field11);
3030 function Node12 (N : Node_Id) return Node_Id is
3032 pragma Assert (Nkind (N) in N_Entity);
3033 return Node_Id (Nodes.Table (N + 1).Field12);
3036 function Node13 (N : Node_Id) return Node_Id is
3038 pragma Assert (Nkind (N) in N_Entity);
3039 return Node_Id (Nodes.Table (N + 2).Field6);
3042 function Node14 (N : Node_Id) return Node_Id is
3044 pragma Assert (Nkind (N) in N_Entity);
3045 return Node_Id (Nodes.Table (N + 2).Field7);
3048 function Node15 (N : Node_Id) return Node_Id is
3050 pragma Assert (Nkind (N) in N_Entity);
3051 return Node_Id (Nodes.Table (N + 2).Field8);
3054 function Node16 (N : Node_Id) return Node_Id is
3056 pragma Assert (Nkind (N) in N_Entity);
3057 return Node_Id (Nodes.Table (N + 2).Field9);
3060 function Node17 (N : Node_Id) return Node_Id is
3062 pragma Assert (Nkind (N) in N_Entity);
3063 return Node_Id (Nodes.Table (N + 2).Field10);
3066 function Node18 (N : Node_Id) return Node_Id is
3068 pragma Assert (Nkind (N) in N_Entity);
3069 return Node_Id (Nodes.Table (N + 2).Field11);
3072 function Node19 (N : Node_Id) return Node_Id is
3074 pragma Assert (Nkind (N) in N_Entity);
3075 return Node_Id (Nodes.Table (N + 3).Field6);
3078 function Node20 (N : Node_Id) return Node_Id is
3080 pragma Assert (Nkind (N) in N_Entity);
3081 return Node_Id (Nodes.Table (N + 3).Field7);
3084 function Node21 (N : Node_Id) return Node_Id is
3086 pragma Assert (Nkind (N) in N_Entity);
3087 return Node_Id (Nodes.Table (N + 3).Field8);
3090 function Node22 (N : Node_Id) return Node_Id is
3092 pragma Assert (Nkind (N) in N_Entity);
3093 return Node_Id (Nodes.Table (N + 3).Field9);
3096 function Node23 (N : Node_Id) return Node_Id is
3098 pragma Assert (Nkind (N) in N_Entity);
3099 return Node_Id (Nodes.Table (N + 3).Field10);
3102 function Node24 (N : Node_Id) return Node_Id is
3104 pragma Assert (Nkind (N) in N_Entity);
3105 return Node_Id (Nodes.Table (N + 4).Field6);
3108 function Node25 (N : Node_Id) return Node_Id is
3110 pragma Assert (Nkind (N) in N_Entity);
3111 return Node_Id (Nodes.Table (N + 4).Field7);
3114 function Node26 (N : Node_Id) return Node_Id is
3116 pragma Assert (Nkind (N) in N_Entity);
3117 return Node_Id (Nodes.Table (N + 4).Field8);
3120 function Node27 (N : Node_Id) return Node_Id is
3122 pragma Assert (Nkind (N) in N_Entity);
3123 return Node_Id (Nodes.Table (N + 4).Field9);
3126 function Node28 (N : Node_Id) return Node_Id is
3128 pragma Assert (Nkind (N) in N_Entity);
3129 return Node_Id (Nodes.Table (N + 4).Field10);
3132 function List1 (N : Node_Id) return List_Id is
3134 pragma Assert (N <= Nodes.Last);
3135 return List_Id (Nodes.Table (N).Field1);
3138 function List2 (N : Node_Id) return List_Id is
3140 pragma Assert (N <= Nodes.Last);
3141 return List_Id (Nodes.Table (N).Field2);
3144 function List3 (N : Node_Id) return List_Id is
3146 pragma Assert (N <= Nodes.Last);
3147 return List_Id (Nodes.Table (N).Field3);
3150 function List4 (N : Node_Id) return List_Id is
3152 pragma Assert (N <= Nodes.Last);
3153 return List_Id (Nodes.Table (N).Field4);
3156 function List5 (N : Node_Id) return List_Id is
3158 pragma Assert (N <= Nodes.Last);
3159 return List_Id (Nodes.Table (N).Field5);
3162 function List10 (N : Node_Id) return List_Id is
3164 pragma Assert (Nkind (N) in N_Entity);
3165 return List_Id (Nodes.Table (N + 1).Field10);
3168 function List14 (N : Node_Id) return List_Id is
3170 pragma Assert (Nkind (N) in N_Entity);
3171 return List_Id (Nodes.Table (N + 2).Field7);
3174 function Elist1 (N : Node_Id) return Elist_Id is
3175 pragma Assert (N <= Nodes.Last);
3176 Value : constant Union_Id := Nodes.Table (N).Field1;
3181 return Elist_Id (Value);
3185 function Elist2 (N : Node_Id) return Elist_Id is
3186 pragma Assert (N <= Nodes.Last);
3187 Value : constant Union_Id := Nodes.Table (N).Field2;
3192 return Elist_Id (Value);
3196 function Elist3 (N : Node_Id) return Elist_Id is
3197 pragma Assert (N <= Nodes.Last);
3198 Value : constant Union_Id := Nodes.Table (N).Field3;
3203 return Elist_Id (Value);
3207 function Elist4 (N : Node_Id) return Elist_Id is
3208 pragma Assert (N <= Nodes.Last);
3209 Value : constant Union_Id := Nodes.Table (N).Field4;
3214 return Elist_Id (Value);
3218 function Elist8 (N : Node_Id) return Elist_Id is
3219 pragma Assert (Nkind (N) in N_Entity);
3220 Value : constant Union_Id := Nodes.Table (N + 1).Field8;
3225 return Elist_Id (Value);
3229 function Elist13 (N : Node_Id) return Elist_Id is
3230 pragma Assert (Nkind (N) in N_Entity);
3231 Value : constant Union_Id := Nodes.Table (N + 2).Field6;
3236 return Elist_Id (Value);
3240 function Elist15 (N : Node_Id) return Elist_Id is
3241 pragma Assert (Nkind (N) in N_Entity);
3242 Value : constant Union_Id := Nodes.Table (N + 2).Field8;
3247 return Elist_Id (Value);
3251 function Elist16 (N : Node_Id) return Elist_Id is
3252 pragma Assert (Nkind (N) in N_Entity);
3253 Value : constant Union_Id := Nodes.Table (N + 2).Field9;
3258 return Elist_Id (Value);
3262 function Elist18 (N : Node_Id) return Elist_Id is
3263 pragma Assert (Nkind (N) in N_Entity);
3264 Value : constant Union_Id := Nodes.Table (N + 2).Field11;
3269 return Elist_Id (Value);
3273 function Elist21 (N : Node_Id) return Elist_Id is
3274 pragma Assert (Nkind (N) in N_Entity);
3275 Value : constant Union_Id := Nodes.Table (N + 3).Field8;
3280 return Elist_Id (Value);
3284 function Elist23 (N : Node_Id) return Elist_Id is
3285 pragma Assert (Nkind (N) in N_Entity);
3286 Value : constant Union_Id := Nodes.Table (N + 3).Field10;
3291 return Elist_Id (Value);
3295 function Elist25 (N : Node_Id) return Elist_Id is
3296 pragma Assert (Nkind (N) in N_Entity);
3297 Value : constant Union_Id := Nodes.Table (N + 4).Field7;
3302 return Elist_Id (Value);
3306 function Elist26 (N : Node_Id) return Elist_Id is
3307 pragma Assert (Nkind (N) in N_Entity);
3308 Value : constant Union_Id := Nodes.Table (N + 4).Field8;
3313 return Elist_Id (Value);
3317 function Name1 (N : Node_Id) return Name_Id is
3319 pragma Assert (N <= Nodes.Last);
3320 return Name_Id (Nodes.Table (N).Field1);
3323 function Name2 (N : Node_Id) return Name_Id is
3325 pragma Assert (N <= Nodes.Last);
3326 return Name_Id (Nodes.Table (N).Field2);
3329 function Str3 (N : Node_Id) return String_Id is
3331 pragma Assert (N <= Nodes.Last);
3332 return String_Id (Nodes.Table (N).Field3);
3335 function Uint2 (N : Node_Id) return Uint is
3336 pragma Assert (N <= Nodes.Last);
3337 U : constant Union_Id := Nodes.Table (N).Field2;
3342 return From_Union (U);
3346 function Uint3 (N : Node_Id) return Uint is
3347 pragma Assert (N <= Nodes.Last);
3348 U : constant Union_Id := Nodes.Table (N).Field3;
3353 return From_Union (U);
3357 function Uint4 (N : Node_Id) return Uint is
3358 pragma Assert (N <= Nodes.Last);
3359 U : constant Union_Id := Nodes.Table (N).Field4;
3364 return From_Union (U);
3368 function Uint5 (N : Node_Id) return Uint is
3369 pragma Assert (N <= Nodes.Last);
3370 U : constant Union_Id := Nodes.Table (N).Field5;
3375 return From_Union (U);
3379 function Uint8 (N : Node_Id) return Uint is
3380 pragma Assert (Nkind (N) in N_Entity);
3381 U : constant Union_Id := Nodes.Table (N + 1).Field8;
3386 return From_Union (U);
3390 function Uint9 (N : Node_Id) return Uint is
3391 pragma Assert (Nkind (N) in N_Entity);
3392 U : constant Union_Id := Nodes.Table (N + 1).Field9;
3397 return From_Union (U);
3401 function Uint10 (N : Node_Id) return Uint is
3402 pragma Assert (Nkind (N) in N_Entity);
3403 U : constant Union_Id := Nodes.Table (N + 1).Field10;
3408 return From_Union (U);
3412 function Uint11 (N : Node_Id) return Uint is
3413 pragma Assert (Nkind (N) in N_Entity);
3414 U : constant Union_Id := Nodes.Table (N + 1).Field11;
3419 return From_Union (U);
3423 function Uint12 (N : Node_Id) return Uint is
3424 pragma Assert (Nkind (N) in N_Entity);
3425 U : constant Union_Id := Nodes.Table (N + 1).Field12;
3430 return From_Union (U);
3434 function Uint13 (N : Node_Id) return Uint is
3435 pragma Assert (Nkind (N) in N_Entity);
3436 U : constant Union_Id := Nodes.Table (N + 2).Field6;
3441 return From_Union (U);
3445 function Uint14 (N : Node_Id) return Uint is
3446 pragma Assert (Nkind (N) in N_Entity);
3447 U : constant Union_Id := Nodes.Table (N + 2).Field7;
3452 return From_Union (U);
3456 function Uint15 (N : Node_Id) return Uint is
3457 pragma Assert (Nkind (N) in N_Entity);
3458 U : constant Union_Id := Nodes.Table (N + 2).Field8;
3463 return From_Union (U);
3467 function Uint16 (N : Node_Id) return Uint is
3468 pragma Assert (Nkind (N) in N_Entity);
3469 U : constant Union_Id := Nodes.Table (N + 2).Field9;
3474 return From_Union (U);
3478 function Uint17 (N : Node_Id) return Uint is
3479 pragma Assert (Nkind (N) in N_Entity);
3480 U : constant Union_Id := Nodes.Table (N + 2).Field10;
3485 return From_Union (U);
3489 function Uint22 (N : Node_Id) return Uint is
3490 pragma Assert (Nkind (N) in N_Entity);
3491 U : constant Union_Id := Nodes.Table (N + 3).Field9;
3496 return From_Union (U);
3500 function Ureal3 (N : Node_Id) return Ureal is
3502 pragma Assert (N <= Nodes.Last);
3503 return From_Union (Nodes.Table (N).Field3);
3506 function Ureal18 (N : Node_Id) return Ureal is
3508 pragma Assert (Nkind (N) in N_Entity);
3509 return From_Union (Nodes.Table (N + 2).Field11);
3512 function Ureal21 (N : Node_Id) return Ureal is
3514 pragma Assert (Nkind (N) in N_Entity);
3515 return From_Union (Nodes.Table (N + 3).Field8);
3518 function Flag4 (N : Node_Id) return Boolean is
3520 pragma Assert (N <= Nodes.Last);
3521 return Nodes.Table (N).Flag4;
3524 function Flag5 (N : Node_Id) return Boolean is
3526 pragma Assert (N <= Nodes.Last);
3527 return Nodes.Table (N).Flag5;
3530 function Flag6 (N : Node_Id) return Boolean is
3532 pragma Assert (N <= Nodes.Last);
3533 return Nodes.Table (N).Flag6;
3536 function Flag7 (N : Node_Id) return Boolean is
3538 pragma Assert (N <= Nodes.Last);
3539 return Nodes.Table (N).Flag7;
3542 function Flag8 (N : Node_Id) return Boolean is
3544 pragma Assert (N <= Nodes.Last);
3545 return Nodes.Table (N).Flag8;
3548 function Flag9 (N : Node_Id) return Boolean is
3550 pragma Assert (N <= Nodes.Last);
3551 return Nodes.Table (N).Flag9;
3554 function Flag10 (N : Node_Id) return Boolean is
3556 pragma Assert (N <= Nodes.Last);
3557 return Nodes.Table (N).Flag10;
3560 function Flag11 (N : Node_Id) return Boolean is
3562 pragma Assert (N <= Nodes.Last);
3563 return Nodes.Table (N).Flag11;
3566 function Flag12 (N : Node_Id) return Boolean is
3568 pragma Assert (N <= Nodes.Last);
3569 return Nodes.Table (N).Flag12;
3572 function Flag13 (N : Node_Id) return Boolean is
3574 pragma Assert (N <= Nodes.Last);
3575 return Nodes.Table (N).Flag13;
3578 function Flag14 (N : Node_Id) return Boolean is
3580 pragma Assert (N <= Nodes.Last);
3581 return Nodes.Table (N).Flag14;
3584 function Flag15 (N : Node_Id) return Boolean is
3586 pragma Assert (N <= Nodes.Last);
3587 return Nodes.Table (N).Flag15;
3590 function Flag16 (N : Node_Id) return Boolean is
3592 pragma Assert (N <= Nodes.Last);
3593 return Nodes.Table (N).Flag16;
3596 function Flag17 (N : Node_Id) return Boolean is
3598 pragma Assert (N <= Nodes.Last);
3599 return Nodes.Table (N).Flag17;
3602 function Flag18 (N : Node_Id) return Boolean is
3604 pragma Assert (N <= Nodes.Last);
3605 return Nodes.Table (N).Flag18;
3608 function Flag19 (N : Node_Id) return Boolean is
3610 pragma Assert (Nkind (N) in N_Entity);
3611 return Nodes.Table (N + 1).In_List;
3614 function Flag20 (N : Node_Id) return Boolean is
3616 pragma Assert (Nkind (N) in N_Entity);
3617 return Nodes.Table (N + 1).Unused_1;
3620 function Flag21 (N : Node_Id) return Boolean is
3622 pragma Assert (Nkind (N) in N_Entity);
3623 return Nodes.Table (N + 1).Rewrite_Ins;
3626 function Flag22 (N : Node_Id) return Boolean is
3628 pragma Assert (Nkind (N) in N_Entity);
3629 return Nodes.Table (N + 1).Analyzed;
3632 function Flag23 (N : Node_Id) return Boolean is
3634 pragma Assert (Nkind (N) in N_Entity);
3635 return Nodes.Table (N + 1).Comes_From_Source;
3638 function Flag24 (N : Node_Id) return Boolean is
3640 pragma Assert (Nkind (N) in N_Entity);
3641 return Nodes.Table (N + 1).Error_Posted;
3644 function Flag25 (N : Node_Id) return Boolean is
3646 pragma Assert (Nkind (N) in N_Entity);
3647 return Nodes.Table (N + 1).Flag4;
3650 function Flag26 (N : Node_Id) return Boolean is
3652 pragma Assert (Nkind (N) in N_Entity);
3653 return Nodes.Table (N + 1).Flag5;
3656 function Flag27 (N : Node_Id) return Boolean is
3658 pragma Assert (Nkind (N) in N_Entity);
3659 return Nodes.Table (N + 1).Flag6;
3662 function Flag28 (N : Node_Id) return Boolean is
3664 pragma Assert (Nkind (N) in N_Entity);
3665 return Nodes.Table (N + 1).Flag7;
3668 function Flag29 (N : Node_Id) return Boolean is
3670 pragma Assert (Nkind (N) in N_Entity);
3671 return Nodes.Table (N + 1).Flag8;
3674 function Flag30 (N : Node_Id) return Boolean is
3676 pragma Assert (Nkind (N) in N_Entity);
3677 return Nodes.Table (N + 1).Flag9;
3680 function Flag31 (N : Node_Id) return Boolean is
3682 pragma Assert (Nkind (N) in N_Entity);
3683 return Nodes.Table (N + 1).Flag10;
3686 function Flag32 (N : Node_Id) return Boolean is
3688 pragma Assert (Nkind (N) in N_Entity);
3689 return Nodes.Table (N + 1).Flag11;
3692 function Flag33 (N : Node_Id) return Boolean is
3694 pragma Assert (Nkind (N) in N_Entity);
3695 return Nodes.Table (N + 1).Flag12;
3698 function Flag34 (N : Node_Id) return Boolean is
3700 pragma Assert (Nkind (N) in N_Entity);
3701 return Nodes.Table (N + 1).Flag13;
3704 function Flag35 (N : Node_Id) return Boolean is
3706 pragma Assert (Nkind (N) in N_Entity);
3707 return Nodes.Table (N + 1).Flag14;
3710 function Flag36 (N : Node_Id) return Boolean is
3712 pragma Assert (Nkind (N) in N_Entity);
3713 return Nodes.Table (N + 1).Flag15;
3716 function Flag37 (N : Node_Id) return Boolean is
3718 pragma Assert (Nkind (N) in N_Entity);
3719 return Nodes.Table (N + 1).Flag16;
3722 function Flag38 (N : Node_Id) return Boolean is
3724 pragma Assert (Nkind (N) in N_Entity);
3725 return Nodes.Table (N + 1).Flag17;
3728 function Flag39 (N : Node_Id) return Boolean is
3730 pragma Assert (Nkind (N) in N_Entity);
3731 return Nodes.Table (N + 1).Flag18;
3734 function Flag40 (N : Node_Id) return Boolean is
3736 pragma Assert (Nkind (N) in N_Entity);
3737 return Nodes.Table (N + 2).In_List;
3740 function Flag41 (N : Node_Id) return Boolean is
3742 pragma Assert (Nkind (N) in N_Entity);
3743 return Nodes.Table (N + 2).Unused_1;
3746 function Flag42 (N : Node_Id) return Boolean is
3748 pragma Assert (Nkind (N) in N_Entity);
3749 return Nodes.Table (N + 2).Rewrite_Ins;
3752 function Flag43 (N : Node_Id) return Boolean is
3754 pragma Assert (Nkind (N) in N_Entity);
3755 return Nodes.Table (N + 2).Analyzed;
3758 function Flag44 (N : Node_Id) return Boolean is
3760 pragma Assert (Nkind (N) in N_Entity);
3761 return Nodes.Table (N + 2).Comes_From_Source;
3764 function Flag45 (N : Node_Id) return Boolean is
3766 pragma Assert (Nkind (N) in N_Entity);
3767 return Nodes.Table (N + 2).Error_Posted;
3770 function Flag46 (N : Node_Id) return Boolean is
3772 pragma Assert (Nkind (N) in N_Entity);
3773 return Nodes.Table (N + 2).Flag4;
3776 function Flag47 (N : Node_Id) return Boolean is
3778 pragma Assert (Nkind (N) in N_Entity);
3779 return Nodes.Table (N + 2).Flag5;
3782 function Flag48 (N : Node_Id) return Boolean is
3784 pragma Assert (Nkind (N) in N_Entity);
3785 return Nodes.Table (N + 2).Flag6;
3788 function Flag49 (N : Node_Id) return Boolean is
3790 pragma Assert (Nkind (N) in N_Entity);
3791 return Nodes.Table (N + 2).Flag7;
3794 function Flag50 (N : Node_Id) return Boolean is
3796 pragma Assert (Nkind (N) in N_Entity);
3797 return Nodes.Table (N + 2).Flag8;
3800 function Flag51 (N : Node_Id) return Boolean is
3802 pragma Assert (Nkind (N) in N_Entity);
3803 return Nodes.Table (N + 2).Flag9;
3806 function Flag52 (N : Node_Id) return Boolean is
3808 pragma Assert (Nkind (N) in N_Entity);
3809 return Nodes.Table (N + 2).Flag10;
3812 function Flag53 (N : Node_Id) return Boolean is
3814 pragma Assert (Nkind (N) in N_Entity);
3815 return Nodes.Table (N + 2).Flag11;
3818 function Flag54 (N : Node_Id) return Boolean is
3820 pragma Assert (Nkind (N) in N_Entity);
3821 return Nodes.Table (N + 2).Flag12;
3824 function Flag55 (N : Node_Id) return Boolean is
3826 pragma Assert (Nkind (N) in N_Entity);
3827 return Nodes.Table (N + 2).Flag13;
3830 function Flag56 (N : Node_Id) return Boolean is
3832 pragma Assert (Nkind (N) in N_Entity);
3833 return Nodes.Table (N + 2).Flag14;
3836 function Flag57 (N : Node_Id) return Boolean is
3838 pragma Assert (Nkind (N) in N_Entity);
3839 return Nodes.Table (N + 2).Flag15;
3842 function Flag58 (N : Node_Id) return Boolean is
3844 pragma Assert (Nkind (N) in N_Entity);
3845 return Nodes.Table (N + 2).Flag16;
3848 function Flag59 (N : Node_Id) return Boolean is
3850 pragma Assert (Nkind (N) in N_Entity);
3851 return Nodes.Table (N + 2).Flag17;
3854 function Flag60 (N : Node_Id) return Boolean is
3856 pragma Assert (Nkind (N) in N_Entity);
3857 return Nodes.Table (N + 2).Flag18;
3860 function Flag61 (N : Node_Id) return Boolean is
3862 pragma Assert (Nkind (N) in N_Entity);
3863 return Nodes.Table (N + 1).Pflag1;
3866 function Flag62 (N : Node_Id) return Boolean is
3868 pragma Assert (Nkind (N) in N_Entity);
3869 return Nodes.Table (N + 1).Pflag2;
3872 function Flag63 (N : Node_Id) return Boolean is
3874 pragma Assert (Nkind (N) in N_Entity);
3875 return Nodes.Table (N + 2).Pflag1;
3878 function Flag64 (N : Node_Id) return Boolean is
3880 pragma Assert (Nkind (N) in N_Entity);
3881 return Nodes.Table (N + 2).Pflag2;
3884 function Flag65 (N : Node_Id) return Boolean is
3886 pragma Assert (Nkind (N) in N_Entity);
3887 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag65;
3890 function Flag66 (N : Node_Id) return Boolean is
3892 pragma Assert (Nkind (N) in N_Entity);
3893 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag66;
3896 function Flag67 (N : Node_Id) return Boolean is
3898 pragma Assert (Nkind (N) in N_Entity);
3899 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag67;
3902 function Flag68 (N : Node_Id) return Boolean is
3904 pragma Assert (Nkind (N) in N_Entity);
3905 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag68;
3908 function Flag69 (N : Node_Id) return Boolean is
3910 pragma Assert (Nkind (N) in N_Entity);
3911 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag69;
3914 function Flag70 (N : Node_Id) return Boolean is
3916 pragma Assert (Nkind (N) in N_Entity);
3917 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag70;
3920 function Flag71 (N : Node_Id) return Boolean is
3922 pragma Assert (Nkind (N) in N_Entity);
3923 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag71;
3926 function Flag72 (N : Node_Id) return Boolean is
3928 pragma Assert (Nkind (N) in N_Entity);
3929 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag72;
3932 function Flag73 (N : Node_Id) return Boolean is
3934 pragma Assert (Nkind (N) in N_Entity);
3935 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag73;
3938 function Flag74 (N : Node_Id) return Boolean is
3940 pragma Assert (Nkind (N) in N_Entity);
3941 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag74;
3944 function Flag75 (N : Node_Id) return Boolean is
3946 pragma Assert (Nkind (N) in N_Entity);
3947 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag75;
3950 function Flag76 (N : Node_Id) return Boolean is
3952 pragma Assert (Nkind (N) in N_Entity);
3953 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag76;
3956 function Flag77 (N : Node_Id) return Boolean is
3958 pragma Assert (Nkind (N) in N_Entity);
3959 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag77;
3962 function Flag78 (N : Node_Id) return Boolean is
3964 pragma Assert (Nkind (N) in N_Entity);
3965 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag78;
3968 function Flag79 (N : Node_Id) return Boolean is
3970 pragma Assert (Nkind (N) in N_Entity);
3971 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag79;
3974 function Flag80 (N : Node_Id) return Boolean is
3976 pragma Assert (Nkind (N) in N_Entity);
3977 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag80;
3980 function Flag81 (N : Node_Id) return Boolean is
3982 pragma Assert (Nkind (N) in N_Entity);
3983 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag81;
3986 function Flag82 (N : Node_Id) return Boolean is
3988 pragma Assert (Nkind (N) in N_Entity);
3989 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag82;
3992 function Flag83 (N : Node_Id) return Boolean is
3994 pragma Assert (Nkind (N) in N_Entity);
3995 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag83;
3998 function Flag84 (N : Node_Id) return Boolean is
4000 pragma Assert (Nkind (N) in N_Entity);
4001 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag84;
4004 function Flag85 (N : Node_Id) return Boolean is
4006 pragma Assert (Nkind (N) in N_Entity);
4007 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag85;
4010 function Flag86 (N : Node_Id) return Boolean is
4012 pragma Assert (Nkind (N) in N_Entity);
4013 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag86;
4016 function Flag87 (N : Node_Id) return Boolean is
4018 pragma Assert (Nkind (N) in N_Entity);
4019 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag87;
4022 function Flag88 (N : Node_Id) return Boolean is
4024 pragma Assert (Nkind (N) in N_Entity);
4025 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag88;
4028 function Flag89 (N : Node_Id) return Boolean is
4030 pragma Assert (Nkind (N) in N_Entity);
4031 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag89;
4034 function Flag90 (N : Node_Id) return Boolean is
4036 pragma Assert (Nkind (N) in N_Entity);
4037 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag90;
4040 function Flag91 (N : Node_Id) return Boolean is
4042 pragma Assert (Nkind (N) in N_Entity);
4043 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag91;
4046 function Flag92 (N : Node_Id) return Boolean is
4048 pragma Assert (Nkind (N) in N_Entity);
4049 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag92;
4052 function Flag93 (N : Node_Id) return Boolean is
4054 pragma Assert (Nkind (N) in N_Entity);
4055 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag93;
4058 function Flag94 (N : Node_Id) return Boolean is
4060 pragma Assert (Nkind (N) in N_Entity);
4061 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag94;
4064 function Flag95 (N : Node_Id) return Boolean is
4066 pragma Assert (Nkind (N) in N_Entity);
4067 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag95;
4070 function Flag96 (N : Node_Id) return Boolean is
4072 pragma Assert (Nkind (N) in N_Entity);
4073 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag96;
4076 function Flag97 (N : Node_Id) return Boolean is
4078 pragma Assert (Nkind (N) in N_Entity);
4079 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag97;
4082 function Flag98 (N : Node_Id) return Boolean is
4084 pragma Assert (Nkind (N) in N_Entity);
4085 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag98;
4088 function Flag99 (N : Node_Id) return Boolean is
4090 pragma Assert (Nkind (N) in N_Entity);
4091 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag99;
4094 function Flag100 (N : Node_Id) return Boolean is
4096 pragma Assert (Nkind (N) in N_Entity);
4097 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag100;
4100 function Flag101 (N : Node_Id) return Boolean is
4102 pragma Assert (Nkind (N) in N_Entity);
4103 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag101;
4106 function Flag102 (N : Node_Id) return Boolean is
4108 pragma Assert (Nkind (N) in N_Entity);
4109 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag102;
4112 function Flag103 (N : Node_Id) return Boolean is
4114 pragma Assert (Nkind (N) in N_Entity);
4115 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag103;
4118 function Flag104 (N : Node_Id) return Boolean is
4120 pragma Assert (Nkind (N) in N_Entity);
4121 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag104;
4124 function Flag105 (N : Node_Id) return Boolean is
4126 pragma Assert (Nkind (N) in N_Entity);
4127 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag105;
4130 function Flag106 (N : Node_Id) return Boolean is
4132 pragma Assert (Nkind (N) in N_Entity);
4133 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag106;
4136 function Flag107 (N : Node_Id) return Boolean is
4138 pragma Assert (Nkind (N) in N_Entity);
4139 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag107;
4142 function Flag108 (N : Node_Id) return Boolean is
4144 pragma Assert (Nkind (N) in N_Entity);
4145 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag108;
4148 function Flag109 (N : Node_Id) return Boolean is
4150 pragma Assert (Nkind (N) in N_Entity);
4151 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag109;
4154 function Flag110 (N : Node_Id) return Boolean is
4156 pragma Assert (Nkind (N) in N_Entity);
4157 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag110;
4160 function Flag111 (N : Node_Id) return Boolean is
4162 pragma Assert (Nkind (N) in N_Entity);
4163 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag111;
4166 function Flag112 (N : Node_Id) return Boolean is
4168 pragma Assert (Nkind (N) in N_Entity);
4169 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag112;
4172 function Flag113 (N : Node_Id) return Boolean is
4174 pragma Assert (Nkind (N) in N_Entity);
4175 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag113;
4178 function Flag114 (N : Node_Id) return Boolean is
4180 pragma Assert (Nkind (N) in N_Entity);
4181 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag114;
4184 function Flag115 (N : Node_Id) return Boolean is
4186 pragma Assert (Nkind (N) in N_Entity);
4187 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag115;
4190 function Flag116 (N : Node_Id) return Boolean is
4192 pragma Assert (Nkind (N) in N_Entity);
4193 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag116;
4196 function Flag117 (N : Node_Id) return Boolean is
4198 pragma Assert (Nkind (N) in N_Entity);
4199 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag117;
4202 function Flag118 (N : Node_Id) return Boolean is
4204 pragma Assert (Nkind (N) in N_Entity);
4205 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag118;
4208 function Flag119 (N : Node_Id) return Boolean is
4210 pragma Assert (Nkind (N) in N_Entity);
4211 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag119;
4214 function Flag120 (N : Node_Id) return Boolean is
4216 pragma Assert (Nkind (N) in N_Entity);
4217 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag120;
4220 function Flag121 (N : Node_Id) return Boolean is
4222 pragma Assert (Nkind (N) in N_Entity);
4223 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag121;
4226 function Flag122 (N : Node_Id) return Boolean is
4228 pragma Assert (Nkind (N) in N_Entity);
4229 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag122;
4232 function Flag123 (N : Node_Id) return Boolean is
4234 pragma Assert (Nkind (N) in N_Entity);
4235 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag123;
4238 function Flag124 (N : Node_Id) return Boolean is
4240 pragma Assert (Nkind (N) in N_Entity);
4241 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag124;
4244 function Flag125 (N : Node_Id) return Boolean is
4246 pragma Assert (Nkind (N) in N_Entity);
4247 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag125;
4250 function Flag126 (N : Node_Id) return Boolean is
4252 pragma Assert (Nkind (N) in N_Entity);
4253 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag126;
4256 function Flag127 (N : Node_Id) return Boolean is
4258 pragma Assert (Nkind (N) in N_Entity);
4259 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag127;
4262 function Flag128 (N : Node_Id) return Boolean is
4264 pragma Assert (Nkind (N) in N_Entity);
4265 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag128;
4268 function Flag129 (N : Node_Id) return Boolean is
4270 pragma Assert (Nkind (N) in N_Entity);
4271 return Nodes.Table (N + 3).In_List;
4274 function Flag130 (N : Node_Id) return Boolean is
4276 pragma Assert (Nkind (N) in N_Entity);
4277 return Nodes.Table (N + 3).Unused_1;
4280 function Flag131 (N : Node_Id) return Boolean is
4282 pragma Assert (Nkind (N) in N_Entity);
4283 return Nodes.Table (N + 3).Rewrite_Ins;
4286 function Flag132 (N : Node_Id) return Boolean is
4288 pragma Assert (Nkind (N) in N_Entity);
4289 return Nodes.Table (N + 3).Analyzed;
4292 function Flag133 (N : Node_Id) return Boolean is
4294 pragma Assert (Nkind (N) in N_Entity);
4295 return Nodes.Table (N + 3).Comes_From_Source;
4298 function Flag134 (N : Node_Id) return Boolean is
4300 pragma Assert (Nkind (N) in N_Entity);
4301 return Nodes.Table (N + 3).Error_Posted;
4304 function Flag135 (N : Node_Id) return Boolean is
4306 pragma Assert (Nkind (N) in N_Entity);
4307 return Nodes.Table (N + 3).Flag4;
4310 function Flag136 (N : Node_Id) return Boolean is
4312 pragma Assert (Nkind (N) in N_Entity);
4313 return Nodes.Table (N + 3).Flag5;
4316 function Flag137 (N : Node_Id) return Boolean is
4318 pragma Assert (Nkind (N) in N_Entity);
4319 return Nodes.Table (N + 3).Flag6;
4322 function Flag138 (N : Node_Id) return Boolean is
4324 pragma Assert (Nkind (N) in N_Entity);
4325 return Nodes.Table (N + 3).Flag7;
4328 function Flag139 (N : Node_Id) return Boolean is
4330 pragma Assert (Nkind (N) in N_Entity);
4331 return Nodes.Table (N + 3).Flag8;
4334 function Flag140 (N : Node_Id) return Boolean is
4336 pragma Assert (Nkind (N) in N_Entity);
4337 return Nodes.Table (N + 3).Flag9;
4340 function Flag141 (N : Node_Id) return Boolean is
4342 pragma Assert (Nkind (N) in N_Entity);
4343 return Nodes.Table (N + 3).Flag10;
4346 function Flag142 (N : Node_Id) return Boolean is
4348 pragma Assert (Nkind (N) in N_Entity);
4349 return Nodes.Table (N + 3).Flag11;
4352 function Flag143 (N : Node_Id) return Boolean is
4354 pragma Assert (Nkind (N) in N_Entity);
4355 return Nodes.Table (N + 3).Flag12;
4358 function Flag144 (N : Node_Id) return Boolean is
4360 pragma Assert (Nkind (N) in N_Entity);
4361 return Nodes.Table (N + 3).Flag13;
4364 function Flag145 (N : Node_Id) return Boolean is
4366 pragma Assert (Nkind (N) in N_Entity);
4367 return Nodes.Table (N + 3).Flag14;
4370 function Flag146 (N : Node_Id) return Boolean is
4372 pragma Assert (Nkind (N) in N_Entity);
4373 return Nodes.Table (N + 3).Flag15;
4376 function Flag147 (N : Node_Id) return Boolean is
4378 pragma Assert (Nkind (N) in N_Entity);
4379 return Nodes.Table (N + 3).Flag16;
4382 function Flag148 (N : Node_Id) return Boolean is
4384 pragma Assert (Nkind (N) in N_Entity);
4385 return Nodes.Table (N + 3).Flag17;
4388 function Flag149 (N : Node_Id) return Boolean is
4390 pragma Assert (Nkind (N) in N_Entity);
4391 return Nodes.Table (N + 3).Flag18;
4394 function Flag150 (N : Node_Id) return Boolean is
4396 pragma Assert (Nkind (N) in N_Entity);
4397 return Nodes.Table (N + 3).Pflag1;
4400 function Flag151 (N : Node_Id) return Boolean is
4402 pragma Assert (Nkind (N) in N_Entity);
4403 return Nodes.Table (N + 3).Pflag2;
4406 function Flag152 (N : Node_Id) return Boolean is
4408 pragma Assert (Nkind (N) in N_Entity);
4409 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag152;
4412 function Flag153 (N : Node_Id) return Boolean is
4414 pragma Assert (Nkind (N) in N_Entity);
4415 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag153;
4418 function Flag154 (N : Node_Id) return Boolean is
4420 pragma Assert (Nkind (N) in N_Entity);
4421 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag154;
4424 function Flag155 (N : Node_Id) return Boolean is
4426 pragma Assert (Nkind (N) in N_Entity);
4427 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag155;
4430 function Flag156 (N : Node_Id) return Boolean is
4432 pragma Assert (Nkind (N) in N_Entity);
4433 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag156;
4436 function Flag157 (N : Node_Id) return Boolean is
4438 pragma Assert (Nkind (N) in N_Entity);
4439 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag157;
4442 function Flag158 (N : Node_Id) return Boolean is
4444 pragma Assert (Nkind (N) in N_Entity);
4445 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag158;
4448 function Flag159 (N : Node_Id) return Boolean is
4450 pragma Assert (Nkind (N) in N_Entity);
4451 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag159;
4454 function Flag160 (N : Node_Id) return Boolean is
4456 pragma Assert (Nkind (N) in N_Entity);
4457 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag160;
4460 function Flag161 (N : Node_Id) return Boolean is
4462 pragma Assert (Nkind (N) in N_Entity);
4463 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag161;
4466 function Flag162 (N : Node_Id) return Boolean is
4468 pragma Assert (Nkind (N) in N_Entity);
4469 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag162;
4472 function Flag163 (N : Node_Id) return Boolean is
4474 pragma Assert (Nkind (N) in N_Entity);
4475 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag163;
4478 function Flag164 (N : Node_Id) return Boolean is
4480 pragma Assert (Nkind (N) in N_Entity);
4481 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag164;
4484 function Flag165 (N : Node_Id) return Boolean is
4486 pragma Assert (Nkind (N) in N_Entity);
4487 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag165;
4490 function Flag166 (N : Node_Id) return Boolean is
4492 pragma Assert (Nkind (N) in N_Entity);
4493 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag166;
4496 function Flag167 (N : Node_Id) return Boolean is
4498 pragma Assert (Nkind (N) in N_Entity);
4499 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag167;
4502 function Flag168 (N : Node_Id) return Boolean is
4504 pragma Assert (Nkind (N) in N_Entity);
4505 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag168;
4508 function Flag169 (N : Node_Id) return Boolean is
4510 pragma Assert (Nkind (N) in N_Entity);
4511 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag169;
4514 function Flag170 (N : Node_Id) return Boolean is
4516 pragma Assert (Nkind (N) in N_Entity);
4517 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag170;
4520 function Flag171 (N : Node_Id) return Boolean is
4522 pragma Assert (Nkind (N) in N_Entity);
4523 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag171;
4526 function Flag172 (N : Node_Id) return Boolean is
4528 pragma Assert (Nkind (N) in N_Entity);
4529 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag172;
4532 function Flag173 (N : Node_Id) return Boolean is
4534 pragma Assert (Nkind (N) in N_Entity);
4535 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag173;
4538 function Flag174 (N : Node_Id) return Boolean is
4540 pragma Assert (Nkind (N) in N_Entity);
4541 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag174;
4544 function Flag175 (N : Node_Id) return Boolean is
4546 pragma Assert (Nkind (N) in N_Entity);
4547 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag175;
4550 function Flag176 (N : Node_Id) return Boolean is
4552 pragma Assert (Nkind (N) in N_Entity);
4553 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag176;
4556 function Flag177 (N : Node_Id) return Boolean is
4558 pragma Assert (Nkind (N) in N_Entity);
4559 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag177;
4562 function Flag178 (N : Node_Id) return Boolean is
4564 pragma Assert (Nkind (N) in N_Entity);
4565 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag178;
4568 function Flag179 (N : Node_Id) return Boolean is
4570 pragma Assert (Nkind (N) in N_Entity);
4571 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag179;
4574 function Flag180 (N : Node_Id) return Boolean is
4576 pragma Assert (Nkind (N) in N_Entity);
4577 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag180;
4580 function Flag181 (N : Node_Id) return Boolean is
4582 pragma Assert (Nkind (N) in N_Entity);
4583 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag181;
4586 function Flag182 (N : Node_Id) return Boolean is
4588 pragma Assert (Nkind (N) in N_Entity);
4589 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag182;
4592 function Flag183 (N : Node_Id) return Boolean is
4594 pragma Assert (Nkind (N) in N_Entity);
4595 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag183;
4598 function Flag184 (N : Node_Id) return Boolean is
4600 pragma Assert (Nkind (N) in N_Entity);
4601 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag184;
4604 function Flag185 (N : Node_Id) return Boolean is
4606 pragma Assert (Nkind (N) in N_Entity);
4607 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag185;
4610 function Flag186 (N : Node_Id) return Boolean is
4612 pragma Assert (Nkind (N) in N_Entity);
4613 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag186;
4616 function Flag187 (N : Node_Id) return Boolean is
4618 pragma Assert (Nkind (N) in N_Entity);
4619 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag187;
4622 function Flag188 (N : Node_Id) return Boolean is
4624 pragma Assert (Nkind (N) in N_Entity);
4625 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag188;
4628 function Flag189 (N : Node_Id) return Boolean is
4630 pragma Assert (Nkind (N) in N_Entity);
4631 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag189;
4634 function Flag190 (N : Node_Id) return Boolean is
4636 pragma Assert (Nkind (N) in N_Entity);
4637 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag190;
4640 function Flag191 (N : Node_Id) return Boolean is
4642 pragma Assert (Nkind (N) in N_Entity);
4643 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag191;
4646 function Flag192 (N : Node_Id) return Boolean is
4648 pragma Assert (Nkind (N) in N_Entity);
4649 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag192;
4652 function Flag193 (N : Node_Id) return Boolean is
4654 pragma Assert (Nkind (N) in N_Entity);
4655 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag193;
4658 function Flag194 (N : Node_Id) return Boolean is
4660 pragma Assert (Nkind (N) in N_Entity);
4661 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag194;
4664 function Flag195 (N : Node_Id) return Boolean is
4666 pragma Assert (Nkind (N) in N_Entity);
4667 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag195;
4670 function Flag196 (N : Node_Id) return Boolean is
4672 pragma Assert (Nkind (N) in N_Entity);
4673 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag196;
4676 function Flag197 (N : Node_Id) return Boolean is
4678 pragma Assert (Nkind (N) in N_Entity);
4679 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag197;
4682 function Flag198 (N : Node_Id) return Boolean is
4684 pragma Assert (Nkind (N) in N_Entity);
4685 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag198;
4688 function Flag199 (N : Node_Id) return Boolean is
4690 pragma Assert (Nkind (N) in N_Entity);
4691 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag199;
4694 function Flag200 (N : Node_Id) return Boolean is
4696 pragma Assert (Nkind (N) in N_Entity);
4697 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag200;
4700 function Flag201 (N : Node_Id) return Boolean is
4702 pragma Assert (Nkind (N) in N_Entity);
4703 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag201;
4706 function Flag202 (N : Node_Id) return Boolean is
4708 pragma Assert (Nkind (N) in N_Entity);
4709 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag202;
4712 function Flag203 (N : Node_Id) return Boolean is
4714 pragma Assert (Nkind (N) in N_Entity);
4715 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag203;
4718 function Flag204 (N : Node_Id) return Boolean is
4720 pragma Assert (Nkind (N) in N_Entity);
4721 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag204;
4724 function Flag205 (N : Node_Id) return Boolean is
4726 pragma Assert (Nkind (N) in N_Entity);
4727 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag205;
4730 function Flag206 (N : Node_Id) return Boolean is
4732 pragma Assert (Nkind (N) in N_Entity);
4733 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag206;
4736 function Flag207 (N : Node_Id) return Boolean is
4738 pragma Assert (Nkind (N) in N_Entity);
4739 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag207;
4742 function Flag208 (N : Node_Id) return Boolean is
4744 pragma Assert (Nkind (N) in N_Entity);
4745 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag208;
4748 function Flag209 (N : Node_Id) return Boolean is
4750 pragma Assert (Nkind (N) in N_Entity);
4751 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag209;
4754 function Flag210 (N : Node_Id) return Boolean is
4756 pragma Assert (Nkind (N) in N_Entity);
4757 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag210;
4760 function Flag211 (N : Node_Id) return Boolean is
4762 pragma Assert (Nkind (N) in N_Entity);
4763 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag211;
4766 function Flag212 (N : Node_Id) return Boolean is
4768 pragma Assert (Nkind (N) in N_Entity);
4769 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag212;
4772 function Flag213 (N : Node_Id) return Boolean is
4774 pragma Assert (Nkind (N) in N_Entity);
4775 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag213;
4778 function Flag214 (N : Node_Id) return Boolean is
4780 pragma Assert (Nkind (N) in N_Entity);
4781 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag214;
4784 function Flag215 (N : Node_Id) return Boolean is
4786 pragma Assert (Nkind (N) in N_Entity);
4787 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag215;
4790 function Flag216 (N : Node_Id) return Boolean is
4792 pragma Assert (Nkind (N) in N_Entity);
4793 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag216;
4796 function Flag217 (N : Node_Id) return Boolean is
4798 pragma Assert (Nkind (N) in N_Entity);
4799 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag217;
4802 function Flag218 (N : Node_Id) return Boolean is
4804 pragma Assert (Nkind (N) in N_Entity);
4805 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag218;
4808 function Flag219 (N : Node_Id) return Boolean is
4810 pragma Assert (Nkind (N) in N_Entity);
4811 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag219;
4814 function Flag220 (N : Node_Id) return Boolean is
4816 pragma Assert (Nkind (N) in N_Entity);
4817 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag220;
4820 function Flag221 (N : Node_Id) return Boolean is
4822 pragma Assert (Nkind (N) in N_Entity);
4823 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag221;
4826 function Flag222 (N : Node_Id) return Boolean is
4828 pragma Assert (Nkind (N) in N_Entity);
4829 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag222;
4832 function Flag223 (N : Node_Id) return Boolean is
4834 pragma Assert (Nkind (N) in N_Entity);
4835 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag223;
4838 function Flag224 (N : Node_Id) return Boolean is
4840 pragma Assert (Nkind (N) in N_Entity);
4841 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag224;
4844 function Flag225 (N : Node_Id) return Boolean is
4846 pragma Assert (Nkind (N) in N_Entity);
4847 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag225;
4850 function Flag226 (N : Node_Id) return Boolean is
4852 pragma Assert (Nkind (N) in N_Entity);
4853 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag226;
4856 function Flag227 (N : Node_Id) return Boolean is
4858 pragma Assert (Nkind (N) in N_Entity);
4859 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag227;
4862 function Flag228 (N : Node_Id) return Boolean is
4864 pragma Assert (Nkind (N) in N_Entity);
4865 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag228;
4868 function Flag229 (N : Node_Id) return Boolean is
4870 pragma Assert (Nkind (N) in N_Entity);
4871 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag229;
4874 function Flag230 (N : Node_Id) return Boolean is
4876 pragma Assert (Nkind (N) in N_Entity);
4877 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag230;
4880 function Flag231 (N : Node_Id) return Boolean is
4882 pragma Assert (Nkind (N) in N_Entity);
4883 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag231;
4886 function Flag232 (N : Node_Id) return Boolean is
4888 pragma Assert (Nkind (N) in N_Entity);
4889 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag232;
4892 function Flag233 (N : Node_Id) return Boolean is
4894 pragma Assert (Nkind (N) in N_Entity);
4895 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag233;
4898 function Flag234 (N : Node_Id) return Boolean is
4900 pragma Assert (Nkind (N) in N_Entity);
4901 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag234;
4904 function Flag235 (N : Node_Id) return Boolean is
4906 pragma Assert (Nkind (N) in N_Entity);
4907 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag235;
4910 function Flag236 (N : Node_Id) return Boolean is
4912 pragma Assert (Nkind (N) in N_Entity);
4913 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag236;
4916 function Flag237 (N : Node_Id) return Boolean is
4918 pragma Assert (Nkind (N) in N_Entity);
4919 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag237;
4922 function Flag238 (N : Node_Id) return Boolean is
4924 pragma Assert (Nkind (N) in N_Entity);
4925 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag238;
4928 function Flag239 (N : Node_Id) return Boolean is
4930 pragma Assert (Nkind (N) in N_Entity);
4931 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag239;
4934 function Flag240 (N : Node_Id) return Boolean is
4936 pragma Assert (Nkind (N) in N_Entity);
4937 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag240;
4940 function Flag241 (N : Node_Id) return Boolean is
4942 pragma Assert (Nkind (N) in N_Entity);
4943 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag241;
4946 function Flag242 (N : Node_Id) return Boolean is
4948 pragma Assert (Nkind (N) in N_Entity);
4949 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag242;
4952 function Flag243 (N : Node_Id) return Boolean is
4954 pragma Assert (Nkind (N) in N_Entity);
4955 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag243;
4958 function Flag244 (N : Node_Id) return Boolean is
4960 pragma Assert (Nkind (N) in N_Entity);
4961 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag244;
4964 function Flag245 (N : Node_Id) return Boolean is
4966 pragma Assert (Nkind (N) in N_Entity);
4967 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag245;
4970 function Flag246 (N : Node_Id) return Boolean is
4972 pragma Assert (Nkind (N) in N_Entity);
4973 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag246;
4976 function Flag247 (N : Node_Id) return Boolean is
4978 pragma Assert (Nkind (N) in N_Entity);
4979 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag247;
4982 procedure Set_Nkind (N : Node_Id; Val : Node_Kind) is
4984 pragma Assert (N <= Nodes.Last);
4985 Nodes.Table (N).Nkind := Val;
4988 procedure Set_Field1 (N : Node_Id; Val : Union_Id) is
4990 pragma Assert (N <= Nodes.Last);
4991 Nodes.Table (N).Field1 := Val;
4994 procedure Set_Field2 (N : Node_Id; Val : Union_Id) is
4996 pragma Assert (N <= Nodes.Last);
4997 Nodes.Table (N).Field2 := Val;
5000 procedure Set_Field3 (N : Node_Id; Val : Union_Id) is
5002 pragma Assert (N <= Nodes.Last);
5003 Nodes.Table (N).Field3 := Val;
5006 procedure Set_Field4 (N : Node_Id; Val : Union_Id) is
5008 pragma Assert (N <= Nodes.Last);
5009 Nodes.Table (N).Field4 := Val;
5012 procedure Set_Field5 (N : Node_Id; Val : Union_Id) is
5014 pragma Assert (N <= Nodes.Last);
5015 Nodes.Table (N).Field5 := Val;
5018 procedure Set_Field6 (N : Node_Id; Val : Union_Id) is
5020 pragma Assert (Nkind (N) in N_Entity);
5021 Nodes.Table (N + 1).Field6 := Val;
5024 procedure Set_Field7 (N : Node_Id; Val : Union_Id) is
5026 pragma Assert (Nkind (N) in N_Entity);
5027 Nodes.Table (N + 1).Field7 := Val;
5030 procedure Set_Field8 (N : Node_Id; Val : Union_Id) is
5032 pragma Assert (Nkind (N) in N_Entity);
5033 Nodes.Table (N + 1).Field8 := Val;
5036 procedure Set_Field9 (N : Node_Id; Val : Union_Id) is
5038 pragma Assert (Nkind (N) in N_Entity);
5039 Nodes.Table (N + 1).Field9 := Val;
5042 procedure Set_Field10 (N : Node_Id; Val : Union_Id) is
5044 pragma Assert (Nkind (N) in N_Entity);
5045 Nodes.Table (N + 1).Field10 := Val;
5048 procedure Set_Field11 (N : Node_Id; Val : Union_Id) is
5050 pragma Assert (Nkind (N) in N_Entity);
5051 Nodes.Table (N + 1).Field11 := Val;
5054 procedure Set_Field12 (N : Node_Id; Val : Union_Id) is
5056 pragma Assert (Nkind (N) in N_Entity);
5057 Nodes.Table (N + 1).Field12 := Val;
5060 procedure Set_Field13 (N : Node_Id; Val : Union_Id) is
5062 pragma Assert (Nkind (N) in N_Entity);
5063 Nodes.Table (N + 2).Field6 := Val;
5066 procedure Set_Field14 (N : Node_Id; Val : Union_Id) is
5068 pragma Assert (Nkind (N) in N_Entity);
5069 Nodes.Table (N + 2).Field7 := Val;
5072 procedure Set_Field15 (N : Node_Id; Val : Union_Id) is
5074 pragma Assert (Nkind (N) in N_Entity);
5075 Nodes.Table (N + 2).Field8 := Val;
5078 procedure Set_Field16 (N : Node_Id; Val : Union_Id) is
5080 pragma Assert (Nkind (N) in N_Entity);
5081 Nodes.Table (N + 2).Field9 := Val;
5084 procedure Set_Field17 (N : Node_Id; Val : Union_Id) is
5086 pragma Assert (Nkind (N) in N_Entity);
5087 Nodes.Table (N + 2).Field10 := Val;
5090 procedure Set_Field18 (N : Node_Id; Val : Union_Id) is
5092 pragma Assert (Nkind (N) in N_Entity);
5093 Nodes.Table (N + 2).Field11 := Val;
5096 procedure Set_Field19 (N : Node_Id; Val : Union_Id) is
5098 pragma Assert (Nkind (N) in N_Entity);
5099 Nodes.Table (N + 3).Field6 := Val;
5102 procedure Set_Field20 (N : Node_Id; Val : Union_Id) is
5104 pragma Assert (Nkind (N) in N_Entity);
5105 Nodes.Table (N + 3).Field7 := Val;
5108 procedure Set_Field21 (N : Node_Id; Val : Union_Id) is
5110 pragma Assert (Nkind (N) in N_Entity);
5111 Nodes.Table (N + 3).Field8 := Val;
5114 procedure Set_Field22 (N : Node_Id; Val : Union_Id) is
5116 pragma Assert (Nkind (N) in N_Entity);
5117 Nodes.Table (N + 3).Field9 := Val;
5120 procedure Set_Field23 (N : Node_Id; Val : Union_Id) is
5122 pragma Assert (Nkind (N) in N_Entity);
5123 Nodes.Table (N + 3).Field10 := Val;
5126 procedure Set_Field24 (N : Node_Id; Val : Union_Id) is
5128 pragma Assert (Nkind (N) in N_Entity);
5129 Nodes.Table (N + 4).Field6 := Val;
5132 procedure Set_Field25 (N : Node_Id; Val : Union_Id) is
5134 pragma Assert (Nkind (N) in N_Entity);
5135 Nodes.Table (N + 4).Field7 := Val;
5138 procedure Set_Field26 (N : Node_Id; Val : Union_Id) is
5140 pragma Assert (Nkind (N) in N_Entity);
5141 Nodes.Table (N + 4).Field8 := Val;
5144 procedure Set_Field27 (N : Node_Id; Val : Union_Id) is
5146 pragma Assert (Nkind (N) in N_Entity);
5147 Nodes.Table (N + 4).Field9 := Val;
5150 procedure Set_Field28 (N : Node_Id; Val : Union_Id) is
5152 pragma Assert (Nkind (N) in N_Entity);
5153 Nodes.Table (N + 4).Field10 := Val;
5156 procedure Set_Node1 (N : Node_Id; Val : Node_Id) is
5158 pragma Assert (N <= Nodes.Last);
5159 Nodes.Table (N).Field1 := Union_Id (Val);
5162 procedure Set_Node2 (N : Node_Id; Val : Node_Id) is
5164 pragma Assert (N <= Nodes.Last);
5165 Nodes.Table (N).Field2 := Union_Id (Val);
5168 procedure Set_Node3 (N : Node_Id; Val : Node_Id) is
5170 pragma Assert (N <= Nodes.Last);
5171 Nodes.Table (N).Field3 := Union_Id (Val);
5174 procedure Set_Node4 (N : Node_Id; Val : Node_Id) is
5176 pragma Assert (N <= Nodes.Last);
5177 Nodes.Table (N).Field4 := Union_Id (Val);
5180 procedure Set_Node5 (N : Node_Id; Val : Node_Id) is
5182 pragma Assert (N <= Nodes.Last);
5183 Nodes.Table (N).Field5 := Union_Id (Val);
5186 procedure Set_Node6 (N : Node_Id; Val : Node_Id) is
5188 pragma Assert (Nkind (N) in N_Entity);
5189 Nodes.Table (N + 1).Field6 := Union_Id (Val);
5192 procedure Set_Node7 (N : Node_Id; Val : Node_Id) is
5194 pragma Assert (Nkind (N) in N_Entity);
5195 Nodes.Table (N + 1).Field7 := Union_Id (Val);
5198 procedure Set_Node8 (N : Node_Id; Val : Node_Id) is
5200 pragma Assert (Nkind (N) in N_Entity);
5201 Nodes.Table (N + 1).Field8 := Union_Id (Val);
5204 procedure Set_Node9 (N : Node_Id; Val : Node_Id) is
5206 pragma Assert (Nkind (N) in N_Entity);
5207 Nodes.Table (N + 1).Field9 := Union_Id (Val);
5210 procedure Set_Node10 (N : Node_Id; Val : Node_Id) is
5212 pragma Assert (Nkind (N) in N_Entity);
5213 Nodes.Table (N + 1).Field10 := Union_Id (Val);
5216 procedure Set_Node11 (N : Node_Id; Val : Node_Id) is
5218 pragma Assert (Nkind (N) in N_Entity);
5219 Nodes.Table (N + 1).Field11 := Union_Id (Val);
5222 procedure Set_Node12 (N : Node_Id; Val : Node_Id) is
5224 pragma Assert (Nkind (N) in N_Entity);
5225 Nodes.Table (N + 1).Field12 := Union_Id (Val);
5228 procedure Set_Node13 (N : Node_Id; Val : Node_Id) is
5230 pragma Assert (Nkind (N) in N_Entity);
5231 Nodes.Table (N + 2).Field6 := Union_Id (Val);
5234 procedure Set_Node14 (N : Node_Id; Val : Node_Id) is
5236 pragma Assert (Nkind (N) in N_Entity);
5237 Nodes.Table (N + 2).Field7 := Union_Id (Val);
5240 procedure Set_Node15 (N : Node_Id; Val : Node_Id) is
5242 pragma Assert (Nkind (N) in N_Entity);
5243 Nodes.Table (N + 2).Field8 := Union_Id (Val);
5246 procedure Set_Node16 (N : Node_Id; Val : Node_Id) is
5248 pragma Assert (Nkind (N) in N_Entity);
5249 Nodes.Table (N + 2).Field9 := Union_Id (Val);
5252 procedure Set_Node17 (N : Node_Id; Val : Node_Id) is
5254 pragma Assert (Nkind (N) in N_Entity);
5255 Nodes.Table (N + 2).Field10 := Union_Id (Val);
5258 procedure Set_Node18 (N : Node_Id; Val : Node_Id) is
5260 pragma Assert (Nkind (N) in N_Entity);
5261 Nodes.Table (N + 2).Field11 := Union_Id (Val);
5264 procedure Set_Node19 (N : Node_Id; Val : Node_Id) is
5266 pragma Assert (Nkind (N) in N_Entity);
5267 Nodes.Table (N + 3).Field6 := Union_Id (Val);
5270 procedure Set_Node20 (N : Node_Id; Val : Node_Id) is
5272 pragma Assert (Nkind (N) in N_Entity);
5273 Nodes.Table (N + 3).Field7 := Union_Id (Val);
5276 procedure Set_Node21 (N : Node_Id; Val : Node_Id) is
5278 pragma Assert (Nkind (N) in N_Entity);
5279 Nodes.Table (N + 3).Field8 := Union_Id (Val);
5282 procedure Set_Node22 (N : Node_Id; Val : Node_Id) is
5284 pragma Assert (Nkind (N) in N_Entity);
5285 Nodes.Table (N + 3).Field9 := Union_Id (Val);
5288 procedure Set_Node23 (N : Node_Id; Val : Node_Id) is
5290 pragma Assert (Nkind (N) in N_Entity);
5291 Nodes.Table (N + 3).Field10 := Union_Id (Val);
5294 procedure Set_Node24 (N : Node_Id; Val : Node_Id) is
5296 pragma Assert (Nkind (N) in N_Entity);
5297 Nodes.Table (N + 4).Field6 := Union_Id (Val);
5300 procedure Set_Node25 (N : Node_Id; Val : Node_Id) is
5302 pragma Assert (Nkind (N) in N_Entity);
5303 Nodes.Table (N + 4).Field7 := Union_Id (Val);
5306 procedure Set_Node26 (N : Node_Id; Val : Node_Id) is
5308 pragma Assert (Nkind (N) in N_Entity);
5309 Nodes.Table (N + 4).Field8 := Union_Id (Val);
5312 procedure Set_Node27 (N : Node_Id; Val : Node_Id) is
5314 pragma Assert (Nkind (N) in N_Entity);
5315 Nodes.Table (N + 4).Field9 := Union_Id (Val);
5318 procedure Set_Node28 (N : Node_Id; Val : Node_Id) is
5320 pragma Assert (Nkind (N) in N_Entity);
5321 Nodes.Table (N + 4).Field10 := Union_Id (Val);
5324 procedure Set_List1 (N : Node_Id; Val : List_Id) is
5326 pragma Assert (N <= Nodes.Last);
5327 Nodes.Table (N).Field1 := Union_Id (Val);
5330 procedure Set_List2 (N : Node_Id; Val : List_Id) is
5332 pragma Assert (N <= Nodes.Last);
5333 Nodes.Table (N).Field2 := Union_Id (Val);
5336 procedure Set_List3 (N : Node_Id; Val : List_Id) is
5338 pragma Assert (N <= Nodes.Last);
5339 Nodes.Table (N).Field3 := Union_Id (Val);
5342 procedure Set_List4 (N : Node_Id; Val : List_Id) is
5344 pragma Assert (N <= Nodes.Last);
5345 Nodes.Table (N).Field4 := Union_Id (Val);
5348 procedure Set_List5 (N : Node_Id; Val : List_Id) is
5350 pragma Assert (N <= Nodes.Last);
5351 Nodes.Table (N).Field5 := Union_Id (Val);
5354 procedure Set_List10 (N : Node_Id; Val : List_Id) is
5356 pragma Assert (Nkind (N) in N_Entity);
5357 Nodes.Table (N + 1).Field10 := Union_Id (Val);
5360 procedure Set_List14 (N : Node_Id; Val : List_Id) is
5362 pragma Assert (Nkind (N) in N_Entity);
5363 Nodes.Table (N + 2).Field7 := Union_Id (Val);
5366 procedure Set_Elist1 (N : Node_Id; Val : Elist_Id) is
5368 Nodes.Table (N).Field1 := Union_Id (Val);
5371 procedure Set_Elist2 (N : Node_Id; Val : Elist_Id) is
5373 Nodes.Table (N).Field2 := Union_Id (Val);
5376 procedure Set_Elist3 (N : Node_Id; Val : Elist_Id) is
5378 Nodes.Table (N).Field3 := Union_Id (Val);
5381 procedure Set_Elist4 (N : Node_Id; Val : Elist_Id) is
5383 Nodes.Table (N).Field4 := Union_Id (Val);
5386 procedure Set_Elist8 (N : Node_Id; Val : Elist_Id) is
5388 pragma Assert (Nkind (N) in N_Entity);
5389 Nodes.Table (N + 1).Field8 := Union_Id (Val);
5392 procedure Set_Elist13 (N : Node_Id; Val : Elist_Id) is
5394 pragma Assert (Nkind (N) in N_Entity);
5395 Nodes.Table (N + 2).Field6 := Union_Id (Val);
5398 procedure Set_Elist15 (N : Node_Id; Val : Elist_Id) is
5400 pragma Assert (Nkind (N) in N_Entity);
5401 Nodes.Table (N + 2).Field8 := Union_Id (Val);
5404 procedure Set_Elist16 (N : Node_Id; Val : Elist_Id) is
5406 pragma Assert (Nkind (N) in N_Entity);
5407 Nodes.Table (N + 2).Field9 := Union_Id (Val);
5410 procedure Set_Elist18 (N : Node_Id; Val : Elist_Id) is
5412 pragma Assert (Nkind (N) in N_Entity);
5413 Nodes.Table (N + 2).Field11 := Union_Id (Val);
5416 procedure Set_Elist21 (N : Node_Id; Val : Elist_Id) is
5418 pragma Assert (Nkind (N) in N_Entity);
5419 Nodes.Table (N + 3).Field8 := Union_Id (Val);
5422 procedure Set_Elist23 (N : Node_Id; Val : Elist_Id) is
5424 pragma Assert (Nkind (N) in N_Entity);
5425 Nodes.Table (N + 3).Field10 := Union_Id (Val);
5428 procedure Set_Elist25 (N : Node_Id; Val : Elist_Id) is
5430 pragma Assert (Nkind (N) in N_Entity);
5431 Nodes.Table (N + 4).Field7 := Union_Id (Val);
5434 procedure Set_Elist26 (N : Node_Id; Val : Elist_Id) is
5436 pragma Assert (Nkind (N) in N_Entity);
5437 Nodes.Table (N + 4).Field8 := Union_Id (Val);
5440 procedure Set_Name1 (N : Node_Id; Val : Name_Id) is
5442 pragma Assert (N <= Nodes.Last);
5443 Nodes.Table (N).Field1 := Union_Id (Val);
5446 procedure Set_Name2 (N : Node_Id; Val : Name_Id) is
5448 pragma Assert (N <= Nodes.Last);
5449 Nodes.Table (N).Field2 := Union_Id (Val);
5452 procedure Set_Str3 (N : Node_Id; Val : String_Id) is
5454 pragma Assert (N <= Nodes.Last);
5455 Nodes.Table (N).Field3 := Union_Id (Val);
5458 procedure Set_Uint2 (N : Node_Id; Val : Uint) is
5460 pragma Assert (N <= Nodes.Last);
5461 Nodes.Table (N).Field2 := To_Union (Val);
5464 procedure Set_Uint3 (N : Node_Id; Val : Uint) is
5466 pragma Assert (N <= Nodes.Last);
5467 Nodes.Table (N).Field3 := To_Union (Val);
5470 procedure Set_Uint4 (N : Node_Id; Val : Uint) is
5472 pragma Assert (N <= Nodes.Last);
5473 Nodes.Table (N).Field4 := To_Union (Val);
5476 procedure Set_Uint5 (N : Node_Id; Val : Uint) is
5478 pragma Assert (N <= Nodes.Last);
5479 Nodes.Table (N).Field5 := To_Union (Val);
5482 procedure Set_Uint8 (N : Node_Id; Val : Uint) is
5484 pragma Assert (Nkind (N) in N_Entity);
5485 Nodes.Table (N + 1).Field8 := To_Union (Val);
5488 procedure Set_Uint9 (N : Node_Id; Val : Uint) is
5490 pragma Assert (Nkind (N) in N_Entity);
5491 Nodes.Table (N + 1).Field9 := To_Union (Val);
5494 procedure Set_Uint10 (N : Node_Id; Val : Uint) is
5496 pragma Assert (Nkind (N) in N_Entity);
5497 Nodes.Table (N + 1).Field10 := To_Union (Val);
5500 procedure Set_Uint11 (N : Node_Id; Val : Uint) is
5502 pragma Assert (Nkind (N) in N_Entity);
5503 Nodes.Table (N + 1).Field11 := To_Union (Val);
5506 procedure Set_Uint12 (N : Node_Id; Val : Uint) is
5508 pragma Assert (Nkind (N) in N_Entity);
5509 Nodes.Table (N + 1).Field12 := To_Union (Val);
5512 procedure Set_Uint13 (N : Node_Id; Val : Uint) is
5514 pragma Assert (Nkind (N) in N_Entity);
5515 Nodes.Table (N + 2).Field6 := To_Union (Val);
5518 procedure Set_Uint14 (N : Node_Id; Val : Uint) is
5520 pragma Assert (Nkind (N) in N_Entity);
5521 Nodes.Table (N + 2).Field7 := To_Union (Val);
5524 procedure Set_Uint15 (N : Node_Id; Val : Uint) is
5526 pragma Assert (Nkind (N) in N_Entity);
5527 Nodes.Table (N + 2).Field8 := To_Union (Val);
5530 procedure Set_Uint16 (N : Node_Id; Val : Uint) is
5532 pragma Assert (Nkind (N) in N_Entity);
5533 Nodes.Table (N + 2).Field9 := To_Union (Val);
5536 procedure Set_Uint17 (N : Node_Id; Val : Uint) is
5538 pragma Assert (Nkind (N) in N_Entity);
5539 Nodes.Table (N + 2).Field10 := To_Union (Val);
5542 procedure Set_Uint22 (N : Node_Id; Val : Uint) is
5544 pragma Assert (Nkind (N) in N_Entity);
5545 Nodes.Table (N + 3).Field9 := To_Union (Val);
5548 procedure Set_Ureal3 (N : Node_Id; Val : Ureal) is
5550 pragma Assert (N <= Nodes.Last);
5551 Nodes.Table (N).Field3 := To_Union (Val);
5554 procedure Set_Ureal18 (N : Node_Id; Val : Ureal) is
5556 pragma Assert (Nkind (N) in N_Entity);
5557 Nodes.Table (N + 2).Field11 := To_Union (Val);
5560 procedure Set_Ureal21 (N : Node_Id; Val : Ureal) is
5562 pragma Assert (Nkind (N) in N_Entity);
5563 Nodes.Table (N + 3).Field8 := To_Union (Val);
5566 procedure Set_Flag4 (N : Node_Id; Val : Boolean) is
5568 pragma Assert (N <= Nodes.Last);
5569 Nodes.Table (N).Flag4 := Val;
5572 procedure Set_Flag5 (N : Node_Id; Val : Boolean) is
5574 pragma Assert (N <= Nodes.Last);
5575 Nodes.Table (N).Flag5 := Val;
5578 procedure Set_Flag6 (N : Node_Id; Val : Boolean) is
5580 pragma Assert (N <= Nodes.Last);
5581 Nodes.Table (N).Flag6 := Val;
5584 procedure Set_Flag7 (N : Node_Id; Val : Boolean) is
5586 pragma Assert (N <= Nodes.Last);
5587 Nodes.Table (N).Flag7 := Val;
5590 procedure Set_Flag8 (N : Node_Id; Val : Boolean) is
5592 pragma Assert (N <= Nodes.Last);
5593 Nodes.Table (N).Flag8 := Val;
5596 procedure Set_Flag9 (N : Node_Id; Val : Boolean) is
5598 pragma Assert (N <= Nodes.Last);
5599 Nodes.Table (N).Flag9 := Val;
5602 procedure Set_Flag10 (N : Node_Id; Val : Boolean) is
5604 pragma Assert (N <= Nodes.Last);
5605 Nodes.Table (N).Flag10 := Val;
5608 procedure Set_Flag11 (N : Node_Id; Val : Boolean) is
5610 pragma Assert (N <= Nodes.Last);
5611 Nodes.Table (N).Flag11 := Val;
5614 procedure Set_Flag12 (N : Node_Id; Val : Boolean) is
5616 pragma Assert (N <= Nodes.Last);
5617 Nodes.Table (N).Flag12 := Val;
5620 procedure Set_Flag13 (N : Node_Id; Val : Boolean) is
5622 pragma Assert (N <= Nodes.Last);
5623 Nodes.Table (N).Flag13 := Val;
5626 procedure Set_Flag14 (N : Node_Id; Val : Boolean) is
5628 pragma Assert (N <= Nodes.Last);
5629 Nodes.Table (N).Flag14 := Val;
5632 procedure Set_Flag15 (N : Node_Id; Val : Boolean) is
5634 pragma Assert (N <= Nodes.Last);
5635 Nodes.Table (N).Flag15 := Val;
5638 procedure Set_Flag16 (N : Node_Id; Val : Boolean) is
5640 pragma Assert (N <= Nodes.Last);
5641 Nodes.Table (N).Flag16 := Val;
5644 procedure Set_Flag17 (N : Node_Id; Val : Boolean) is
5646 pragma Assert (N <= Nodes.Last);
5647 Nodes.Table (N).Flag17 := Val;
5650 procedure Set_Flag18 (N : Node_Id; Val : Boolean) is
5652 pragma Assert (N <= Nodes.Last);
5653 Nodes.Table (N).Flag18 := Val;
5656 procedure Set_Flag19 (N : Node_Id; Val : Boolean) is
5658 pragma Assert (Nkind (N) in N_Entity);
5659 Nodes.Table (N + 1).In_List := Val;
5662 procedure Set_Flag20 (N : Node_Id; Val : Boolean) is
5664 pragma Assert (Nkind (N) in N_Entity);
5665 Nodes.Table (N + 1).Unused_1 := Val;
5668 procedure Set_Flag21 (N : Node_Id; Val : Boolean) is
5670 pragma Assert (Nkind (N) in N_Entity);
5671 Nodes.Table (N + 1).Rewrite_Ins := Val;
5674 procedure Set_Flag22 (N : Node_Id; Val : Boolean) is
5676 pragma Assert (Nkind (N) in N_Entity);
5677 Nodes.Table (N + 1).Analyzed := Val;
5680 procedure Set_Flag23 (N : Node_Id; Val : Boolean) is
5682 pragma Assert (Nkind (N) in N_Entity);
5683 Nodes.Table (N + 1).Comes_From_Source := Val;
5686 procedure Set_Flag24 (N : Node_Id; Val : Boolean) is
5688 pragma Assert (Nkind (N) in N_Entity);
5689 Nodes.Table (N + 1).Error_Posted := Val;
5692 procedure Set_Flag25 (N : Node_Id; Val : Boolean) is
5694 pragma Assert (Nkind (N) in N_Entity);
5695 Nodes.Table (N + 1).Flag4 := Val;
5698 procedure Set_Flag26 (N : Node_Id; Val : Boolean) is
5700 pragma Assert (Nkind (N) in N_Entity);
5701 Nodes.Table (N + 1).Flag5 := Val;
5704 procedure Set_Flag27 (N : Node_Id; Val : Boolean) is
5706 pragma Assert (Nkind (N) in N_Entity);
5707 Nodes.Table (N + 1).Flag6 := Val;
5710 procedure Set_Flag28 (N : Node_Id; Val : Boolean) is
5712 pragma Assert (Nkind (N) in N_Entity);
5713 Nodes.Table (N + 1).Flag7 := Val;
5716 procedure Set_Flag29 (N : Node_Id; Val : Boolean) is
5718 pragma Assert (Nkind (N) in N_Entity);
5719 Nodes.Table (N + 1).Flag8 := Val;
5722 procedure Set_Flag30 (N : Node_Id; Val : Boolean) is
5724 pragma Assert (Nkind (N) in N_Entity);
5725 Nodes.Table (N + 1).Flag9 := Val;
5728 procedure Set_Flag31 (N : Node_Id; Val : Boolean) is
5730 pragma Assert (Nkind (N) in N_Entity);
5731 Nodes.Table (N + 1).Flag10 := Val;
5734 procedure Set_Flag32 (N : Node_Id; Val : Boolean) is
5736 pragma Assert (Nkind (N) in N_Entity);
5737 Nodes.Table (N + 1).Flag11 := Val;
5740 procedure Set_Flag33 (N : Node_Id; Val : Boolean) is
5742 pragma Assert (Nkind (N) in N_Entity);
5743 Nodes.Table (N + 1).Flag12 := Val;
5746 procedure Set_Flag34 (N : Node_Id; Val : Boolean) is
5748 pragma Assert (Nkind (N) in N_Entity);
5749 Nodes.Table (N + 1).Flag13 := Val;
5752 procedure Set_Flag35 (N : Node_Id; Val : Boolean) is
5754 pragma Assert (Nkind (N) in N_Entity);
5755 Nodes.Table (N + 1).Flag14 := Val;
5758 procedure Set_Flag36 (N : Node_Id; Val : Boolean) is
5760 pragma Assert (Nkind (N) in N_Entity);
5761 Nodes.Table (N + 1).Flag15 := Val;
5764 procedure Set_Flag37 (N : Node_Id; Val : Boolean) is
5766 pragma Assert (Nkind (N) in N_Entity);
5767 Nodes.Table (N + 1).Flag16 := Val;
5770 procedure Set_Flag38 (N : Node_Id; Val : Boolean) is
5772 pragma Assert (Nkind (N) in N_Entity);
5773 Nodes.Table (N + 1).Flag17 := Val;
5776 procedure Set_Flag39 (N : Node_Id; Val : Boolean) is
5778 pragma Assert (Nkind (N) in N_Entity);
5779 Nodes.Table (N + 1).Flag18 := Val;
5782 procedure Set_Flag40 (N : Node_Id; Val : Boolean) is
5784 pragma Assert (Nkind (N) in N_Entity);
5785 Nodes.Table (N + 2).In_List := Val;
5788 procedure Set_Flag41 (N : Node_Id; Val : Boolean) is
5790 pragma Assert (Nkind (N) in N_Entity);
5791 Nodes.Table (N + 2).Unused_1 := Val;
5794 procedure Set_Flag42 (N : Node_Id; Val : Boolean) is
5796 pragma Assert (Nkind (N) in N_Entity);
5797 Nodes.Table (N + 2).Rewrite_Ins := Val;
5800 procedure Set_Flag43 (N : Node_Id; Val : Boolean) is
5802 pragma Assert (Nkind (N) in N_Entity);
5803 Nodes.Table (N + 2).Analyzed := Val;
5806 procedure Set_Flag44 (N : Node_Id; Val : Boolean) is
5808 pragma Assert (Nkind (N) in N_Entity);
5809 Nodes.Table (N + 2).Comes_From_Source := Val;
5812 procedure Set_Flag45 (N : Node_Id; Val : Boolean) is
5814 pragma Assert (Nkind (N) in N_Entity);
5815 Nodes.Table (N + 2).Error_Posted := Val;
5818 procedure Set_Flag46 (N : Node_Id; Val : Boolean) is
5820 pragma Assert (Nkind (N) in N_Entity);
5821 Nodes.Table (N + 2).Flag4 := Val;
5824 procedure Set_Flag47 (N : Node_Id; Val : Boolean) is
5826 pragma Assert (Nkind (N) in N_Entity);
5827 Nodes.Table (N + 2).Flag5 := Val;
5830 procedure Set_Flag48 (N : Node_Id; Val : Boolean) is
5832 pragma Assert (Nkind (N) in N_Entity);
5833 Nodes.Table (N + 2).Flag6 := Val;
5836 procedure Set_Flag49 (N : Node_Id; Val : Boolean) is
5838 pragma Assert (Nkind (N) in N_Entity);
5839 Nodes.Table (N + 2).Flag7 := Val;
5842 procedure Set_Flag50 (N : Node_Id; Val : Boolean) is
5844 pragma Assert (Nkind (N) in N_Entity);
5845 Nodes.Table (N + 2).Flag8 := Val;
5848 procedure Set_Flag51 (N : Node_Id; Val : Boolean) is
5850 pragma Assert (Nkind (N) in N_Entity);
5851 Nodes.Table (N + 2).Flag9 := Val;
5854 procedure Set_Flag52 (N : Node_Id; Val : Boolean) is
5856 pragma Assert (Nkind (N) in N_Entity);
5857 Nodes.Table (N + 2).Flag10 := Val;
5860 procedure Set_Flag53 (N : Node_Id; Val : Boolean) is
5862 pragma Assert (Nkind (N) in N_Entity);
5863 Nodes.Table (N + 2).Flag11 := Val;
5866 procedure Set_Flag54 (N : Node_Id; Val : Boolean) is
5868 pragma Assert (Nkind (N) in N_Entity);
5869 Nodes.Table (N + 2).Flag12 := Val;
5872 procedure Set_Flag55 (N : Node_Id; Val : Boolean) is
5874 pragma Assert (Nkind (N) in N_Entity);
5875 Nodes.Table (N + 2).Flag13 := Val;
5878 procedure Set_Flag56 (N : Node_Id; Val : Boolean) is
5880 pragma Assert (Nkind (N) in N_Entity);
5881 Nodes.Table (N + 2).Flag14 := Val;
5884 procedure Set_Flag57 (N : Node_Id; Val : Boolean) is
5886 pragma Assert (Nkind (N) in N_Entity);
5887 Nodes.Table (N + 2).Flag15 := Val;
5890 procedure Set_Flag58 (N : Node_Id; Val : Boolean) is
5892 pragma Assert (Nkind (N) in N_Entity);
5893 Nodes.Table (N + 2).Flag16 := Val;
5896 procedure Set_Flag59 (N : Node_Id; Val : Boolean) is
5898 pragma Assert (Nkind (N) in N_Entity);
5899 Nodes.Table (N + 2).Flag17 := Val;
5902 procedure Set_Flag60 (N : Node_Id; Val : Boolean) is
5904 pragma Assert (Nkind (N) in N_Entity);
5905 Nodes.Table (N + 2).Flag18 := Val;
5908 procedure Set_Flag61 (N : Node_Id; Val : Boolean) is
5910 pragma Assert (Nkind (N) in N_Entity);
5911 Nodes.Table (N + 1).Pflag1 := Val;
5914 procedure Set_Flag62 (N : Node_Id; Val : Boolean) is
5916 pragma Assert (Nkind (N) in N_Entity);
5917 Nodes.Table (N + 1).Pflag2 := Val;
5920 procedure Set_Flag63 (N : Node_Id; Val : Boolean) is
5922 pragma Assert (Nkind (N) in N_Entity);
5923 Nodes.Table (N + 2).Pflag1 := Val;
5926 procedure Set_Flag64 (N : Node_Id; Val : Boolean) is
5928 pragma Assert (Nkind (N) in N_Entity);
5929 Nodes.Table (N + 2).Pflag2 := Val;
5932 procedure Set_Flag65 (N : Node_Id; Val : Boolean) is
5934 pragma Assert (Nkind (N) in N_Entity);
5937 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag65 := Val;
5940 procedure Set_Flag66 (N : Node_Id; Val : Boolean) is
5942 pragma Assert (Nkind (N) in N_Entity);
5945 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag66 := Val;
5948 procedure Set_Flag67 (N : Node_Id; Val : Boolean) is
5950 pragma Assert (Nkind (N) in N_Entity);
5953 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag67 := Val;
5956 procedure Set_Flag68 (N : Node_Id; Val : Boolean) is
5958 pragma Assert (Nkind (N) in N_Entity);
5961 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag68 := Val;
5964 procedure Set_Flag69 (N : Node_Id; Val : Boolean) is
5966 pragma Assert (Nkind (N) in N_Entity);
5969 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag69 := Val;
5972 procedure Set_Flag70 (N : Node_Id; Val : Boolean) is
5974 pragma Assert (Nkind (N) in N_Entity);
5977 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag70 := Val;
5980 procedure Set_Flag71 (N : Node_Id; Val : Boolean) is
5982 pragma Assert (Nkind (N) in N_Entity);
5985 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag71 := Val;
5988 procedure Set_Flag72 (N : Node_Id; Val : Boolean) is
5990 pragma Assert (Nkind (N) in N_Entity);
5993 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag72 := Val;
5996 procedure Set_Flag73 (N : Node_Id; Val : Boolean) is
5998 pragma Assert (Nkind (N) in N_Entity);
6001 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag73 := Val;
6004 procedure Set_Flag74 (N : Node_Id; Val : Boolean) is
6006 pragma Assert (Nkind (N) in N_Entity);
6009 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag74 := Val;
6012 procedure Set_Flag75 (N : Node_Id; Val : Boolean) is
6014 pragma Assert (Nkind (N) in N_Entity);
6017 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag75 := Val;
6020 procedure Set_Flag76 (N : Node_Id; Val : Boolean) is
6022 pragma Assert (Nkind (N) in N_Entity);
6025 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag76 := Val;
6028 procedure Set_Flag77 (N : Node_Id; Val : Boolean) is
6030 pragma Assert (Nkind (N) in N_Entity);
6033 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag77 := Val;
6036 procedure Set_Flag78 (N : Node_Id; Val : Boolean) is
6038 pragma Assert (Nkind (N) in N_Entity);
6041 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag78 := Val;
6044 procedure Set_Flag79 (N : Node_Id; Val : Boolean) is
6046 pragma Assert (Nkind (N) in N_Entity);
6049 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag79 := Val;
6052 procedure Set_Flag80 (N : Node_Id; Val : Boolean) is
6054 pragma Assert (Nkind (N) in N_Entity);
6057 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag80 := Val;
6060 procedure Set_Flag81 (N : Node_Id; Val : Boolean) is
6062 pragma Assert (Nkind (N) in N_Entity);
6065 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag81 := Val;
6068 procedure Set_Flag82 (N : Node_Id; Val : Boolean) is
6070 pragma Assert (Nkind (N) in N_Entity);
6073 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag82 := Val;
6076 procedure Set_Flag83 (N : Node_Id; Val : Boolean) is
6078 pragma Assert (Nkind (N) in N_Entity);
6081 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag83 := Val;
6084 procedure Set_Flag84 (N : Node_Id; Val : Boolean) is
6086 pragma Assert (Nkind (N) in N_Entity);
6089 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag84 := Val;
6092 procedure Set_Flag85 (N : Node_Id; Val : Boolean) is
6094 pragma Assert (Nkind (N) in N_Entity);
6097 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag85 := Val;
6100 procedure Set_Flag86 (N : Node_Id; Val : Boolean) is
6102 pragma Assert (Nkind (N) in N_Entity);
6105 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag86 := Val;
6108 procedure Set_Flag87 (N : Node_Id; Val : Boolean) is
6110 pragma Assert (Nkind (N) in N_Entity);
6113 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag87 := Val;
6116 procedure Set_Flag88 (N : Node_Id; Val : Boolean) is
6118 pragma Assert (Nkind (N) in N_Entity);
6121 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag88 := Val;
6124 procedure Set_Flag89 (N : Node_Id; Val : Boolean) is
6126 pragma Assert (Nkind (N) in N_Entity);
6129 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag89 := Val;
6132 procedure Set_Flag90 (N : Node_Id; Val : Boolean) is
6134 pragma Assert (Nkind (N) in N_Entity);
6137 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag90 := Val;
6140 procedure Set_Flag91 (N : Node_Id; Val : Boolean) is
6142 pragma Assert (Nkind (N) in N_Entity);
6145 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag91 := Val;
6148 procedure Set_Flag92 (N : Node_Id; Val : Boolean) is
6150 pragma Assert (Nkind (N) in N_Entity);
6153 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag92 := Val;
6156 procedure Set_Flag93 (N : Node_Id; Val : Boolean) is
6158 pragma Assert (Nkind (N) in N_Entity);
6161 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag93 := Val;
6164 procedure Set_Flag94 (N : Node_Id; Val : Boolean) is
6166 pragma Assert (Nkind (N) in N_Entity);
6169 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag94 := Val;
6172 procedure Set_Flag95 (N : Node_Id; Val : Boolean) is
6174 pragma Assert (Nkind (N) in N_Entity);
6177 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag95 := Val;
6180 procedure Set_Flag96 (N : Node_Id; Val : Boolean) is
6182 pragma Assert (Nkind (N) in N_Entity);
6185 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag96 := Val;
6188 procedure Set_Flag97 (N : Node_Id; Val : Boolean) is
6190 pragma Assert (Nkind (N) in N_Entity);
6193 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag97 := Val;
6196 procedure Set_Flag98 (N : Node_Id; Val : Boolean) is
6198 pragma Assert (Nkind (N) in N_Entity);
6201 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag98 := Val;
6204 procedure Set_Flag99 (N : Node_Id; Val : Boolean) is
6206 pragma Assert (Nkind (N) in N_Entity);
6209 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag99 := Val;
6212 procedure Set_Flag100 (N : Node_Id; Val : Boolean) is
6214 pragma Assert (Nkind (N) in N_Entity);
6217 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag100 := Val;
6220 procedure Set_Flag101 (N : Node_Id; Val : Boolean) is
6222 pragma Assert (Nkind (N) in N_Entity);
6225 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag101 := Val;
6228 procedure Set_Flag102 (N : Node_Id; Val : Boolean) is
6230 pragma Assert (Nkind (N) in N_Entity);
6233 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag102 := Val;
6236 procedure Set_Flag103 (N : Node_Id; Val : Boolean) is
6238 pragma Assert (Nkind (N) in N_Entity);
6241 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag103 := Val;
6244 procedure Set_Flag104 (N : Node_Id; Val : Boolean) is
6246 pragma Assert (Nkind (N) in N_Entity);
6249 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag104 := Val;
6252 procedure Set_Flag105 (N : Node_Id; Val : Boolean) is
6254 pragma Assert (Nkind (N) in N_Entity);
6257 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag105 := Val;
6260 procedure Set_Flag106 (N : Node_Id; Val : Boolean) is
6262 pragma Assert (Nkind (N) in N_Entity);
6265 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag106 := Val;
6268 procedure Set_Flag107 (N : Node_Id; Val : Boolean) is
6270 pragma Assert (Nkind (N) in N_Entity);
6273 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag107 := Val;
6276 procedure Set_Flag108 (N : Node_Id; Val : Boolean) is
6278 pragma Assert (Nkind (N) in N_Entity);
6281 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag108 := Val;
6284 procedure Set_Flag109 (N : Node_Id; Val : Boolean) is
6286 pragma Assert (Nkind (N) in N_Entity);
6289 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag109 := Val;
6292 procedure Set_Flag110 (N : Node_Id; Val : Boolean) is
6294 pragma Assert (Nkind (N) in N_Entity);
6297 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag110 := Val;
6300 procedure Set_Flag111 (N : Node_Id; Val : Boolean) is
6302 pragma Assert (Nkind (N) in N_Entity);
6305 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag111 := Val;
6308 procedure Set_Flag112 (N : Node_Id; Val : Boolean) is
6310 pragma Assert (Nkind (N) in N_Entity);
6313 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag112 := Val;
6316 procedure Set_Flag113 (N : Node_Id; Val : Boolean) is
6318 pragma Assert (Nkind (N) in N_Entity);
6321 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag113 := Val;
6324 procedure Set_Flag114 (N : Node_Id; Val : Boolean) is
6326 pragma Assert (Nkind (N) in N_Entity);
6329 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag114 := Val;
6332 procedure Set_Flag115 (N : Node_Id; Val : Boolean) is
6334 pragma Assert (Nkind (N) in N_Entity);
6337 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag115 := Val;
6340 procedure Set_Flag116 (N : Node_Id; Val : Boolean) is
6342 pragma Assert (Nkind (N) in N_Entity);
6345 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag116 := Val;
6348 procedure Set_Flag117 (N : Node_Id; Val : Boolean) is
6350 pragma Assert (Nkind (N) in N_Entity);
6353 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag117 := Val;
6356 procedure Set_Flag118 (N : Node_Id; Val : Boolean) is
6358 pragma Assert (Nkind (N) in N_Entity);
6361 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag118 := Val;
6364 procedure Set_Flag119 (N : Node_Id; Val : Boolean) is
6366 pragma Assert (Nkind (N) in N_Entity);
6369 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag119 := Val;
6372 procedure Set_Flag120 (N : Node_Id; Val : Boolean) is
6374 pragma Assert (Nkind (N) in N_Entity);
6377 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag120 := Val;
6380 procedure Set_Flag121 (N : Node_Id; Val : Boolean) is
6382 pragma Assert (Nkind (N) in N_Entity);
6385 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag121 := Val;
6388 procedure Set_Flag122 (N : Node_Id; Val : Boolean) is
6390 pragma Assert (Nkind (N) in N_Entity);
6393 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag122 := Val;
6396 procedure Set_Flag123 (N : Node_Id; Val : Boolean) is
6398 pragma Assert (Nkind (N) in N_Entity);
6401 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag123 := Val;
6404 procedure Set_Flag124 (N : Node_Id; Val : Boolean) is
6406 pragma Assert (Nkind (N) in N_Entity);
6409 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag124 := Val;
6412 procedure Set_Flag125 (N : Node_Id; Val : Boolean) is
6414 pragma Assert (Nkind (N) in N_Entity);
6417 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag125 := Val;
6420 procedure Set_Flag126 (N : Node_Id; Val : Boolean) is
6422 pragma Assert (Nkind (N) in N_Entity);
6425 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag126 := Val;
6428 procedure Set_Flag127 (N : Node_Id; Val : Boolean) is
6430 pragma Assert (Nkind (N) in N_Entity);
6433 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag127 := Val;
6436 procedure Set_Flag128 (N : Node_Id; Val : Boolean) is
6438 pragma Assert (Nkind (N) in N_Entity);
6441 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag128 := Val;
6444 procedure Set_Flag129 (N : Node_Id; Val : Boolean) is
6446 pragma Assert (Nkind (N) in N_Entity);
6447 Nodes.Table (N + 3).In_List := Val;
6450 procedure Set_Flag130 (N : Node_Id; Val : Boolean) is
6452 pragma Assert (Nkind (N) in N_Entity);
6453 Nodes.Table (N + 3).Unused_1 := Val;
6456 procedure Set_Flag131 (N : Node_Id; Val : Boolean) is
6458 pragma Assert (Nkind (N) in N_Entity);
6459 Nodes.Table (N + 3).Rewrite_Ins := Val;
6462 procedure Set_Flag132 (N : Node_Id; Val : Boolean) is
6464 pragma Assert (Nkind (N) in N_Entity);
6465 Nodes.Table (N + 3).Analyzed := Val;
6468 procedure Set_Flag133 (N : Node_Id; Val : Boolean) is
6470 pragma Assert (Nkind (N) in N_Entity);
6471 Nodes.Table (N + 3).Comes_From_Source := Val;
6474 procedure Set_Flag134 (N : Node_Id; Val : Boolean) is
6476 pragma Assert (Nkind (N) in N_Entity);
6477 Nodes.Table (N + 3).Error_Posted := Val;
6480 procedure Set_Flag135 (N : Node_Id; Val : Boolean) is
6482 pragma Assert (Nkind (N) in N_Entity);
6483 Nodes.Table (N + 3).Flag4 := Val;
6486 procedure Set_Flag136 (N : Node_Id; Val : Boolean) is
6488 pragma Assert (Nkind (N) in N_Entity);
6489 Nodes.Table (N + 3).Flag5 := Val;
6492 procedure Set_Flag137 (N : Node_Id; Val : Boolean) is
6494 pragma Assert (Nkind (N) in N_Entity);
6495 Nodes.Table (N + 3).Flag6 := Val;
6498 procedure Set_Flag138 (N : Node_Id; Val : Boolean) is
6500 pragma Assert (Nkind (N) in N_Entity);
6501 Nodes.Table (N + 3).Flag7 := Val;
6504 procedure Set_Flag139 (N : Node_Id; Val : Boolean) is
6506 pragma Assert (Nkind (N) in N_Entity);
6507 Nodes.Table (N + 3).Flag8 := Val;
6510 procedure Set_Flag140 (N : Node_Id; Val : Boolean) is
6512 pragma Assert (Nkind (N) in N_Entity);
6513 Nodes.Table (N + 3).Flag9 := Val;
6516 procedure Set_Flag141 (N : Node_Id; Val : Boolean) is
6518 pragma Assert (Nkind (N) in N_Entity);
6519 Nodes.Table (N + 3).Flag10 := Val;
6522 procedure Set_Flag142 (N : Node_Id; Val : Boolean) is
6524 pragma Assert (Nkind (N) in N_Entity);
6525 Nodes.Table (N + 3).Flag11 := Val;
6528 procedure Set_Flag143 (N : Node_Id; Val : Boolean) is
6530 pragma Assert (Nkind (N) in N_Entity);
6531 Nodes.Table (N + 3).Flag12 := Val;
6534 procedure Set_Flag144 (N : Node_Id; Val : Boolean) is
6536 pragma Assert (Nkind (N) in N_Entity);
6537 Nodes.Table (N + 3).Flag13 := Val;
6540 procedure Set_Flag145 (N : Node_Id; Val : Boolean) is
6542 pragma Assert (Nkind (N) in N_Entity);
6543 Nodes.Table (N + 3).Flag14 := Val;
6546 procedure Set_Flag146 (N : Node_Id; Val : Boolean) is
6548 pragma Assert (Nkind (N) in N_Entity);
6549 Nodes.Table (N + 3).Flag15 := Val;
6552 procedure Set_Flag147 (N : Node_Id; Val : Boolean) is
6554 pragma Assert (Nkind (N) in N_Entity);
6555 Nodes.Table (N + 3).Flag16 := Val;
6558 procedure Set_Flag148 (N : Node_Id; Val : Boolean) is
6560 pragma Assert (Nkind (N) in N_Entity);
6561 Nodes.Table (N + 3).Flag17 := Val;
6564 procedure Set_Flag149 (N : Node_Id; Val : Boolean) is
6566 pragma Assert (Nkind (N) in N_Entity);
6567 Nodes.Table (N + 3).Flag18 := Val;
6570 procedure Set_Flag150 (N : Node_Id; Val : Boolean) is
6572 pragma Assert (Nkind (N) in N_Entity);
6573 Nodes.Table (N + 3).Pflag1 := Val;
6576 procedure Set_Flag151 (N : Node_Id; Val : Boolean) is
6578 pragma Assert (Nkind (N) in N_Entity);
6579 Nodes.Table (N + 3).Pflag2 := Val;
6582 procedure Set_Flag152 (N : Node_Id; Val : Boolean) is
6584 pragma Assert (Nkind (N) in N_Entity);
6587 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag152 := Val;
6590 procedure Set_Flag153 (N : Node_Id; Val : Boolean) is
6592 pragma Assert (Nkind (N) in N_Entity);
6595 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag153 := Val;
6598 procedure Set_Flag154 (N : Node_Id; Val : Boolean) is
6600 pragma Assert (Nkind (N) in N_Entity);
6603 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag154 := Val;
6606 procedure Set_Flag155 (N : Node_Id; Val : Boolean) is
6608 pragma Assert (Nkind (N) in N_Entity);
6611 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag155 := Val;
6614 procedure Set_Flag156 (N : Node_Id; Val : Boolean) is
6616 pragma Assert (Nkind (N) in N_Entity);
6619 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag156 := Val;
6622 procedure Set_Flag157 (N : Node_Id; Val : Boolean) is
6624 pragma Assert (Nkind (N) in N_Entity);
6627 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag157 := Val;
6630 procedure Set_Flag158 (N : Node_Id; Val : Boolean) is
6632 pragma Assert (Nkind (N) in N_Entity);
6635 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag158 := Val;
6638 procedure Set_Flag159 (N : Node_Id; Val : Boolean) is
6640 pragma Assert (Nkind (N) in N_Entity);
6643 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag159 := Val;
6646 procedure Set_Flag160 (N : Node_Id; Val : Boolean) is
6648 pragma Assert (Nkind (N) in N_Entity);
6651 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag160 := Val;
6654 procedure Set_Flag161 (N : Node_Id; Val : Boolean) is
6656 pragma Assert (Nkind (N) in N_Entity);
6659 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag161 := Val;
6662 procedure Set_Flag162 (N : Node_Id; Val : Boolean) is
6664 pragma Assert (Nkind (N) in N_Entity);
6667 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag162 := Val;
6670 procedure Set_Flag163 (N : Node_Id; Val : Boolean) is
6672 pragma Assert (Nkind (N) in N_Entity);
6675 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag163 := Val;
6678 procedure Set_Flag164 (N : Node_Id; Val : Boolean) is
6680 pragma Assert (Nkind (N) in N_Entity);
6683 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag164 := Val;
6686 procedure Set_Flag165 (N : Node_Id; Val : Boolean) is
6688 pragma Assert (Nkind (N) in N_Entity);
6691 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag165 := Val;
6694 procedure Set_Flag166 (N : Node_Id; Val : Boolean) is
6696 pragma Assert (Nkind (N) in N_Entity);
6699 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag166 := Val;
6702 procedure Set_Flag167 (N : Node_Id; Val : Boolean) is
6704 pragma Assert (Nkind (N) in N_Entity);
6707 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag167 := Val;
6710 procedure Set_Flag168 (N : Node_Id; Val : Boolean) is
6712 pragma Assert (Nkind (N) in N_Entity);
6715 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag168 := Val;
6718 procedure Set_Flag169 (N : Node_Id; Val : Boolean) is
6720 pragma Assert (Nkind (N) in N_Entity);
6723 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag169 := Val;
6726 procedure Set_Flag170 (N : Node_Id; Val : Boolean) is
6728 pragma Assert (Nkind (N) in N_Entity);
6731 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag170 := Val;
6734 procedure Set_Flag171 (N : Node_Id; Val : Boolean) is
6736 pragma Assert (Nkind (N) in N_Entity);
6739 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag171 := Val;
6742 procedure Set_Flag172 (N : Node_Id; Val : Boolean) is
6744 pragma Assert (Nkind (N) in N_Entity);
6747 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag172 := Val;
6750 procedure Set_Flag173 (N : Node_Id; Val : Boolean) is
6752 pragma Assert (Nkind (N) in N_Entity);
6755 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag173 := Val;
6758 procedure Set_Flag174 (N : Node_Id; Val : Boolean) is
6760 pragma Assert (Nkind (N) in N_Entity);
6763 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag174 := Val;
6766 procedure Set_Flag175 (N : Node_Id; Val : Boolean) is
6768 pragma Assert (Nkind (N) in N_Entity);
6771 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag175 := Val;
6774 procedure Set_Flag176 (N : Node_Id; Val : Boolean) is
6776 pragma Assert (Nkind (N) in N_Entity);
6779 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag176 := Val;
6782 procedure Set_Flag177 (N : Node_Id; Val : Boolean) is
6784 pragma Assert (Nkind (N) in N_Entity);
6787 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag177 := Val;
6790 procedure Set_Flag178 (N : Node_Id; Val : Boolean) is
6792 pragma Assert (Nkind (N) in N_Entity);
6795 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag178 := Val;
6798 procedure Set_Flag179 (N : Node_Id; Val : Boolean) is
6800 pragma Assert (Nkind (N) in N_Entity);
6803 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag179 := Val;
6806 procedure Set_Flag180 (N : Node_Id; Val : Boolean) is
6808 pragma Assert (Nkind (N) in N_Entity);
6811 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag180 := Val;
6814 procedure Set_Flag181 (N : Node_Id; Val : Boolean) is
6816 pragma Assert (Nkind (N) in N_Entity);
6819 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag181 := Val;
6822 procedure Set_Flag182 (N : Node_Id; Val : Boolean) is
6824 pragma Assert (Nkind (N) in N_Entity);
6827 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag182 := Val;
6830 procedure Set_Flag183 (N : Node_Id; Val : Boolean) is
6832 pragma Assert (Nkind (N) in N_Entity);
6835 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag183 := Val;
6838 procedure Set_Flag184 (N : Node_Id; Val : Boolean) is
6840 pragma Assert (Nkind (N) in N_Entity);
6843 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag184 := Val;
6846 procedure Set_Flag185 (N : Node_Id; Val : Boolean) is
6848 pragma Assert (Nkind (N) in N_Entity);
6851 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag185 := Val;
6854 procedure Set_Flag186 (N : Node_Id; Val : Boolean) is
6856 pragma Assert (Nkind (N) in N_Entity);
6859 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag186 := Val;
6862 procedure Set_Flag187 (N : Node_Id; Val : Boolean) is
6864 pragma Assert (Nkind (N) in N_Entity);
6867 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag187 := Val;
6870 procedure Set_Flag188 (N : Node_Id; Val : Boolean) is
6872 pragma Assert (Nkind (N) in N_Entity);
6875 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag188 := Val;
6878 procedure Set_Flag189 (N : Node_Id; Val : Boolean) is
6880 pragma Assert (Nkind (N) in N_Entity);
6883 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag189 := Val;
6886 procedure Set_Flag190 (N : Node_Id; Val : Boolean) is
6888 pragma Assert (Nkind (N) in N_Entity);
6891 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag190 := Val;
6894 procedure Set_Flag191 (N : Node_Id; Val : Boolean) is
6896 pragma Assert (Nkind (N) in N_Entity);
6899 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag191 := Val;
6902 procedure Set_Flag192 (N : Node_Id; Val : Boolean) is
6904 pragma Assert (Nkind (N) in N_Entity);
6907 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag192 := Val;
6910 procedure Set_Flag193 (N : Node_Id; Val : Boolean) is
6912 pragma Assert (Nkind (N) in N_Entity);
6915 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag193 := Val;
6918 procedure Set_Flag194 (N : Node_Id; Val : Boolean) is
6920 pragma Assert (Nkind (N) in N_Entity);
6923 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag194 := Val;
6926 procedure Set_Flag195 (N : Node_Id; Val : Boolean) is
6928 pragma Assert (Nkind (N) in N_Entity);
6931 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag195 := Val;
6934 procedure Set_Flag196 (N : Node_Id; Val : Boolean) is
6936 pragma Assert (Nkind (N) in N_Entity);
6939 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag196 := Val;
6942 procedure Set_Flag197 (N : Node_Id; Val : Boolean) is
6944 pragma Assert (Nkind (N) in N_Entity);
6947 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag197 := Val;
6950 procedure Set_Flag198 (N : Node_Id; Val : Boolean) is
6952 pragma Assert (Nkind (N) in N_Entity);
6955 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag198 := Val;
6958 procedure Set_Flag199 (N : Node_Id; Val : Boolean) is
6960 pragma Assert (Nkind (N) in N_Entity);
6963 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag199 := Val;
6966 procedure Set_Flag200 (N : Node_Id; Val : Boolean) is
6968 pragma Assert (Nkind (N) in N_Entity);
6971 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag200 := Val;
6974 procedure Set_Flag201 (N : Node_Id; Val : Boolean) is
6976 pragma Assert (Nkind (N) in N_Entity);
6979 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag201 := Val;
6982 procedure Set_Flag202 (N : Node_Id; Val : Boolean) is
6984 pragma Assert (Nkind (N) in N_Entity);
6987 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag202 := Val;
6990 procedure Set_Flag203 (N : Node_Id; Val : Boolean) is
6992 pragma Assert (Nkind (N) in N_Entity);
6995 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag203 := Val;
6998 procedure Set_Flag204 (N : Node_Id; Val : Boolean) is
7000 pragma Assert (Nkind (N) in N_Entity);
7003 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag204 := Val;
7006 procedure Set_Flag205 (N : Node_Id; Val : Boolean) is
7008 pragma Assert (Nkind (N) in N_Entity);
7011 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag205 := Val;
7014 procedure Set_Flag206 (N : Node_Id; Val : Boolean) is
7016 pragma Assert (Nkind (N) in N_Entity);
7019 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag206 := Val;
7022 procedure Set_Flag207 (N : Node_Id; Val : Boolean) is
7024 pragma Assert (Nkind (N) in N_Entity);
7027 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag207 := Val;
7030 procedure Set_Flag208 (N : Node_Id; Val : Boolean) is
7032 pragma Assert (Nkind (N) in N_Entity);
7035 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag208 := Val;
7038 procedure Set_Flag209 (N : Node_Id; Val : Boolean) is
7040 pragma Assert (Nkind (N) in N_Entity);
7043 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag209 := Val;
7046 procedure Set_Flag210 (N : Node_Id; Val : Boolean) is
7048 pragma Assert (Nkind (N) in N_Entity);
7051 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag210 := Val;
7054 procedure Set_Flag211 (N : Node_Id; Val : Boolean) is
7056 pragma Assert (Nkind (N) in N_Entity);
7059 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag211 := Val;
7062 procedure Set_Flag212 (N : Node_Id; Val : Boolean) is
7064 pragma Assert (Nkind (N) in N_Entity);
7067 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag212 := Val;
7070 procedure Set_Flag213 (N : Node_Id; Val : Boolean) is
7072 pragma Assert (Nkind (N) in N_Entity);
7075 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag213 := Val;
7078 procedure Set_Flag214 (N : Node_Id; Val : Boolean) is
7080 pragma Assert (Nkind (N) in N_Entity);
7083 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag214 := Val;
7086 procedure Set_Flag215 (N : Node_Id; Val : Boolean) is
7088 pragma Assert (Nkind (N) in N_Entity);
7091 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag215 := Val;
7094 procedure Set_Flag216 (N : Node_Id; Val : Boolean) is
7096 pragma Assert (Nkind (N) in N_Entity);
7099 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag216 := Val;
7102 procedure Set_Flag217 (N : Node_Id; Val : Boolean) is
7104 pragma Assert (Nkind (N) in N_Entity);
7107 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag217 := Val;
7110 procedure Set_Flag218 (N : Node_Id; Val : Boolean) is
7112 pragma Assert (Nkind (N) in N_Entity);
7115 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag218 := Val;
7118 procedure Set_Flag219 (N : Node_Id; Val : Boolean) is
7120 pragma Assert (Nkind (N) in N_Entity);
7123 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag219 := Val;
7126 procedure Set_Flag220 (N : Node_Id; Val : Boolean) is
7128 pragma Assert (Nkind (N) in N_Entity);
7131 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag220 := Val;
7134 procedure Set_Flag221 (N : Node_Id; Val : Boolean) is
7136 pragma Assert (Nkind (N) in N_Entity);
7139 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag221 := Val;
7142 procedure Set_Flag222 (N : Node_Id; Val : Boolean) is
7144 pragma Assert (Nkind (N) in N_Entity);
7147 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag222 := Val;
7150 procedure Set_Flag223 (N : Node_Id; Val : Boolean) is
7152 pragma Assert (Nkind (N) in N_Entity);
7155 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag223 := Val;
7158 procedure Set_Flag224 (N : Node_Id; Val : Boolean) is
7160 pragma Assert (Nkind (N) in N_Entity);
7163 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag224 := Val;
7166 procedure Set_Flag225 (N : Node_Id; Val : Boolean) is
7168 pragma Assert (Nkind (N) in N_Entity);
7171 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag225 := Val;
7174 procedure Set_Flag226 (N : Node_Id; Val : Boolean) is
7176 pragma Assert (Nkind (N) in N_Entity);
7179 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag226 := Val;
7182 procedure Set_Flag227 (N : Node_Id; Val : Boolean) is
7184 pragma Assert (Nkind (N) in N_Entity);
7187 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag227 := Val;
7190 procedure Set_Flag228 (N : Node_Id; Val : Boolean) is
7192 pragma Assert (Nkind (N) in N_Entity);
7195 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag228 := Val;
7198 procedure Set_Flag229 (N : Node_Id; Val : Boolean) is
7200 pragma Assert (Nkind (N) in N_Entity);
7203 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag229 := Val;
7206 procedure Set_Flag230 (N : Node_Id; Val : Boolean) is
7208 pragma Assert (Nkind (N) in N_Entity);
7211 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag230 := Val;
7214 procedure Set_Flag231 (N : Node_Id; Val : Boolean) is
7216 pragma Assert (Nkind (N) in N_Entity);
7219 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag231 := Val;
7222 procedure Set_Flag232 (N : Node_Id; Val : Boolean) is
7224 pragma Assert (Nkind (N) in N_Entity);
7227 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag232 := Val;
7230 procedure Set_Flag233 (N : Node_Id; Val : Boolean) is
7232 pragma Assert (Nkind (N) in N_Entity);
7235 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag233 := Val;
7238 procedure Set_Flag234 (N : Node_Id; Val : Boolean) is
7240 pragma Assert (Nkind (N) in N_Entity);
7243 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag234 := Val;
7246 procedure Set_Flag235 (N : Node_Id; Val : Boolean) is
7248 pragma Assert (Nkind (N) in N_Entity);
7251 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag235 := Val;
7254 procedure Set_Flag236 (N : Node_Id; Val : Boolean) is
7256 pragma Assert (Nkind (N) in N_Entity);
7259 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag236 := Val;
7262 procedure Set_Flag237 (N : Node_Id; Val : Boolean) is
7264 pragma Assert (Nkind (N) in N_Entity);
7267 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag237 := Val;
7270 procedure Set_Flag238 (N : Node_Id; Val : Boolean) is
7272 pragma Assert (Nkind (N) in N_Entity);
7275 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag238 := Val;
7278 procedure Set_Flag239 (N : Node_Id; Val : Boolean) is
7280 pragma Assert (Nkind (N) in N_Entity);
7283 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag239 := Val;
7286 procedure Set_Flag240 (N : Node_Id; Val : Boolean) is
7288 pragma Assert (Nkind (N) in N_Entity);
7291 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag240 := Val;
7294 procedure Set_Flag241 (N : Node_Id; Val : Boolean) is
7296 pragma Assert (Nkind (N) in N_Entity);
7299 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag241 := Val;
7302 procedure Set_Flag242 (N : Node_Id; Val : Boolean) is
7304 pragma Assert (Nkind (N) in N_Entity);
7307 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag242 := Val;
7310 procedure Set_Flag243 (N : Node_Id; Val : Boolean) is
7312 pragma Assert (Nkind (N) in N_Entity);
7315 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag243 := Val;
7318 procedure Set_Flag244 (N : Node_Id; Val : Boolean) is
7320 pragma Assert (Nkind (N) in N_Entity);
7323 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag244 := Val;
7326 procedure Set_Flag245 (N : Node_Id; Val : Boolean) is
7328 pragma Assert (Nkind (N) in N_Entity);
7331 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag245 := Val;
7334 procedure Set_Flag246 (N : Node_Id; Val : Boolean) is
7336 pragma Assert (Nkind (N) in N_Entity);
7339 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag246 := Val;
7342 procedure Set_Flag247 (N : Node_Id; Val : Boolean) is
7344 pragma Assert (Nkind (N) in N_Entity);
7347 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag247 := Val;
7350 procedure Set_Node1_With_Parent (N : Node_Id; Val : Node_Id) is
7352 pragma Assert (N <= Nodes.Last);
7355 Set_Parent (N => Val, Val => N);
7359 end Set_Node1_With_Parent;
7361 procedure Set_Node2_With_Parent (N : Node_Id; Val : Node_Id) is
7363 pragma Assert (N <= Nodes.Last);
7366 Set_Parent (N => Val, Val => N);
7370 end Set_Node2_With_Parent;
7372 procedure Set_Node3_With_Parent (N : Node_Id; Val : Node_Id) is
7374 pragma Assert (N <= Nodes.Last);
7377 Set_Parent (N => Val, Val => N);
7381 end Set_Node3_With_Parent;
7383 procedure Set_Node4_With_Parent (N : Node_Id; Val : Node_Id) is
7385 pragma Assert (N <= Nodes.Last);
7388 Set_Parent (N => Val, Val => N);
7392 end Set_Node4_With_Parent;
7394 procedure Set_Node5_With_Parent (N : Node_Id; Val : Node_Id) is
7396 pragma Assert (N <= Nodes.Last);
7399 Set_Parent (N => Val, Val => N);
7403 end Set_Node5_With_Parent;
7405 procedure Set_List1_With_Parent (N : Node_Id; Val : List_Id) is
7407 pragma Assert (N <= Nodes.Last);
7408 if Val /= No_List and then Val /= Error_List then
7409 Set_Parent (Val, N);
7412 end Set_List1_With_Parent;
7414 procedure Set_List2_With_Parent (N : Node_Id; Val : List_Id) is
7416 pragma Assert (N <= Nodes.Last);
7417 if Val /= No_List and then Val /= Error_List then
7418 Set_Parent (Val, N);
7421 end Set_List2_With_Parent;
7423 procedure Set_List3_With_Parent (N : Node_Id; Val : List_Id) is
7425 pragma Assert (N <= Nodes.Last);
7426 if Val /= No_List and then Val /= Error_List then
7427 Set_Parent (Val, N);
7430 end Set_List3_With_Parent;
7432 procedure Set_List4_With_Parent (N : Node_Id; Val : List_Id) is
7434 pragma Assert (N <= Nodes.Last);
7435 if Val /= No_List and then Val /= Error_List then
7436 Set_Parent (Val, N);
7439 end Set_List4_With_Parent;
7441 procedure Set_List5_With_Parent (N : Node_Id; Val : List_Id) is
7443 pragma Assert (N <= Nodes.Last);
7444 if Val /= No_List and then Val /= Error_List then
7445 Set_Parent (Val, N);
7448 end Set_List5_With_Parent;
7450 end Unchecked_Access;
7458 Nodes.Locked := False;
7459 Orig_Nodes.Locked := False;