1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
9 -- Copyright (C) 1992-2007, Free Software Foundation, Inc. --
11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 2, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
16 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
17 -- for more details. You should have received a copy of the GNU General --
18 -- Public License distributed with GNAT; see file COPYING. If not, write --
19 -- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
20 -- Boston, MA 02110-1301, USA. --
22 -- As a special exception, if other files instantiate generics from this --
23 -- unit, or you link this unit with other files to produce an executable, --
24 -- this unit does not by itself cause the resulting executable to be --
25 -- covered by the GNU General Public License. This exception does not --
26 -- however invalidate any other reasons why the executable file might be --
27 -- covered by the GNU Public License. --
29 -- GNAT was originally developed by the GNAT team at New York University. --
30 -- Extensive contributions were provided by Ada Core Technologies Inc. --
32 ------------------------------------------------------------------------------
34 pragma Style_Checks (All_Checks);
35 -- Turn off subprogram ordering check for this package
37 -- WARNING: There is a C version of this package. Any changes to this source
38 -- file must be properly reflected in the file atree.h which is a C header
39 -- file containing equivalent definitions for use by gigi.
41 with Debug; use Debug;
42 with Nlists; use Nlists;
43 with Elists; use Elists;
44 with Output; use Output;
45 with Sinput; use Sinput;
46 with Tree_IO; use Tree_IO;
48 with GNAT.HTable; use GNAT.HTable;
56 -- Suppose you find that node 12345 is messed up. You might want to find
57 -- the code that created that node. There are two ways to do this:
59 -- One way is to set a conditional breakpoint on New_Node_Debugging_Output
61 -- break nnd if n = 12345
62 -- and run gnat1 again from the beginning.
64 -- The other way is to set a breakpoint near the beginning (e.g. on
65 -- gnat1drv), and run. Then set Watch_Node (nickname "ww") to 12345 in gdb:
67 -- and set a breakpoint on New_Node_Breakpoint (nickname "nn"). Continue.
69 -- Either way, gnat1 will stop when node 12345 is created
71 -- The second method is faster
73 ww : Node_Id'Base := Node_Id'First - 1;
74 pragma Export (Ada, ww); -- trick the optimizer
75 Watch_Node : Node_Id'Base renames ww;
76 -- Node to "watch"; that is, whenever a node is created, we check if it is
77 -- equal to Watch_Node, and if so, call New_Node_Breakpoint. You have
78 -- presumably set a breakpoint on New_Node_Breakpoint. Note that the
79 -- initial value of Node_Id'First - 1 ensures that by default, no node
80 -- will be equal to Watch_Node.
83 pragma Export (Ada, nn);
84 procedure New_Node_Breakpoint renames nn;
85 -- This doesn't do anything interesting; it's just for setting breakpoint
86 -- on as explained above.
88 procedure nnd (N : Node_Id);
89 pragma Export (Ada, nnd);
90 procedure New_Node_Debugging_Output (N : Node_Id) renames nnd;
91 -- For debugging. If debugging is turned on, New_Node and New_Entity call
92 -- this. If debug flag N is turned on, this prints out the new node.
94 -- If Node = Watch_Node, this prints out the new node and calls
95 -- New_Node_Breakpoint. Otherwise, does nothing.
97 -----------------------------
98 -- Local Objects and Types --
99 -----------------------------
102 -- Count allocated nodes for Num_Nodes function
104 use Unchecked_Access;
105 -- We are allowed to see these from within our own body!
107 use Atree_Private_Part;
108 -- We are also allowed to see our private data structures!
110 function E_To_N is new Unchecked_Conversion (Entity_Kind, Node_Kind);
111 function N_To_E is new Unchecked_Conversion (Node_Kind, Entity_Kind);
112 -- Functions used to store Entity_Kind value in Nkind field
114 -- The following declarations are used to store flags 65-72 in the
115 -- Nkind field of the third component of an extended (entity) node.
117 type Flag_Byte is record
128 pragma Pack (Flag_Byte);
129 for Flag_Byte'Size use 8;
131 type Flag_Byte_Ptr is access all Flag_Byte;
132 type Node_Kind_Ptr is access all Node_Kind;
134 function To_Flag_Byte is new
135 Unchecked_Conversion (Node_Kind, Flag_Byte);
137 function To_Flag_Byte_Ptr is new
138 Unchecked_Conversion (Node_Kind_Ptr, Flag_Byte_Ptr);
140 -- The following declarations are used to store flags 73-96 and the
141 -- Convention field in the Field12 field of the third component of an
142 -- extended (Entity) node.
144 type Flag_Word is record
172 Convention : Convention_Id;
175 pragma Pack (Flag_Word);
176 for Flag_Word'Size use 32;
177 for Flag_Word'Alignment use 4;
179 type Flag_Word_Ptr is access all Flag_Word;
180 type Union_Id_Ptr is access all Union_Id;
182 function To_Flag_Word is new
183 Unchecked_Conversion (Union_Id, Flag_Word);
185 function To_Flag_Word_Ptr is new
186 Unchecked_Conversion (Union_Id_Ptr, Flag_Word_Ptr);
188 -- The following declarations are used to store flags 97-128 in the
189 -- Field12 field of the fourth component of an extended (entity) node.
191 type Flag_Word2 is record
229 pragma Pack (Flag_Word2);
230 for Flag_Word2'Size use 32;
231 for Flag_Word2'Alignment use 4;
233 type Flag_Word2_Ptr is access all Flag_Word2;
235 function To_Flag_Word2 is new
236 Unchecked_Conversion (Union_Id, Flag_Word2);
238 function To_Flag_Word2_Ptr is new
239 Unchecked_Conversion (Union_Id_Ptr, Flag_Word2_Ptr);
241 -- The following declarations are used to store flags 152-183 in the
242 -- Field11 field of the fourth component of an extended (entity) node.
244 type Flag_Word3 is record
282 pragma Pack (Flag_Word3);
283 for Flag_Word3'Size use 32;
284 for Flag_Word3'Alignment use 4;
286 type Flag_Word3_Ptr is access all Flag_Word3;
288 function To_Flag_Word3 is new
289 Unchecked_Conversion (Union_Id, Flag_Word3);
291 function To_Flag_Word3_Ptr is new
292 Unchecked_Conversion (Union_Id_Ptr, Flag_Word3_Ptr);
294 -- The following declarations are used to store flags 184-215 in the
295 -- Field11 field of the fifth component of an extended (entity) node.
297 type Flag_Word4 is record
335 pragma Pack (Flag_Word4);
336 for Flag_Word4'Size use 32;
337 for Flag_Word4'Alignment use 4;
339 type Flag_Word4_Ptr is access all Flag_Word4;
341 function To_Flag_Word4 is new
342 Unchecked_Conversion (Union_Id, Flag_Word4);
344 function To_Flag_Word4_Ptr is new
345 Unchecked_Conversion (Union_Id_Ptr, Flag_Word4_Ptr);
347 -- The following declarations are used to store flags 216-247 in the
348 -- Field12 field of the fifth component of an extended (entity) node.
350 type Flag_Word5 is record
368 -- Note: flags 231-247 not in use yet
391 pragma Pack (Flag_Word5);
392 for Flag_Word5'Size use 32;
393 for Flag_Word5'Alignment use 4;
395 type Flag_Word5_Ptr is access all Flag_Word5;
397 function To_Flag_Word5 is new
398 Unchecked_Conversion (Union_Id, Flag_Word5);
400 function To_Flag_Word5_Ptr is new
401 Unchecked_Conversion (Union_Id_Ptr, Flag_Word5_Ptr);
403 -- Default value used to initialize default nodes. Note that some of the
404 -- fields get overwritten, and in particular, Nkind always gets reset.
406 Default_Node : Node_Record := (
407 Is_Extension => False,
412 Rewrite_Ins => False,
414 Comes_From_Source => False, -- modified by Set_Comes_From_Source_Default
415 Error_Posted => False,
434 Nkind => N_Unused_At_Start,
437 Link => Empty_List_Or_Node,
438 Field1 => Empty_List_Or_Node,
439 Field2 => Empty_List_Or_Node,
440 Field3 => Empty_List_Or_Node,
441 Field4 => Empty_List_Or_Node,
442 Field5 => Empty_List_Or_Node);
444 -- Default value used to initialize node extensions (i.e. the second
445 -- and third and fourth components of an extended node). Note we are
446 -- cheating a bit here when it comes to Node12, which really holds
447 -- flags an (for the third component), the convention. But it works
448 -- because Empty, False, Convention_Ada, all happen to be all zero bits.
450 Default_Node_Extension : constant Node_Record := (
451 Is_Extension => True,
456 Rewrite_Ins => False,
458 Comes_From_Source => False,
459 Error_Posted => False,
478 Nkind => E_To_N (E_Void),
480 Field6 => Empty_List_Or_Node,
481 Field7 => Empty_List_Or_Node,
482 Field8 => Empty_List_Or_Node,
483 Field9 => Empty_List_Or_Node,
484 Field10 => Empty_List_Or_Node,
485 Field11 => Empty_List_Or_Node,
486 Field12 => Empty_List_Or_Node);
488 --------------------------------------------------
489 -- Implementation of Tree Substitution Routines --
490 --------------------------------------------------
492 -- A separate table keeps track of the mapping between rewritten nodes
493 -- and their corresponding original tree nodes. Rewrite makes an entry
494 -- in this table for use by Original_Node. By default, if no call is
495 -- Rewrite, the entry in this table points to the original unwritten node.
497 -- Note: eventually, this should be a field in the Node directly, but
498 -- for now we do not want to disturb the efficiency of a power of 2
501 package Orig_Nodes is new Table.Table (
502 Table_Component_Type => Node_Id,
503 Table_Index_Type => Node_Id'Base,
504 Table_Low_Bound => First_Node_Id,
505 Table_Initial => Alloc.Orig_Nodes_Initial,
506 Table_Increment => Alloc.Orig_Nodes_Increment,
507 Table_Name => "Orig_Nodes");
509 ----------------------------------------
510 -- Global_Variables for New_Copy_Tree --
511 ----------------------------------------
513 -- These global variables are used by New_Copy_Tree. See description
514 -- of the body of this subprogram for details. Global variables can be
515 -- safely used by New_Copy_Tree, since there is no case of a recursive
516 -- call from the processing inside New_Copy_Tree.
518 NCT_Hash_Threshhold : constant := 20;
519 -- If there are more than this number of pairs of entries in the
520 -- map, then Hash_Tables_Used will be set, and the hash tables will
521 -- be initialized and used for the searches.
523 NCT_Hash_Tables_Used : Boolean := False;
524 -- Set to True if hash tables are in use
526 NCT_Table_Entries : Nat;
527 -- Count entries in table to see if threshhold is reached
529 NCT_Hash_Table_Setup : Boolean := False;
530 -- Set to True if hash table contains data. We set this True if we
531 -- setup the hash table with data, and leave it set permanently
532 -- from then on, this is a signal that second and subsequent users
533 -- of the hash table must clear the old entries before reuse.
535 subtype NCT_Header_Num is Int range 0 .. 511;
536 -- Defines range of headers in hash tables (512 headers)
538 -----------------------
539 -- Local Subprograms --
540 -----------------------
542 procedure Fix_Parents (Old_Node, New_Node : Node_Id);
543 -- Fixup parent pointers for the syntactic children of New_Node after
544 -- a copy, setting them to New_Node when they pointed to Old_Node.
546 function Allocate_Initialize_Node
548 With_Extension : Boolean) return Node_Id;
549 -- Allocate a new node or node extension. If Src is not empty,
550 -- the information for the newly-allocated node is copied from it.
552 ------------------------------
553 -- Allocate_Initialize_Node --
554 ------------------------------
556 function Allocate_Initialize_Node
558 With_Extension : Boolean) return Node_Id
560 New_Id : Node_Id := Src;
561 Nod : Node_Record := Default_Node;
562 Ext1 : Node_Record := Default_Node_Extension;
563 Ext2 : Node_Record := Default_Node_Extension;
564 Ext3 : Node_Record := Default_Node_Extension;
565 Ext4 : Node_Record := Default_Node_Extension;
568 if Present (Src) then
569 Nod := Nodes.Table (Src);
571 if Has_Extension (Src) then
572 Ext1 := Nodes.Table (Src + 1);
573 Ext2 := Nodes.Table (Src + 2);
574 Ext3 := Nodes.Table (Src + 3);
575 Ext4 := Nodes.Table (Src + 4);
579 if not (Present (Src)
580 and then not Has_Extension (Src)
581 and then With_Extension
582 and then Src = Nodes.Last)
584 -- We are allocating a new node, or extending a node
585 -- other than Nodes.Last.
588 New_Id := Nodes.Last;
589 Orig_Nodes.Append (New_Id);
590 Node_Count := Node_Count + 1;
593 if With_Extension then
600 Orig_Nodes.Set_Last (Nodes.Last);
601 Allocate_List_Tables (Nodes.Last);
603 end Allocate_Initialize_Node;
609 function Analyzed (N : Node_Id) return Boolean is
611 pragma Assert (N in Nodes.First .. Nodes.Last);
612 return Nodes.Table (N).Analyzed;
619 procedure Change_Node (N : Node_Id; New_Node_Kind : Node_Kind) is
620 Save_Sloc : constant Source_Ptr := Sloc (N);
621 Save_In_List : constant Boolean := Nodes.Table (N).In_List;
622 Save_Link : constant Union_Id := Nodes.Table (N).Link;
623 Save_CFS : constant Boolean := Nodes.Table (N).Comes_From_Source;
624 Save_Posted : constant Boolean := Nodes.Table (N).Error_Posted;
625 Par_Count : Paren_Count_Type := 0;
628 if Nkind (N) in N_Subexpr then
629 Par_Count := Paren_Count (N);
632 Nodes.Table (N) := Default_Node;
633 Nodes.Table (N).Sloc := Save_Sloc;
634 Nodes.Table (N).In_List := Save_In_List;
635 Nodes.Table (N).Link := Save_Link;
636 Nodes.Table (N).Comes_From_Source := Save_CFS;
637 Nodes.Table (N).Nkind := New_Node_Kind;
638 Nodes.Table (N).Error_Posted := Save_Posted;
640 if New_Node_Kind in N_Subexpr then
641 Set_Paren_Count (N, Par_Count);
645 -----------------------
646 -- Comes_From_Source --
647 -----------------------
649 function Comes_From_Source (N : Node_Id) return Boolean is
651 pragma Assert (N in Nodes.First .. Nodes.Last);
652 return Nodes.Table (N).Comes_From_Source;
653 end Comes_From_Source;
659 function Convention (E : Entity_Id) return Convention_Id is
661 pragma Assert (Nkind (E) in N_Entity);
662 return To_Flag_Word (Nodes.Table (E + 2).Field12).Convention;
669 procedure Copy_Node (Source : Node_Id; Destination : Node_Id) is
670 Save_In_List : constant Boolean := Nodes.Table (Destination).In_List;
671 Save_Link : constant Union_Id := Nodes.Table (Destination).Link;
674 Nodes.Table (Destination) := Nodes.Table (Source);
675 Nodes.Table (Destination).In_List := Save_In_List;
676 Nodes.Table (Destination).Link := Save_Link;
678 if Has_Extension (Source) then
679 pragma Assert (Has_Extension (Destination));
680 Nodes.Table (Destination + 1) := Nodes.Table (Source + 1);
681 Nodes.Table (Destination + 2) := Nodes.Table (Source + 2);
682 Nodes.Table (Destination + 3) := Nodes.Table (Source + 3);
683 Nodes.Table (Destination + 4) := Nodes.Table (Source + 4);
686 pragma Assert (not Has_Extension (Source));
691 ------------------------
692 -- Copy_Separate_Tree --
693 ------------------------
695 function Copy_Separate_Tree (Source : Node_Id) return Node_Id is
698 function Copy_Entity (E : Entity_Id) return Entity_Id;
699 -- Copy Entity, copying only the Ekind and Chars fields
701 function Copy_List (List : List_Id) return List_Id;
704 function Possible_Copy (Field : Union_Id) return Union_Id;
705 -- Given a field, returns a copy of the node or list if its parent
706 -- is the current source node, and otherwise returns the input
712 function Copy_Entity (E : Entity_Id) return Entity_Id is
716 case N_Entity (Nkind (E)) is
717 when N_Defining_Identifier =>
718 New_Ent := New_Entity (N_Defining_Identifier, Sloc (E));
720 when N_Defining_Character_Literal =>
721 New_Ent := New_Entity (N_Defining_Character_Literal, Sloc (E));
723 when N_Defining_Operator_Symbol =>
724 New_Ent := New_Entity (N_Defining_Operator_Symbol, Sloc (E));
727 Set_Chars (New_Ent, Chars (E));
735 function Copy_List (List : List_Id) return List_Id is
740 if List = No_List then
747 while Present (E) loop
748 if Has_Extension (E) then
749 Append (Copy_Entity (E), NL);
751 Append (Copy_Separate_Tree (E), NL);
765 function Possible_Copy (Field : Union_Id) return Union_Id is
769 if Field in Node_Range then
770 New_N := Union_Id (Copy_Separate_Tree (Node_Id (Field)));
772 if Parent (Node_Id (Field)) = Source then
773 Set_Parent (Node_Id (New_N), New_Id);
778 elsif Field in List_Range then
779 New_N := Union_Id (Copy_List (List_Id (Field)));
781 if Parent (List_Id (Field)) = Source then
782 Set_Parent (List_Id (New_N), New_Id);
792 -- Start of processing for Copy_Separate_Tree
795 if Source <= Empty_Or_Error then
798 elsif Has_Extension (Source) then
799 return Copy_Entity (Source);
802 New_Id := New_Copy (Source);
804 -- Recursively copy descendents
806 Set_Field1 (New_Id, Possible_Copy (Field1 (New_Id)));
807 Set_Field2 (New_Id, Possible_Copy (Field2 (New_Id)));
808 Set_Field3 (New_Id, Possible_Copy (Field3 (New_Id)));
809 Set_Field4 (New_Id, Possible_Copy (Field4 (New_Id)));
810 Set_Field5 (New_Id, Possible_Copy (Field5 (New_Id)));
812 -- Set Entity field to Empty
813 -- Why is this done??? and why is it always right to do it???
815 if Nkind (New_Id) in N_Has_Entity
816 or else Nkind (New_Id) = N_Freeze_Entity
818 Set_Entity (New_Id, Empty);
821 -- All done, return copied node
825 end Copy_Separate_Tree;
831 procedure Delete_Node (Node : Node_Id) is
833 pragma Assert (not Nodes.Table (Node).In_List);
836 Write_Str ("Delete node ");
837 Write_Int (Int (Node));
841 Nodes.Table (Node) := Default_Node;
842 Nodes.Table (Node).Nkind := N_Unused_At_Start;
843 Node_Count := Node_Count - 1;
845 -- Note: for now, we are not bothering to reuse deleted nodes
853 procedure Delete_Tree (Node : Node_Id) is
855 procedure Delete_Field (F : Union_Id);
856 -- Delete item pointed to by field F if it is a syntactic element
858 procedure Delete_List (L : List_Id);
859 -- Delete all elements on the given list
865 procedure Delete_Field (F : Union_Id) is
867 if F = Union_Id (Empty) then
870 elsif F in Node_Range
871 and then Parent (Node_Id (F)) = Node
873 Delete_Tree (Node_Id (F));
875 elsif F in List_Range
876 and then Parent (List_Id (F)) = Node
878 Delete_List (List_Id (F));
880 -- No need to test Elist case, there are no syntactic Elists
891 procedure Delete_List (L : List_Id) is
893 while Is_Non_Empty_List (L) loop
894 Delete_Tree (Remove_Head (L));
898 -- Start of processing for Delete_Tree
901 -- Delete descendents
903 Delete_Field (Field1 (Node));
904 Delete_Field (Field2 (Node));
905 Delete_Field (Field3 (Node));
906 Delete_Field (Field4 (Node));
907 Delete_Field (Field5 (Node));
914 function Ekind (E : Entity_Id) return Entity_Kind is
916 pragma Assert (Nkind (E) in N_Entity);
917 return N_To_E (Nodes.Table (E + 1).Nkind);
924 function Error_Posted (N : Node_Id) return Boolean is
926 pragma Assert (N in Nodes.First .. Nodes.Last);
927 return Nodes.Table (N).Error_Posted;
930 -----------------------
931 -- Exchange_Entities --
932 -----------------------
934 procedure Exchange_Entities (E1 : Entity_Id; E2 : Entity_Id) is
935 Temp_Ent : Node_Record;
938 pragma Assert (Has_Extension (E1)
939 and then Has_Extension (E2)
940 and then not Nodes.Table (E1).In_List
941 and then not Nodes.Table (E2).In_List);
943 -- Exchange the contents of the two entities
945 Temp_Ent := Nodes.Table (E1);
946 Nodes.Table (E1) := Nodes.Table (E2);
947 Nodes.Table (E2) := Temp_Ent;
948 Temp_Ent := Nodes.Table (E1 + 1);
949 Nodes.Table (E1 + 1) := Nodes.Table (E2 + 1);
950 Nodes.Table (E2 + 1) := Temp_Ent;
951 Temp_Ent := Nodes.Table (E1 + 2);
952 Nodes.Table (E1 + 2) := Nodes.Table (E2 + 2);
953 Nodes.Table (E2 + 2) := Temp_Ent;
954 Temp_Ent := Nodes.Table (E1 + 3);
955 Nodes.Table (E1 + 3) := Nodes.Table (E2 + 3);
956 Nodes.Table (E2 + 3) := Temp_Ent;
957 Temp_Ent := Nodes.Table (E1 + 4);
958 Nodes.Table (E1 + 4) := Nodes.Table (E2 + 4);
959 Nodes.Table (E2 + 4) := Temp_Ent;
961 -- That exchange exchanged the parent pointers as well, which is what
962 -- we want, but we need to patch up the defining identifier pointers
963 -- in the parent nodes (the child pointers) to match this switch
964 -- unless for Implicit types entities which have no parent, in which
965 -- case we don't do anything otherwise we won't be able to revert back
966 -- to the original situation.
968 -- Shouldn't this use Is_Itype instead of the Parent test
970 if Present (Parent (E1)) and then Present (Parent (E2)) then
971 Set_Defining_Identifier (Parent (E1), E1);
972 Set_Defining_Identifier (Parent (E2), E2);
974 end Exchange_Entities;
980 function Extend_Node (Node : Node_Id) return Entity_Id is
983 procedure Debug_Extend_Node;
984 pragma Inline (Debug_Extend_Node);
985 -- Debug routine for debug flag N
987 -----------------------
988 -- Debug_Extend_Node --
989 -----------------------
991 procedure Debug_Extend_Node is
994 Write_Str ("Extend node ");
995 Write_Int (Int (Node));
997 if Result = Node then
998 Write_Str (" in place");
1000 Write_Str (" copied to ");
1001 Write_Int (Int (Result));
1006 end Debug_Extend_Node;
1008 -- Start of processing for Extend_Node
1011 pragma Assert (not (Has_Extension (Node)));
1012 Result := Allocate_Initialize_Node (Node, With_Extension => True);
1013 pragma Debug (Debug_Extend_Node);
1021 procedure Fix_Parents (Old_Node, New_Node : Node_Id) is
1023 procedure Fix_Parent (Field : Union_Id; Old_Node, New_Node : Node_Id);
1024 -- Fixup one parent pointer. Field is checked to see if it
1025 -- points to a node, list, or element list that has a parent that
1026 -- points to Old_Node. If so, the parent is reset to point to New_Node.
1032 procedure Fix_Parent (Field : Union_Id; Old_Node, New_Node : Node_Id) is
1034 -- Fix parent of node that is referenced by Field. Note that we must
1035 -- exclude the case where the node is a member of a list, because in
1036 -- this case the parent is the parent of the list.
1038 if Field in Node_Range
1039 and then Present (Node_Id (Field))
1040 and then not Nodes.Table (Node_Id (Field)).In_List
1041 and then Parent (Node_Id (Field)) = Old_Node
1043 Set_Parent (Node_Id (Field), New_Node);
1045 -- Fix parent of list that is referenced by Field
1047 elsif Field in List_Range
1048 and then Present (List_Id (Field))
1049 and then Parent (List_Id (Field)) = Old_Node
1051 Set_Parent (List_Id (Field), New_Node);
1055 -- Start of processing for Fix_Parents
1058 Fix_Parent (Field1 (New_Node), Old_Node, New_Node);
1059 Fix_Parent (Field2 (New_Node), Old_Node, New_Node);
1060 Fix_Parent (Field3 (New_Node), Old_Node, New_Node);
1061 Fix_Parent (Field4 (New_Node), Old_Node, New_Node);
1062 Fix_Parent (Field5 (New_Node), Old_Node, New_Node);
1065 -----------------------------------
1066 -- Get_Comes_From_Source_Default --
1067 -----------------------------------
1069 function Get_Comes_From_Source_Default return Boolean is
1071 return Default_Node.Comes_From_Source;
1072 end Get_Comes_From_Source_Default;
1078 function Has_Extension (N : Node_Id) return Boolean is
1080 return N < Nodes.Last and then Nodes.Table (N + 1).Is_Extension;
1087 procedure Initialize is
1089 pragma Warnings (Off, Dummy);
1093 Atree_Private_Part.Nodes.Init;
1096 -- Allocate Empty node
1098 Dummy := New_Node (N_Empty, No_Location);
1099 Set_Name1 (Empty, No_Name);
1101 -- Allocate Error node, and set Error_Posted, since we certainly
1102 -- only generate an Error node if we do post some kind of error!
1104 Dummy := New_Node (N_Error, No_Location);
1105 Set_Name1 (Error, Error_Name);
1106 Set_Error_Posted (Error, True);
1108 -- Set global variables for New_Copy_Tree
1110 NCT_Hash_Tables_Used := False;
1111 NCT_Table_Entries := 0;
1112 NCT_Hash_Table_Setup := False;
1115 --------------------------
1116 -- Is_Rewrite_Insertion --
1117 --------------------------
1119 function Is_Rewrite_Insertion (Node : Node_Id) return Boolean is
1121 return Nodes.Table (Node).Rewrite_Ins;
1122 end Is_Rewrite_Insertion;
1124 -----------------------------
1125 -- Is_Rewrite_Substitution --
1126 -----------------------------
1128 function Is_Rewrite_Substitution (Node : Node_Id) return Boolean is
1130 return Orig_Nodes.Table (Node) /= Node;
1131 end Is_Rewrite_Substitution;
1137 function Last_Node_Id return Node_Id is
1148 Nodes.Locked := True;
1149 Orig_Nodes.Locked := True;
1154 ----------------------------
1155 -- Mark_Rewrite_Insertion --
1156 ----------------------------
1158 procedure Mark_Rewrite_Insertion (New_Node : Node_Id) is
1160 Nodes.Table (New_Node).Rewrite_Ins := True;
1161 end Mark_Rewrite_Insertion;
1167 function New_Copy (Source : Node_Id) return Node_Id is
1168 New_Id : Node_Id := Source;
1171 if Source > Empty_Or_Error then
1173 New_Id := Allocate_Initialize_Node (Source, Has_Extension (Source));
1175 Nodes.Table (New_Id).Link := Empty_List_Or_Node;
1176 Nodes.Table (New_Id).In_List := False;
1178 -- If the original is marked as a rewrite insertion, then unmark
1179 -- the copy, since we inserted the original, not the copy.
1181 Nodes.Table (New_Id).Rewrite_Ins := False;
1182 pragma Debug (New_Node_Debugging_Output (New_Id));
1192 -- Our approach here requires a two pass traversal of the tree. The
1193 -- first pass visits all nodes that eventually will be copied looking
1194 -- for defining Itypes. If any defining Itypes are found, then they are
1195 -- copied, and an entry is added to the replacement map. In the second
1196 -- phase, the tree is copied, using the replacement map to replace any
1197 -- Itype references within the copied tree.
1199 -- The following hash tables are used if the Map supplied has more
1200 -- than hash threshhold entries to speed up access to the map. If
1201 -- there are fewer entries, then the map is searched sequentially
1202 -- (because setting up a hash table for only a few entries takes
1203 -- more time than it saves.
1205 function New_Copy_Hash (E : Entity_Id) return NCT_Header_Num;
1206 -- Hash function used for hash operations
1212 function New_Copy_Hash (E : Entity_Id) return NCT_Header_Num is
1214 return Nat (E) mod (NCT_Header_Num'Last + 1);
1221 -- The hash table NCT_Assoc associates old entities in the table
1222 -- with their corresponding new entities (i.e. the pairs of entries
1223 -- presented in the original Map argument are Key-Element pairs).
1225 package NCT_Assoc is new Simple_HTable (
1226 Header_Num => NCT_Header_Num,
1227 Element => Entity_Id,
1228 No_Element => Empty,
1230 Hash => New_Copy_Hash,
1231 Equal => Types."=");
1233 ---------------------
1234 -- NCT_Itype_Assoc --
1235 ---------------------
1237 -- The hash table NCT_Itype_Assoc contains entries only for those
1238 -- old nodes which have a non-empty Associated_Node_For_Itype set.
1239 -- The key is the associated node, and the element is the new node
1240 -- itself (NOT the associated node for the new node).
1242 package NCT_Itype_Assoc is new Simple_HTable (
1243 Header_Num => NCT_Header_Num,
1244 Element => Entity_Id,
1245 No_Element => Empty,
1247 Hash => New_Copy_Hash,
1248 Equal => Types."=");
1250 -- Start of processing for New_Copy_Tree function
1252 function New_Copy_Tree
1254 Map : Elist_Id := No_Elist;
1255 New_Sloc : Source_Ptr := No_Location;
1256 New_Scope : Entity_Id := Empty) return Node_Id
1258 Actual_Map : Elist_Id := Map;
1259 -- This is the actual map for the copy. It is initialized with the
1260 -- given elements, and then enlarged as required for Itypes that are
1261 -- copied during the first phase of the copy operation. The visit
1262 -- procedures add elements to this map as Itypes are encountered.
1263 -- The reason we cannot use Map directly, is that it may well be
1264 -- (and normally is) initialized to No_Elist, and if we have mapped
1265 -- entities, we have to reset it to point to a real Elist.
1267 function Assoc (N : Node_Or_Entity_Id) return Node_Id;
1268 -- Called during second phase to map entities into their corresponding
1269 -- copies using Actual_Map. If the argument is not an entity, or is not
1270 -- in Actual_Map, then it is returned unchanged.
1272 procedure Build_NCT_Hash_Tables;
1273 -- Builds hash tables (number of elements >= threshold value)
1275 function Copy_Elist_With_Replacement
1276 (Old_Elist : Elist_Id) return Elist_Id;
1277 -- Called during second phase to copy element list doing replacements
1279 procedure Copy_Itype_With_Replacement (New_Itype : Entity_Id);
1280 -- Called during the second phase to process a copied Itype. The actual
1281 -- copy happened during the first phase (so that we could make the entry
1282 -- in the mapping), but we still have to deal with the descendents of
1283 -- the copied Itype and copy them where necessary.
1285 function Copy_List_With_Replacement (Old_List : List_Id) return List_Id;
1286 -- Called during second phase to copy list doing replacements
1288 function Copy_Node_With_Replacement (Old_Node : Node_Id) return Node_Id;
1289 -- Called during second phase to copy node doing replacements
1291 procedure Visit_Elist (E : Elist_Id);
1292 -- Called during first phase to visit all elements of an Elist
1294 procedure Visit_Field (F : Union_Id; N : Node_Id);
1295 -- Visit a single field, recursing to call Visit_Node or Visit_List
1296 -- if the field is a syntactic descendent of the current node (i.e.
1297 -- its parent is Node N).
1299 procedure Visit_Itype (Old_Itype : Entity_Id);
1300 -- Called during first phase to visit subsidiary fields of a defining
1301 -- Itype, and also create a copy and make an entry in the replacement
1302 -- map for the new copy.
1304 procedure Visit_List (L : List_Id);
1305 -- Called during first phase to visit all elements of a List
1307 procedure Visit_Node (N : Node_Or_Entity_Id);
1308 -- Called during first phase to visit a node and all its subtrees
1314 function Assoc (N : Node_Or_Entity_Id) return Node_Id is
1319 if not Has_Extension (N) or else No (Actual_Map) then
1322 elsif NCT_Hash_Tables_Used then
1323 Ent := NCT_Assoc.Get (Entity_Id (N));
1325 if Present (Ent) then
1331 -- No hash table used, do serial search
1334 E := First_Elmt (Actual_Map);
1335 while Present (E) loop
1336 if Node (E) = N then
1337 return Node (Next_Elmt (E));
1339 E := Next_Elmt (Next_Elmt (E));
1347 ---------------------------
1348 -- Build_NCT_Hash_Tables --
1349 ---------------------------
1351 procedure Build_NCT_Hash_Tables is
1355 if NCT_Hash_Table_Setup then
1357 NCT_Itype_Assoc.Reset;
1360 Elmt := First_Elmt (Actual_Map);
1361 while Present (Elmt) loop
1364 NCT_Assoc.Set (Ent, Node (Elmt));
1367 if Is_Type (Ent) then
1369 Anode : constant Entity_Id :=
1370 Associated_Node_For_Itype (Ent);
1373 if Present (Anode) then
1374 NCT_Itype_Assoc.Set (Anode, Node (Elmt));
1380 NCT_Hash_Tables_Used := True;
1381 NCT_Hash_Table_Setup := True;
1382 end Build_NCT_Hash_Tables;
1384 ---------------------------------
1385 -- Copy_Elist_With_Replacement --
1386 ---------------------------------
1388 function Copy_Elist_With_Replacement
1389 (Old_Elist : Elist_Id) return Elist_Id
1392 New_Elist : Elist_Id;
1395 if No (Old_Elist) then
1399 New_Elist := New_Elmt_List;
1401 M := First_Elmt (Old_Elist);
1402 while Present (M) loop
1403 Append_Elmt (Copy_Node_With_Replacement (Node (M)), New_Elist);
1409 end Copy_Elist_With_Replacement;
1411 ---------------------------------
1412 -- Copy_Itype_With_Replacement --
1413 ---------------------------------
1415 -- This routine exactly parallels its phase one analog Visit_Itype,
1416 -- and like that routine, knows far too many semantic details about
1417 -- the descendents of Itypes and whether they need copying or not.
1419 procedure Copy_Itype_With_Replacement (New_Itype : Entity_Id) is
1421 -- Translate Next_Entity, Scope and Etype fields, in case they
1422 -- reference entities that have been mapped into copies.
1424 Set_Next_Entity (New_Itype, Assoc (Next_Entity (New_Itype)));
1425 Set_Etype (New_Itype, Assoc (Etype (New_Itype)));
1427 if Present (New_Scope) then
1428 Set_Scope (New_Itype, New_Scope);
1430 Set_Scope (New_Itype, Assoc (Scope (New_Itype)));
1433 -- Copy referenced fields
1435 if Is_Discrete_Type (New_Itype) then
1436 Set_Scalar_Range (New_Itype,
1437 Copy_Node_With_Replacement (Scalar_Range (New_Itype)));
1439 elsif Has_Discriminants (Base_Type (New_Itype)) then
1440 Set_Discriminant_Constraint (New_Itype,
1441 Copy_Elist_With_Replacement
1442 (Discriminant_Constraint (New_Itype)));
1444 elsif Is_Array_Type (New_Itype) then
1445 if Present (First_Index (New_Itype)) then
1446 Set_First_Index (New_Itype,
1447 First (Copy_List_With_Replacement
1448 (List_Containing (First_Index (New_Itype)))));
1451 if Is_Packed (New_Itype) then
1452 Set_Packed_Array_Type (New_Itype,
1453 Copy_Node_With_Replacement
1454 (Packed_Array_Type (New_Itype)));
1457 end Copy_Itype_With_Replacement;
1459 --------------------------------
1460 -- Copy_List_With_Replacement --
1461 --------------------------------
1463 function Copy_List_With_Replacement
1464 (Old_List : List_Id) return List_Id
1470 if Old_List = No_List then
1474 New_List := Empty_List;
1476 E := First (Old_List);
1477 while Present (E) loop
1478 Append (Copy_Node_With_Replacement (E), New_List);
1484 end Copy_List_With_Replacement;
1486 --------------------------------
1487 -- Copy_Node_With_Replacement --
1488 --------------------------------
1490 function Copy_Node_With_Replacement
1491 (Old_Node : Node_Id) return Node_Id
1495 procedure Adjust_Named_Associations
1496 (Old_Node : Node_Id;
1497 New_Node : Node_Id);
1498 -- If a call node has named associations, these are chained through
1499 -- the First_Named_Actual, Next_Named_Actual links. These must be
1500 -- propagated separately to the new parameter list, because these
1501 -- are not syntactic fields.
1503 function Copy_Field_With_Replacement
1504 (Field : Union_Id) return Union_Id;
1505 -- Given Field, which is a field of Old_Node, return a copy of it
1506 -- if it is a syntactic field (i.e. its parent is Node), setting
1507 -- the parent of the copy to poit to New_Node. Otherwise returns
1508 -- the field (possibly mapped if it is an entity).
1510 -------------------------------
1511 -- Adjust_Named_Associations --
1512 -------------------------------
1514 procedure Adjust_Named_Associations
1515 (Old_Node : Node_Id;
1525 Old_E := First (Parameter_Associations (Old_Node));
1526 New_E := First (Parameter_Associations (New_Node));
1527 while Present (Old_E) loop
1528 if Nkind (Old_E) = N_Parameter_Association
1529 and then Present (Next_Named_Actual (Old_E))
1531 if First_Named_Actual (Old_Node)
1532 = Explicit_Actual_Parameter (Old_E)
1534 Set_First_Named_Actual
1535 (New_Node, Explicit_Actual_Parameter (New_E));
1538 -- Now scan parameter list from the beginning,to locate
1539 -- next named actual, which can be out of order.
1541 Old_Next := First (Parameter_Associations (Old_Node));
1542 New_Next := First (Parameter_Associations (New_Node));
1544 while Nkind (Old_Next) /= N_Parameter_Association
1545 or else Explicit_Actual_Parameter (Old_Next)
1546 /= Next_Named_Actual (Old_E)
1552 Set_Next_Named_Actual
1553 (New_E, Explicit_Actual_Parameter (New_Next));
1559 end Adjust_Named_Associations;
1561 ---------------------------------
1562 -- Copy_Field_With_Replacement --
1563 ---------------------------------
1565 function Copy_Field_With_Replacement
1566 (Field : Union_Id) return Union_Id
1569 if Field = Union_Id (Empty) then
1572 elsif Field in Node_Range then
1574 Old_N : constant Node_Id := Node_Id (Field);
1578 -- If syntactic field, as indicated by the parent pointer
1579 -- being set, then copy the referenced node recursively.
1581 if Parent (Old_N) = Old_Node then
1582 New_N := Copy_Node_With_Replacement (Old_N);
1584 if New_N /= Old_N then
1585 Set_Parent (New_N, New_Node);
1588 -- For semantic fields, update possible entity reference
1589 -- from the replacement map.
1592 New_N := Assoc (Old_N);
1595 return Union_Id (New_N);
1598 elsif Field in List_Range then
1600 Old_L : constant List_Id := List_Id (Field);
1604 -- If syntactic field, as indicated by the parent pointer,
1605 -- then recursively copy the entire referenced list.
1607 if Parent (Old_L) = Old_Node then
1608 New_L := Copy_List_With_Replacement (Old_L);
1609 Set_Parent (New_L, New_Node);
1611 -- For semantic list, just returned unchanged
1617 return Union_Id (New_L);
1620 -- Anything other than a list or a node is returned unchanged
1625 end Copy_Field_With_Replacement;
1627 -- Start of processing for Copy_Node_With_Replacement
1630 if Old_Node <= Empty_Or_Error then
1633 elsif Has_Extension (Old_Node) then
1634 return Assoc (Old_Node);
1637 New_Node := New_Copy (Old_Node);
1639 -- If the node we are copying is the associated node of a
1640 -- previously copied Itype, then adjust the associated node
1641 -- of the copy of that Itype accordingly.
1643 if Present (Actual_Map) then
1649 -- Case of hash table used
1651 if NCT_Hash_Tables_Used then
1652 Ent := NCT_Itype_Assoc.Get (Old_Node);
1654 if Present (Ent) then
1655 Set_Associated_Node_For_Itype (Ent, New_Node);
1658 -- Case of no hash table used
1661 E := First_Elmt (Actual_Map);
1662 while Present (E) loop
1663 if Is_Itype (Node (E))
1665 Old_Node = Associated_Node_For_Itype (Node (E))
1667 Set_Associated_Node_For_Itype
1668 (Node (Next_Elmt (E)), New_Node);
1671 E := Next_Elmt (Next_Elmt (E));
1677 -- Recursively copy descendents
1680 (New_Node, Copy_Field_With_Replacement (Field1 (New_Node)));
1682 (New_Node, Copy_Field_With_Replacement (Field2 (New_Node)));
1684 (New_Node, Copy_Field_With_Replacement (Field3 (New_Node)));
1686 (New_Node, Copy_Field_With_Replacement (Field4 (New_Node)));
1688 (New_Node, Copy_Field_With_Replacement (Field5 (New_Node)));
1690 -- Adjust Sloc of new node if necessary
1692 if New_Sloc /= No_Location then
1693 Set_Sloc (New_Node, New_Sloc);
1695 -- If we adjust the Sloc, then we are essentially making
1696 -- a completely new node, so the Comes_From_Source flag
1697 -- should be reset to the proper default value.
1699 Nodes.Table (New_Node).Comes_From_Source :=
1700 Default_Node.Comes_From_Source;
1703 -- If the node is call and has named associations,
1704 -- set the corresponding links in the copy.
1706 if (Nkind (Old_Node) = N_Function_Call
1707 or else Nkind (Old_Node) = N_Entry_Call_Statement
1709 Nkind (Old_Node) = N_Procedure_Call_Statement)
1710 and then Present (First_Named_Actual (Old_Node))
1712 Adjust_Named_Associations (Old_Node, New_Node);
1715 -- Reset First_Real_Statement for Handled_Sequence_Of_Statements.
1716 -- The replacement mechanism applies to entities, and is not used
1717 -- here. Eventually we may need a more general graph-copying
1718 -- routine. For now, do a sequential search to find desired node.
1720 if Nkind (Old_Node) = N_Handled_Sequence_Of_Statements
1721 and then Present (First_Real_Statement (Old_Node))
1724 Old_F : constant Node_Id := First_Real_Statement (Old_Node);
1728 N1 := First (Statements (Old_Node));
1729 N2 := First (Statements (New_Node));
1731 while N1 /= Old_F loop
1736 Set_First_Real_Statement (New_Node, N2);
1741 -- All done, return copied node
1744 end Copy_Node_With_Replacement;
1750 procedure Visit_Elist (E : Elist_Id) is
1754 Elmt := First_Elmt (E);
1756 while Elmt /= No_Elmt loop
1757 Visit_Node (Node (Elmt));
1767 procedure Visit_Field (F : Union_Id; N : Node_Id) is
1769 if F = Union_Id (Empty) then
1772 elsif F in Node_Range then
1774 -- Copy node if it is syntactic, i.e. its parent pointer is
1775 -- set to point to the field that referenced it (certain
1776 -- Itypes will also meet this criterion, which is fine, since
1777 -- these are clearly Itypes that do need to be copied, since
1778 -- we are copying their parent.)
1780 if Parent (Node_Id (F)) = N then
1781 Visit_Node (Node_Id (F));
1784 -- Another case, if we are pointing to an Itype, then we want
1785 -- to copy it if its associated node is somewhere in the tree
1788 -- Note: the exclusion of self-referential copies is just an
1789 -- optimization, since the search of the already copied list
1790 -- would catch it, but it is a common case (Etype pointing
1791 -- to itself for an Itype that is a base type).
1793 elsif Has_Extension (Node_Id (F))
1794 and then Is_Itype (Entity_Id (F))
1795 and then Node_Id (F) /= N
1801 P := Associated_Node_For_Itype (Node_Id (F));
1802 while Present (P) loop
1804 Visit_Node (Node_Id (F));
1811 -- An Itype whose parent is not being copied definitely
1812 -- should NOT be copied, since it does not belong in any
1813 -- sense to the copied subtree.
1819 elsif F in List_Range
1820 and then Parent (List_Id (F)) = N
1822 Visit_List (List_Id (F));
1831 -- Note: we are relying on far too much semantic knowledge in this
1832 -- routine, it really should just do a blind replacement of all
1833 -- fields, or at least a more blind replacement. For example, we
1834 -- do not deal with corresponding record types, and that works
1835 -- because we have no Itypes of task types, but nowhere is there
1836 -- a guarantee that this will always be the case. ???
1838 procedure Visit_Itype (Old_Itype : Entity_Id) is
1839 New_Itype : Entity_Id;
1844 -- Itypes that describe the designated type of access to subprograms
1845 -- have the structure of subprogram declarations, with signatures,
1846 -- etc. Either we duplicate the signatures completely, or choose to
1847 -- share such itypes, which is fine because their elaboration will
1848 -- have no side effects. In any case, this is additional semantic
1849 -- information that seems awkward to have in atree.
1851 if Ekind (Old_Itype) = E_Subprogram_Type then
1855 New_Itype := New_Copy (Old_Itype);
1857 -- The new Itype has all the attributes of the old one, and
1858 -- we just copy the contents of the entity. However, the back-end
1859 -- needs different names for debugging purposes, so we create a
1860 -- new internal name by appending the letter 'c' (copy) to the
1861 -- name of the original.
1863 Get_Name_String (Chars (Old_Itype));
1864 Add_Char_To_Name_Buffer ('c');
1865 Set_Chars (New_Itype, Name_Enter);
1867 -- If our associated node is an entity that has already been copied,
1868 -- then set the associated node of the copy to point to the right
1869 -- copy. If we have copied an Itype that is itself the associated
1870 -- node of some previously copied Itype, then we set the right
1871 -- pointer in the other direction.
1873 if Present (Actual_Map) then
1875 -- Case of hash tables used
1877 if NCT_Hash_Tables_Used then
1879 Ent := NCT_Assoc.Get (Associated_Node_For_Itype (Old_Itype));
1880 if Present (Ent) then
1881 Set_Associated_Node_For_Itype (New_Itype, Ent);
1884 Ent := NCT_Itype_Assoc.Get (Old_Itype);
1885 if Present (Ent) then
1886 Set_Associated_Node_For_Itype (Ent, New_Itype);
1889 -- Case of hash tables not used
1892 E := First_Elmt (Actual_Map);
1893 while Present (E) loop
1894 if Associated_Node_For_Itype (Old_Itype) = Node (E) then
1895 Set_Associated_Node_For_Itype
1896 (New_Itype, Node (Next_Elmt (E)));
1899 if Is_Type (Node (E))
1901 Old_Itype = Associated_Node_For_Itype (Node (E))
1903 Set_Associated_Node_For_Itype
1904 (Node (Next_Elmt (E)), New_Itype);
1907 E := Next_Elmt (Next_Elmt (E));
1912 if Present (Freeze_Node (New_Itype)) then
1913 Set_Is_Frozen (New_Itype, False);
1914 Set_Freeze_Node (New_Itype, Empty);
1917 -- Add new association to map
1919 if No (Actual_Map) then
1920 Actual_Map := New_Elmt_List;
1923 Append_Elmt (Old_Itype, Actual_Map);
1924 Append_Elmt (New_Itype, Actual_Map);
1926 if NCT_Hash_Tables_Used then
1927 NCT_Assoc.Set (Old_Itype, New_Itype);
1930 NCT_Table_Entries := NCT_Table_Entries + 1;
1932 if NCT_Table_Entries > NCT_Hash_Threshhold then
1933 Build_NCT_Hash_Tables;
1937 -- If a record subtype is simply copied, the entity list will be
1938 -- shared. Thus cloned_Subtype must be set to indicate the sharing.
1940 if Ekind (Old_Itype) = E_Record_Subtype
1941 or else Ekind (Old_Itype) = E_Class_Wide_Subtype
1943 Set_Cloned_Subtype (New_Itype, Old_Itype);
1946 -- Visit descendents that eventually get copied
1948 Visit_Field (Union_Id (Etype (Old_Itype)), Old_Itype);
1950 if Is_Discrete_Type (Old_Itype) then
1951 Visit_Field (Union_Id (Scalar_Range (Old_Itype)), Old_Itype);
1953 elsif Has_Discriminants (Base_Type (Old_Itype)) then
1954 -- ??? This should involve call to Visit_Field
1955 Visit_Elist (Discriminant_Constraint (Old_Itype));
1957 elsif Is_Array_Type (Old_Itype) then
1958 if Present (First_Index (Old_Itype)) then
1959 Visit_Field (Union_Id (List_Containing
1960 (First_Index (Old_Itype))),
1964 if Is_Packed (Old_Itype) then
1965 Visit_Field (Union_Id (Packed_Array_Type (Old_Itype)),
1975 procedure Visit_List (L : List_Id) is
1978 if L /= No_List then
1981 while Present (N) loop
1992 procedure Visit_Node (N : Node_Or_Entity_Id) is
1994 -- Start of processing for Visit_Node
1997 -- Handle case of an Itype, which must be copied
1999 if Has_Extension (N)
2000 and then Is_Itype (N)
2002 -- Nothing to do if already in the list. This can happen with an
2003 -- Itype entity that appears more than once in the tree.
2004 -- Note that we do not want to visit descendents in this case.
2006 -- Test for already in list when hash table is used
2008 if NCT_Hash_Tables_Used then
2009 if Present (NCT_Assoc.Get (Entity_Id (N))) then
2013 -- Test for already in list when hash table not used
2019 if Present (Actual_Map) then
2020 E := First_Elmt (Actual_Map);
2021 while Present (E) loop
2022 if Node (E) = N then
2025 E := Next_Elmt (Next_Elmt (E));
2035 -- Visit descendents
2037 Visit_Field (Field1 (N), N);
2038 Visit_Field (Field2 (N), N);
2039 Visit_Field (Field3 (N), N);
2040 Visit_Field (Field4 (N), N);
2041 Visit_Field (Field5 (N), N);
2044 -- Start of processing for New_Copy_Tree
2049 -- See if we should use hash table
2051 if No (Actual_Map) then
2052 NCT_Hash_Tables_Used := False;
2059 NCT_Table_Entries := 0;
2061 Elmt := First_Elmt (Actual_Map);
2062 while Present (Elmt) loop
2063 NCT_Table_Entries := NCT_Table_Entries + 1;
2068 if NCT_Table_Entries > NCT_Hash_Threshhold then
2069 Build_NCT_Hash_Tables;
2071 NCT_Hash_Tables_Used := False;
2076 -- Hash table set up if required, now start phase one by visiting
2077 -- top node (we will recursively visit the descendents).
2079 Visit_Node (Source);
2081 -- Now the second phase of the copy can start. First we process
2082 -- all the mapped entities, copying their descendents.
2084 if Present (Actual_Map) then
2087 New_Itype : Entity_Id;
2089 Elmt := First_Elmt (Actual_Map);
2090 while Present (Elmt) loop
2092 New_Itype := Node (Elmt);
2093 Copy_Itype_With_Replacement (New_Itype);
2099 -- Now we can copy the actual tree
2101 return Copy_Node_With_Replacement (Source);
2109 (New_Node_Kind : Node_Kind;
2110 New_Sloc : Source_Ptr) return Entity_Id
2115 pragma Assert (New_Node_Kind in N_Entity);
2117 Ent := Allocate_Initialize_Node (Empty, With_Extension => True);
2119 -- If this is a node with a real location and we are generating
2120 -- source nodes, then reset Current_Error_Node. This is useful
2121 -- if we bomb during parsing to get a error location for the bomb.
2123 if Default_Node.Comes_From_Source and then New_Sloc > No_Location then
2124 Current_Error_Node := Ent;
2127 Nodes.Table (Ent).Nkind := New_Node_Kind;
2128 Nodes.Table (Ent).Sloc := New_Sloc;
2129 pragma Debug (New_Node_Debugging_Output (Ent));
2139 (New_Node_Kind : Node_Kind;
2140 New_Sloc : Source_Ptr) return Node_Id
2145 pragma Assert (New_Node_Kind not in N_Entity);
2146 Nod := Allocate_Initialize_Node (Empty, With_Extension => False);
2147 Nodes.Table (Nod).Nkind := New_Node_Kind;
2148 Nodes.Table (Nod).Sloc := New_Sloc;
2149 pragma Debug (New_Node_Debugging_Output (Nod));
2151 -- If this is a node with a real location and we are generating source
2152 -- nodes, then reset Current_Error_Node. This is useful if we bomb
2153 -- during parsing to get an error location for the bomb.
2155 if Default_Node.Comes_From_Source and then New_Sloc > No_Location then
2156 Current_Error_Node := Nod;
2162 -------------------------
2163 -- New_Node_Breakpoint --
2164 -------------------------
2166 procedure nn is -- New_Node_Breakpoint
2168 Write_Str ("Watched node ");
2169 Write_Int (Int (Watch_Node));
2170 Write_Str (" created");
2174 -------------------------------
2175 -- New_Node_Debugging_Output --
2176 -------------------------------
2178 procedure nnd (N : Node_Id) is -- New_Node_Debugging_Output
2179 Node_Is_Watched : constant Boolean := N = Watch_Node;
2182 if Debug_Flag_N or else Node_Is_Watched then
2183 Write_Str ("Allocate ");
2185 if Nkind (N) in N_Entity then
2186 Write_Str ("entity");
2191 Write_Str (", Id = ");
2192 Write_Int (Int (N));
2194 Write_Location (Sloc (N));
2196 Write_Str (Node_Kind'Image (Nkind (N)));
2199 if Node_Is_Watched then
2200 New_Node_Breakpoint;
2209 function Nkind (N : Node_Id) return Node_Kind is
2211 return Nodes.Table (N).Nkind;
2218 function No (N : Node_Id) return Boolean is
2227 function Nodes_Address return System.Address is
2229 return Nodes.Table (First_Node_Id)'Address;
2236 function Num_Nodes return Nat is
2245 function Original_Node (Node : Node_Id) return Node_Id is
2247 return Orig_Nodes.Table (Node);
2254 function Paren_Count (N : Node_Id) return Paren_Count_Type is
2255 C : Paren_Count_Type := 0;
2258 pragma Assert (N in Nodes.First .. Nodes.Last);
2260 if Nodes.Table (N).Pflag1 then
2264 if Nodes.Table (N).Pflag2 then
2275 function Parent (N : Node_Id) return Node_Id is
2277 if Is_List_Member (N) then
2278 return Parent (List_Containing (N));
2280 return Node_Id (Nodes.Table (N).Link);
2288 function Present (N : Node_Id) return Boolean is
2293 --------------------------------
2294 -- Preserve_Comes_From_Source --
2295 --------------------------------
2297 procedure Preserve_Comes_From_Source (NewN, OldN : Node_Id) is
2299 Nodes.Table (NewN).Comes_From_Source :=
2300 Nodes.Table (OldN).Comes_From_Source;
2301 end Preserve_Comes_From_Source;
2307 function Relocate_Node (Source : Node_Id) return Node_Id is
2315 New_Node := New_Copy (Source);
2316 Fix_Parents (Source, New_Node);
2318 -- We now set the parent of the new node to be the same as the
2319 -- parent of the source. Almost always this parent will be
2320 -- replaced by a new value when the relocated node is reattached
2321 -- to the tree, but by doing it now, we ensure that this node is
2322 -- not even temporarily disconnected from the tree. Note that this
2323 -- does not happen free, because in the list case, the parent does
2326 Set_Parent (New_Node, Parent (Source));
2328 -- If the node being relocated was a rewriting of some original
2329 -- node, then the relocated node has the same original node.
2331 if Orig_Nodes.Table (Source) /= Source then
2332 Orig_Nodes.Table (New_Node) := Orig_Nodes.Table (Source);
2342 procedure Replace (Old_Node, New_Node : Node_Id) is
2343 Old_Post : constant Boolean := Nodes.Table (Old_Node).Error_Posted;
2344 Old_CFS : constant Boolean := Nodes.Table (Old_Node).Comes_From_Source;
2348 (not Has_Extension (Old_Node)
2349 and not Has_Extension (New_Node)
2350 and not Nodes.Table (New_Node).In_List);
2352 -- Do copy, preserving link and in list status and comes from source
2354 Copy_Node (Source => New_Node, Destination => Old_Node);
2355 Nodes.Table (Old_Node).Comes_From_Source := Old_CFS;
2356 Nodes.Table (Old_Node).Error_Posted := Old_Post;
2358 -- Fix parents of substituted node, since it has changed identity
2360 Fix_Parents (New_Node, Old_Node);
2362 -- Since we are doing a replace, we assume that the original node
2363 -- is intended to become the new replaced node. The call would be
2364 -- to Rewrite if there were an intention to save the original node.
2366 Orig_Nodes.Table (Old_Node) := Old_Node;
2368 -- Finally delete the source, since it is now copied
2370 Delete_Node (New_Node);
2377 procedure Rewrite (Old_Node, New_Node : Node_Id) is
2379 Old_Error_P : constant Boolean := Nodes.Table (Old_Node).Error_Posted;
2380 -- This fields is always preserved in the new node
2382 Old_Paren_Count : Paren_Count_Type;
2383 Old_Must_Not_Freeze : Boolean;
2384 -- These fields are preserved in the new node only if the new node
2385 -- and the old node are both subexpression nodes.
2387 -- Note: it is a violation of abstraction levels for Must_Not_Freeze
2388 -- to be referenced like this. ???
2394 (not Has_Extension (Old_Node)
2395 and not Has_Extension (New_Node)
2396 and not Nodes.Table (New_Node).In_List);
2398 if Nkind (Old_Node) in N_Subexpr then
2399 Old_Paren_Count := Paren_Count (Old_Node);
2400 Old_Must_Not_Freeze := Must_Not_Freeze (Old_Node);
2402 Old_Paren_Count := 0;
2403 Old_Must_Not_Freeze := False;
2406 -- Allocate a new node, to be used to preserve the original contents
2407 -- of the Old_Node, for possible later retrival by Original_Node and
2408 -- make an entry in the Orig_Nodes table. This is only done if we have
2409 -- not already rewritten the node, as indicated by an Orig_Nodes entry
2410 -- that does not reference the Old_Node.
2412 if Orig_Nodes.Table (Old_Node) = Old_Node then
2413 Sav_Node := New_Copy (Old_Node);
2414 Orig_Nodes.Table (Sav_Node) := Sav_Node;
2415 Orig_Nodes.Table (Old_Node) := Sav_Node;
2418 -- Copy substitute node into place, preserving old fields as required
2420 Copy_Node (Source => New_Node, Destination => Old_Node);
2421 Nodes.Table (Old_Node).Error_Posted := Old_Error_P;
2423 if Nkind (New_Node) in N_Subexpr then
2424 Set_Paren_Count (Old_Node, Old_Paren_Count);
2425 Set_Must_Not_Freeze (Old_Node, Old_Must_Not_Freeze);
2428 Fix_Parents (New_Node, Old_Node);
2435 procedure Set_Analyzed (N : Node_Id; Val : Boolean := True) is
2437 Nodes.Table (N).Analyzed := Val;
2440 ---------------------------
2441 -- Set_Comes_From_Source --
2442 ---------------------------
2444 procedure Set_Comes_From_Source (N : Node_Id; Val : Boolean) is
2446 pragma Assert (N in Nodes.First .. Nodes.Last);
2447 Nodes.Table (N).Comes_From_Source := Val;
2448 end Set_Comes_From_Source;
2450 -----------------------------------
2451 -- Set_Comes_From_Source_Default --
2452 -----------------------------------
2454 procedure Set_Comes_From_Source_Default (Default : Boolean) is
2456 Default_Node.Comes_From_Source := Default;
2457 end Set_Comes_From_Source_Default;
2459 --------------------
2460 -- Set_Convention --
2461 --------------------
2463 procedure Set_Convention (E : Entity_Id; Val : Convention_Id) is
2465 pragma Assert (Nkind (E) in N_Entity);
2468 (Nodes.Table (E + 2).Field12'Unrestricted_Access)).Convention :=
2476 procedure Set_Ekind (E : Entity_Id; Val : Entity_Kind) is
2478 pragma Assert (Nkind (E) in N_Entity);
2479 Nodes.Table (E + 1).Nkind := E_To_N (Val);
2482 ----------------------
2483 -- Set_Error_Posted --
2484 ----------------------
2486 procedure Set_Error_Posted (N : Node_Id; Val : Boolean := True) is
2488 Nodes.Table (N).Error_Posted := Val;
2489 end Set_Error_Posted;
2491 ---------------------
2492 -- Set_Paren_Count --
2493 ---------------------
2495 procedure Set_Paren_Count (N : Node_Id; Val : Paren_Count_Type) is
2497 pragma Assert (Nkind (N) in N_Subexpr);
2498 Nodes.Table (N).Pflag1 := (Val mod 2 /= 0);
2499 Nodes.Table (N).Pflag2 := (Val >= 2);
2500 end Set_Paren_Count;
2506 procedure Set_Parent (N : Node_Id; Val : Node_Id) is
2508 pragma Assert (not Nodes.Table (N).In_List);
2509 Nodes.Table (N).Link := Union_Id (Val);
2516 procedure Set_Sloc (N : Node_Id; Val : Source_Ptr) is
2518 Nodes.Table (N).Sloc := Val;
2525 function Sloc (N : Node_Id) return Source_Ptr is
2527 return Nodes.Table (N).Sloc;
2534 function Traverse_Func (Node : Node_Id) return Traverse_Result is
2536 function Traverse_Field
2539 FN : Field_Num) return Traverse_Result;
2540 -- Fld is one of the fields of Nod. If the field points to syntactic
2541 -- node or list, then this node or list is traversed, and the result is
2542 -- the result of this traversal. Otherwise a value of True is returned
2543 -- with no processing. FN is the number of the field (1 .. 5).
2545 --------------------
2546 -- Traverse_Field --
2547 --------------------
2549 function Traverse_Field
2552 FN : Field_Num) return Traverse_Result
2555 if Fld = Union_Id (Empty) then
2558 -- Descendent is a node
2560 elsif Fld in Node_Range then
2562 -- Traverse descendent that is syntactic subtree node
2564 if Is_Syntactic_Field (Nkind (Nod), FN) then
2565 return Traverse_Func (Node_Id (Fld));
2567 -- Node that is not a syntactic subtree
2573 -- Descendent is a list
2575 elsif Fld in List_Range then
2577 -- Traverse descendent that is a syntactic subtree list
2579 if Is_Syntactic_Field (Nkind (Nod), FN) then
2581 Elmt : Node_Id := First (List_Id (Fld));
2583 while Present (Elmt) loop
2584 if Traverse_Func (Elmt) = Abandon then
2594 -- List that is not a syntactic subtree
2600 -- Field was not a node or a list
2607 -- Start of processing for Traverse_Func
2610 case Process (Node) is
2618 if Traverse_Field (Node, Union_Id (Field1 (Node)), 1) = Abandon
2620 Traverse_Field (Node, Union_Id (Field2 (Node)), 2) = Abandon
2622 Traverse_Field (Node, Union_Id (Field3 (Node)), 3) = Abandon
2624 Traverse_Field (Node, Union_Id (Field4 (Node)), 4) = Abandon
2626 Traverse_Field (Node, Union_Id (Field5 (Node)), 5) = Abandon
2635 Onod : constant Node_Id := Original_Node (Node);
2637 if Traverse_Field (Onod, Union_Id (Field1 (Onod)), 1) = Abandon
2639 Traverse_Field (Onod, Union_Id (Field2 (Onod)), 2) = Abandon
2641 Traverse_Field (Onod, Union_Id (Field3 (Onod)), 3) = Abandon
2643 Traverse_Field (Onod, Union_Id (Field4 (Onod)), 4) = Abandon
2645 Traverse_Field (Onod, Union_Id (Field5 (Onod)), 5) = Abandon
2659 procedure Traverse_Proc (Node : Node_Id) is
2660 function Traverse is new Traverse_Func (Process);
2661 Discard : Traverse_Result;
2662 pragma Warnings (Off, Discard);
2664 Discard := Traverse (Node);
2671 procedure Tree_Read is
2673 Tree_Read_Int (Node_Count);
2675 Orig_Nodes.Tree_Read;
2682 procedure Tree_Write is
2684 Tree_Write_Int (Node_Count);
2686 Orig_Nodes.Tree_Write;
2689 ------------------------------
2690 -- Unchecked Access Package --
2691 ------------------------------
2693 package body Unchecked_Access is
2695 function Field1 (N : Node_Id) return Union_Id is
2697 pragma Assert (N in Nodes.First .. Nodes.Last);
2698 return Nodes.Table (N).Field1;
2701 function Field2 (N : Node_Id) return Union_Id is
2703 pragma Assert (N in Nodes.First .. Nodes.Last);
2704 return Nodes.Table (N).Field2;
2707 function Field3 (N : Node_Id) return Union_Id is
2709 pragma Assert (N in Nodes.First .. Nodes.Last);
2710 return Nodes.Table (N).Field3;
2713 function Field4 (N : Node_Id) return Union_Id is
2715 pragma Assert (N in Nodes.First .. Nodes.Last);
2716 return Nodes.Table (N).Field4;
2719 function Field5 (N : Node_Id) return Union_Id is
2721 pragma Assert (N in Nodes.First .. Nodes.Last);
2722 return Nodes.Table (N).Field5;
2725 function Field6 (N : Node_Id) return Union_Id is
2727 pragma Assert (Nkind (N) in N_Entity);
2728 return Nodes.Table (N + 1).Field6;
2731 function Field7 (N : Node_Id) return Union_Id is
2733 pragma Assert (Nkind (N) in N_Entity);
2734 return Nodes.Table (N + 1).Field7;
2737 function Field8 (N : Node_Id) return Union_Id is
2739 pragma Assert (Nkind (N) in N_Entity);
2740 return Nodes.Table (N + 1).Field8;
2743 function Field9 (N : Node_Id) return Union_Id is
2745 pragma Assert (Nkind (N) in N_Entity);
2746 return Nodes.Table (N + 1).Field9;
2749 function Field10 (N : Node_Id) return Union_Id is
2751 pragma Assert (Nkind (N) in N_Entity);
2752 return Nodes.Table (N + 1).Field10;
2755 function Field11 (N : Node_Id) return Union_Id is
2757 pragma Assert (Nkind (N) in N_Entity);
2758 return Nodes.Table (N + 1).Field11;
2761 function Field12 (N : Node_Id) return Union_Id is
2763 pragma Assert (Nkind (N) in N_Entity);
2764 return Nodes.Table (N + 1).Field12;
2767 function Field13 (N : Node_Id) return Union_Id is
2769 pragma Assert (Nkind (N) in N_Entity);
2770 return Nodes.Table (N + 2).Field6;
2773 function Field14 (N : Node_Id) return Union_Id is
2775 pragma Assert (Nkind (N) in N_Entity);
2776 return Nodes.Table (N + 2).Field7;
2779 function Field15 (N : Node_Id) return Union_Id is
2781 pragma Assert (Nkind (N) in N_Entity);
2782 return Nodes.Table (N + 2).Field8;
2785 function Field16 (N : Node_Id) return Union_Id is
2787 pragma Assert (Nkind (N) in N_Entity);
2788 return Nodes.Table (N + 2).Field9;
2791 function Field17 (N : Node_Id) return Union_Id is
2793 pragma Assert (Nkind (N) in N_Entity);
2794 return Nodes.Table (N + 2).Field10;
2797 function Field18 (N : Node_Id) return Union_Id is
2799 pragma Assert (Nkind (N) in N_Entity);
2800 return Nodes.Table (N + 2).Field11;
2803 function Field19 (N : Node_Id) return Union_Id is
2805 pragma Assert (Nkind (N) in N_Entity);
2806 return Nodes.Table (N + 3).Field6;
2809 function Field20 (N : Node_Id) return Union_Id is
2811 pragma Assert (Nkind (N) in N_Entity);
2812 return Nodes.Table (N + 3).Field7;
2815 function Field21 (N : Node_Id) return Union_Id is
2817 pragma Assert (Nkind (N) in N_Entity);
2818 return Nodes.Table (N + 3).Field8;
2821 function Field22 (N : Node_Id) return Union_Id is
2823 pragma Assert (Nkind (N) in N_Entity);
2824 return Nodes.Table (N + 3).Field9;
2827 function Field23 (N : Node_Id) return Union_Id is
2829 pragma Assert (Nkind (N) in N_Entity);
2830 return Nodes.Table (N + 3).Field10;
2833 function Field24 (N : Node_Id) return Union_Id is
2835 pragma Assert (Nkind (N) in N_Entity);
2836 return Nodes.Table (N + 4).Field6;
2839 function Field25 (N : Node_Id) return Union_Id is
2841 pragma Assert (Nkind (N) in N_Entity);
2842 return Nodes.Table (N + 4).Field7;
2845 function Field26 (N : Node_Id) return Union_Id is
2847 pragma Assert (Nkind (N) in N_Entity);
2848 return Nodes.Table (N + 4).Field8;
2851 function Field27 (N : Node_Id) return Union_Id is
2853 pragma Assert (Nkind (N) in N_Entity);
2854 return Nodes.Table (N + 4).Field9;
2857 function Field28 (N : Node_Id) return Union_Id is
2859 pragma Assert (Nkind (N) in N_Entity);
2860 return Nodes.Table (N + 4).Field10;
2863 function Node1 (N : Node_Id) return Node_Id is
2865 pragma Assert (N in Nodes.First .. Nodes.Last);
2866 return Node_Id (Nodes.Table (N).Field1);
2869 function Node2 (N : Node_Id) return Node_Id is
2871 pragma Assert (N in Nodes.First .. Nodes.Last);
2872 return Node_Id (Nodes.Table (N).Field2);
2875 function Node3 (N : Node_Id) return Node_Id is
2877 pragma Assert (N in Nodes.First .. Nodes.Last);
2878 return Node_Id (Nodes.Table (N).Field3);
2881 function Node4 (N : Node_Id) return Node_Id is
2883 pragma Assert (N in Nodes.First .. Nodes.Last);
2884 return Node_Id (Nodes.Table (N).Field4);
2887 function Node5 (N : Node_Id) return Node_Id is
2889 pragma Assert (N in Nodes.First .. Nodes.Last);
2890 return Node_Id (Nodes.Table (N).Field5);
2893 function Node6 (N : Node_Id) return Node_Id is
2895 pragma Assert (Nkind (N) in N_Entity);
2896 return Node_Id (Nodes.Table (N + 1).Field6);
2899 function Node7 (N : Node_Id) return Node_Id is
2901 pragma Assert (Nkind (N) in N_Entity);
2902 return Node_Id (Nodes.Table (N + 1).Field7);
2905 function Node8 (N : Node_Id) return Node_Id is
2907 pragma Assert (Nkind (N) in N_Entity);
2908 return Node_Id (Nodes.Table (N + 1).Field8);
2911 function Node9 (N : Node_Id) return Node_Id is
2913 pragma Assert (Nkind (N) in N_Entity);
2914 return Node_Id (Nodes.Table (N + 1).Field9);
2917 function Node10 (N : Node_Id) return Node_Id is
2919 pragma Assert (Nkind (N) in N_Entity);
2920 return Node_Id (Nodes.Table (N + 1).Field10);
2923 function Node11 (N : Node_Id) return Node_Id is
2925 pragma Assert (Nkind (N) in N_Entity);
2926 return Node_Id (Nodes.Table (N + 1).Field11);
2929 function Node12 (N : Node_Id) return Node_Id is
2931 pragma Assert (Nkind (N) in N_Entity);
2932 return Node_Id (Nodes.Table (N + 1).Field12);
2935 function Node13 (N : Node_Id) return Node_Id is
2937 pragma Assert (Nkind (N) in N_Entity);
2938 return Node_Id (Nodes.Table (N + 2).Field6);
2941 function Node14 (N : Node_Id) return Node_Id is
2943 pragma Assert (Nkind (N) in N_Entity);
2944 return Node_Id (Nodes.Table (N + 2).Field7);
2947 function Node15 (N : Node_Id) return Node_Id is
2949 pragma Assert (Nkind (N) in N_Entity);
2950 return Node_Id (Nodes.Table (N + 2).Field8);
2953 function Node16 (N : Node_Id) return Node_Id is
2955 pragma Assert (Nkind (N) in N_Entity);
2956 return Node_Id (Nodes.Table (N + 2).Field9);
2959 function Node17 (N : Node_Id) return Node_Id is
2961 pragma Assert (Nkind (N) in N_Entity);
2962 return Node_Id (Nodes.Table (N + 2).Field10);
2965 function Node18 (N : Node_Id) return Node_Id is
2967 pragma Assert (Nkind (N) in N_Entity);
2968 return Node_Id (Nodes.Table (N + 2).Field11);
2971 function Node19 (N : Node_Id) return Node_Id is
2973 pragma Assert (Nkind (N) in N_Entity);
2974 return Node_Id (Nodes.Table (N + 3).Field6);
2977 function Node20 (N : Node_Id) return Node_Id is
2979 pragma Assert (Nkind (N) in N_Entity);
2980 return Node_Id (Nodes.Table (N + 3).Field7);
2983 function Node21 (N : Node_Id) return Node_Id is
2985 pragma Assert (Nkind (N) in N_Entity);
2986 return Node_Id (Nodes.Table (N + 3).Field8);
2989 function Node22 (N : Node_Id) return Node_Id is
2991 pragma Assert (Nkind (N) in N_Entity);
2992 return Node_Id (Nodes.Table (N + 3).Field9);
2995 function Node23 (N : Node_Id) return Node_Id is
2997 pragma Assert (Nkind (N) in N_Entity);
2998 return Node_Id (Nodes.Table (N + 3).Field10);
3001 function Node24 (N : Node_Id) return Node_Id is
3003 pragma Assert (Nkind (N) in N_Entity);
3004 return Node_Id (Nodes.Table (N + 4).Field6);
3007 function Node25 (N : Node_Id) return Node_Id is
3009 pragma Assert (Nkind (N) in N_Entity);
3010 return Node_Id (Nodes.Table (N + 4).Field7);
3013 function Node26 (N : Node_Id) return Node_Id is
3015 pragma Assert (Nkind (N) in N_Entity);
3016 return Node_Id (Nodes.Table (N + 4).Field8);
3019 function Node27 (N : Node_Id) return Node_Id is
3021 pragma Assert (Nkind (N) in N_Entity);
3022 return Node_Id (Nodes.Table (N + 4).Field9);
3025 function Node28 (N : Node_Id) return Node_Id is
3027 pragma Assert (Nkind (N) in N_Entity);
3028 return Node_Id (Nodes.Table (N + 4).Field10);
3031 function List1 (N : Node_Id) return List_Id is
3033 pragma Assert (N in Nodes.First .. Nodes.Last);
3034 return List_Id (Nodes.Table (N).Field1);
3037 function List2 (N : Node_Id) return List_Id is
3039 pragma Assert (N in Nodes.First .. Nodes.Last);
3040 return List_Id (Nodes.Table (N).Field2);
3043 function List3 (N : Node_Id) return List_Id is
3045 pragma Assert (N in Nodes.First .. Nodes.Last);
3046 return List_Id (Nodes.Table (N).Field3);
3049 function List4 (N : Node_Id) return List_Id is
3051 pragma Assert (N in Nodes.First .. Nodes.Last);
3052 return List_Id (Nodes.Table (N).Field4);
3055 function List5 (N : Node_Id) return List_Id is
3057 pragma Assert (N in Nodes.First .. Nodes.Last);
3058 return List_Id (Nodes.Table (N).Field5);
3061 function List10 (N : Node_Id) return List_Id is
3063 pragma Assert (Nkind (N) in N_Entity);
3064 return List_Id (Nodes.Table (N + 1).Field10);
3067 function List14 (N : Node_Id) return List_Id is
3069 pragma Assert (Nkind (N) in N_Entity);
3070 return List_Id (Nodes.Table (N + 2).Field7);
3073 function Elist1 (N : Node_Id) return Elist_Id is
3074 pragma Assert (N in Nodes.First .. Nodes.Last);
3075 Value : constant Union_Id := Nodes.Table (N).Field1;
3080 return Elist_Id (Value);
3084 function Elist2 (N : Node_Id) return Elist_Id is
3085 pragma Assert (N in Nodes.First .. Nodes.Last);
3086 Value : constant Union_Id := Nodes.Table (N).Field2;
3091 return Elist_Id (Value);
3095 function Elist3 (N : Node_Id) return Elist_Id is
3096 pragma Assert (N in Nodes.First .. Nodes.Last);
3097 Value : constant Union_Id := Nodes.Table (N).Field3;
3102 return Elist_Id (Value);
3106 function Elist4 (N : Node_Id) return Elist_Id is
3107 pragma Assert (N in Nodes.First .. Nodes.Last);
3108 Value : constant Union_Id := Nodes.Table (N).Field4;
3113 return Elist_Id (Value);
3117 function Elist8 (N : Node_Id) return Elist_Id is
3118 pragma Assert (Nkind (N) in N_Entity);
3119 Value : constant Union_Id := Nodes.Table (N + 1).Field8;
3124 return Elist_Id (Value);
3128 function Elist13 (N : Node_Id) return Elist_Id is
3129 pragma Assert (Nkind (N) in N_Entity);
3130 Value : constant Union_Id := Nodes.Table (N + 2).Field6;
3135 return Elist_Id (Value);
3139 function Elist15 (N : Node_Id) return Elist_Id is
3140 pragma Assert (Nkind (N) in N_Entity);
3141 Value : constant Union_Id := Nodes.Table (N + 2).Field8;
3146 return Elist_Id (Value);
3150 function Elist16 (N : Node_Id) return Elist_Id is
3151 pragma Assert (Nkind (N) in N_Entity);
3152 Value : constant Union_Id := Nodes.Table (N + 2).Field9;
3157 return Elist_Id (Value);
3161 function Elist18 (N : Node_Id) return Elist_Id is
3162 pragma Assert (Nkind (N) in N_Entity);
3163 Value : constant Union_Id := Nodes.Table (N + 2).Field11;
3168 return Elist_Id (Value);
3172 function Elist21 (N : Node_Id) return Elist_Id is
3173 pragma Assert (Nkind (N) in N_Entity);
3174 Value : constant Union_Id := Nodes.Table (N + 3).Field8;
3179 return Elist_Id (Value);
3183 function Elist23 (N : Node_Id) return Elist_Id is
3184 pragma Assert (Nkind (N) in N_Entity);
3185 Value : constant Union_Id := Nodes.Table (N + 3).Field10;
3190 return Elist_Id (Value);
3194 function Elist25 (N : Node_Id) return Elist_Id is
3195 pragma Assert (Nkind (N) in N_Entity);
3196 Value : constant Union_Id := Nodes.Table (N + 4).Field7;
3201 return Elist_Id (Value);
3205 function Name1 (N : Node_Id) return Name_Id is
3207 pragma Assert (N in Nodes.First .. Nodes.Last);
3208 return Name_Id (Nodes.Table (N).Field1);
3211 function Name2 (N : Node_Id) return Name_Id is
3213 pragma Assert (N in Nodes.First .. Nodes.Last);
3214 return Name_Id (Nodes.Table (N).Field2);
3217 function Str3 (N : Node_Id) return String_Id is
3219 pragma Assert (N in Nodes.First .. Nodes.Last);
3220 return String_Id (Nodes.Table (N).Field3);
3223 function Uint2 (N : Node_Id) return Uint is
3224 pragma Assert (N in Nodes.First .. Nodes.Last);
3225 U : constant Union_Id := Nodes.Table (N).Field2;
3230 return From_Union (U);
3234 function Uint3 (N : Node_Id) return Uint is
3235 pragma Assert (N in Nodes.First .. Nodes.Last);
3236 U : constant Union_Id := Nodes.Table (N).Field3;
3241 return From_Union (U);
3245 function Uint4 (N : Node_Id) return Uint is
3246 pragma Assert (N in Nodes.First .. Nodes.Last);
3247 U : constant Union_Id := Nodes.Table (N).Field4;
3252 return From_Union (U);
3256 function Uint5 (N : Node_Id) return Uint is
3257 pragma Assert (N in Nodes.First .. Nodes.Last);
3258 U : constant Union_Id := Nodes.Table (N).Field5;
3263 return From_Union (U);
3267 function Uint8 (N : Node_Id) return Uint is
3268 pragma Assert (Nkind (N) in N_Entity);
3269 U : constant Union_Id := Nodes.Table (N + 1).Field8;
3274 return From_Union (U);
3278 function Uint9 (N : Node_Id) return Uint is
3279 pragma Assert (Nkind (N) in N_Entity);
3280 U : constant Union_Id := Nodes.Table (N + 1).Field9;
3285 return From_Union (U);
3289 function Uint10 (N : Node_Id) return Uint is
3290 pragma Assert (Nkind (N) in N_Entity);
3291 U : constant Union_Id := Nodes.Table (N + 1).Field10;
3296 return From_Union (U);
3300 function Uint11 (N : Node_Id) return Uint is
3301 pragma Assert (Nkind (N) in N_Entity);
3302 U : constant Union_Id := Nodes.Table (N + 1).Field11;
3307 return From_Union (U);
3311 function Uint12 (N : Node_Id) return Uint is
3312 pragma Assert (Nkind (N) in N_Entity);
3313 U : constant Union_Id := Nodes.Table (N + 1).Field12;
3318 return From_Union (U);
3322 function Uint13 (N : Node_Id) return Uint is
3323 pragma Assert (Nkind (N) in N_Entity);
3324 U : constant Union_Id := Nodes.Table (N + 2).Field6;
3329 return From_Union (U);
3333 function Uint14 (N : Node_Id) return Uint is
3334 pragma Assert (Nkind (N) in N_Entity);
3335 U : constant Union_Id := Nodes.Table (N + 2).Field7;
3340 return From_Union (U);
3344 function Uint15 (N : Node_Id) return Uint is
3345 pragma Assert (Nkind (N) in N_Entity);
3346 U : constant Union_Id := Nodes.Table (N + 2).Field8;
3351 return From_Union (U);
3355 function Uint16 (N : Node_Id) return Uint is
3356 pragma Assert (Nkind (N) in N_Entity);
3357 U : constant Union_Id := Nodes.Table (N + 2).Field9;
3362 return From_Union (U);
3366 function Uint17 (N : Node_Id) return Uint is
3367 pragma Assert (Nkind (N) in N_Entity);
3368 U : constant Union_Id := Nodes.Table (N + 2).Field10;
3373 return From_Union (U);
3377 function Uint22 (N : Node_Id) return Uint is
3378 pragma Assert (Nkind (N) in N_Entity);
3379 U : constant Union_Id := Nodes.Table (N + 3).Field9;
3384 return From_Union (U);
3388 function Ureal3 (N : Node_Id) return Ureal is
3390 pragma Assert (N in Nodes.First .. Nodes.Last);
3391 return From_Union (Nodes.Table (N).Field3);
3394 function Ureal18 (N : Node_Id) return Ureal is
3396 pragma Assert (Nkind (N) in N_Entity);
3397 return From_Union (Nodes.Table (N + 2).Field11);
3400 function Ureal21 (N : Node_Id) return Ureal is
3402 pragma Assert (Nkind (N) in N_Entity);
3403 return From_Union (Nodes.Table (N + 3).Field8);
3406 function Flag4 (N : Node_Id) return Boolean is
3408 pragma Assert (N in Nodes.First .. Nodes.Last);
3409 return Nodes.Table (N).Flag4;
3412 function Flag5 (N : Node_Id) return Boolean is
3414 pragma Assert (N in Nodes.First .. Nodes.Last);
3415 return Nodes.Table (N).Flag5;
3418 function Flag6 (N : Node_Id) return Boolean is
3420 pragma Assert (N in Nodes.First .. Nodes.Last);
3421 return Nodes.Table (N).Flag6;
3424 function Flag7 (N : Node_Id) return Boolean is
3426 pragma Assert (N in Nodes.First .. Nodes.Last);
3427 return Nodes.Table (N).Flag7;
3430 function Flag8 (N : Node_Id) return Boolean is
3432 pragma Assert (N in Nodes.First .. Nodes.Last);
3433 return Nodes.Table (N).Flag8;
3436 function Flag9 (N : Node_Id) return Boolean is
3438 pragma Assert (N in Nodes.First .. Nodes.Last);
3439 return Nodes.Table (N).Flag9;
3442 function Flag10 (N : Node_Id) return Boolean is
3444 pragma Assert (N in Nodes.First .. Nodes.Last);
3445 return Nodes.Table (N).Flag10;
3448 function Flag11 (N : Node_Id) return Boolean is
3450 pragma Assert (N in Nodes.First .. Nodes.Last);
3451 return Nodes.Table (N).Flag11;
3454 function Flag12 (N : Node_Id) return Boolean is
3456 pragma Assert (N in Nodes.First .. Nodes.Last);
3457 return Nodes.Table (N).Flag12;
3460 function Flag13 (N : Node_Id) return Boolean is
3462 pragma Assert (N in Nodes.First .. Nodes.Last);
3463 return Nodes.Table (N).Flag13;
3466 function Flag14 (N : Node_Id) return Boolean is
3468 pragma Assert (N in Nodes.First .. Nodes.Last);
3469 return Nodes.Table (N).Flag14;
3472 function Flag15 (N : Node_Id) return Boolean is
3474 pragma Assert (N in Nodes.First .. Nodes.Last);
3475 return Nodes.Table (N).Flag15;
3478 function Flag16 (N : Node_Id) return Boolean is
3480 pragma Assert (N in Nodes.First .. Nodes.Last);
3481 return Nodes.Table (N).Flag16;
3484 function Flag17 (N : Node_Id) return Boolean is
3486 pragma Assert (N in Nodes.First .. Nodes.Last);
3487 return Nodes.Table (N).Flag17;
3490 function Flag18 (N : Node_Id) return Boolean is
3492 pragma Assert (N in Nodes.First .. Nodes.Last);
3493 return Nodes.Table (N).Flag18;
3496 function Flag19 (N : Node_Id) return Boolean is
3498 pragma Assert (Nkind (N) in N_Entity);
3499 return Nodes.Table (N + 1).In_List;
3502 function Flag20 (N : Node_Id) return Boolean is
3504 pragma Assert (Nkind (N) in N_Entity);
3505 return Nodes.Table (N + 1).Unused_1;
3508 function Flag21 (N : Node_Id) return Boolean is
3510 pragma Assert (Nkind (N) in N_Entity);
3511 return Nodes.Table (N + 1).Rewrite_Ins;
3514 function Flag22 (N : Node_Id) return Boolean is
3516 pragma Assert (Nkind (N) in N_Entity);
3517 return Nodes.Table (N + 1).Analyzed;
3520 function Flag23 (N : Node_Id) return Boolean is
3522 pragma Assert (Nkind (N) in N_Entity);
3523 return Nodes.Table (N + 1).Comes_From_Source;
3526 function Flag24 (N : Node_Id) return Boolean is
3528 pragma Assert (Nkind (N) in N_Entity);
3529 return Nodes.Table (N + 1).Error_Posted;
3532 function Flag25 (N : Node_Id) return Boolean is
3534 pragma Assert (Nkind (N) in N_Entity);
3535 return Nodes.Table (N + 1).Flag4;
3538 function Flag26 (N : Node_Id) return Boolean is
3540 pragma Assert (Nkind (N) in N_Entity);
3541 return Nodes.Table (N + 1).Flag5;
3544 function Flag27 (N : Node_Id) return Boolean is
3546 pragma Assert (Nkind (N) in N_Entity);
3547 return Nodes.Table (N + 1).Flag6;
3550 function Flag28 (N : Node_Id) return Boolean is
3552 pragma Assert (Nkind (N) in N_Entity);
3553 return Nodes.Table (N + 1).Flag7;
3556 function Flag29 (N : Node_Id) return Boolean is
3558 pragma Assert (Nkind (N) in N_Entity);
3559 return Nodes.Table (N + 1).Flag8;
3562 function Flag30 (N : Node_Id) return Boolean is
3564 pragma Assert (Nkind (N) in N_Entity);
3565 return Nodes.Table (N + 1).Flag9;
3568 function Flag31 (N : Node_Id) return Boolean is
3570 pragma Assert (Nkind (N) in N_Entity);
3571 return Nodes.Table (N + 1).Flag10;
3574 function Flag32 (N : Node_Id) return Boolean is
3576 pragma Assert (Nkind (N) in N_Entity);
3577 return Nodes.Table (N + 1).Flag11;
3580 function Flag33 (N : Node_Id) return Boolean is
3582 pragma Assert (Nkind (N) in N_Entity);
3583 return Nodes.Table (N + 1).Flag12;
3586 function Flag34 (N : Node_Id) return Boolean is
3588 pragma Assert (Nkind (N) in N_Entity);
3589 return Nodes.Table (N + 1).Flag13;
3592 function Flag35 (N : Node_Id) return Boolean is
3594 pragma Assert (Nkind (N) in N_Entity);
3595 return Nodes.Table (N + 1).Flag14;
3598 function Flag36 (N : Node_Id) return Boolean is
3600 pragma Assert (Nkind (N) in N_Entity);
3601 return Nodes.Table (N + 1).Flag15;
3604 function Flag37 (N : Node_Id) return Boolean is
3606 pragma Assert (Nkind (N) in N_Entity);
3607 return Nodes.Table (N + 1).Flag16;
3610 function Flag38 (N : Node_Id) return Boolean is
3612 pragma Assert (Nkind (N) in N_Entity);
3613 return Nodes.Table (N + 1).Flag17;
3616 function Flag39 (N : Node_Id) return Boolean is
3618 pragma Assert (Nkind (N) in N_Entity);
3619 return Nodes.Table (N + 1).Flag18;
3622 function Flag40 (N : Node_Id) return Boolean is
3624 pragma Assert (Nkind (N) in N_Entity);
3625 return Nodes.Table (N + 2).In_List;
3628 function Flag41 (N : Node_Id) return Boolean is
3630 pragma Assert (Nkind (N) in N_Entity);
3631 return Nodes.Table (N + 2).Unused_1;
3634 function Flag42 (N : Node_Id) return Boolean is
3636 pragma Assert (Nkind (N) in N_Entity);
3637 return Nodes.Table (N + 2).Rewrite_Ins;
3640 function Flag43 (N : Node_Id) return Boolean is
3642 pragma Assert (Nkind (N) in N_Entity);
3643 return Nodes.Table (N + 2).Analyzed;
3646 function Flag44 (N : Node_Id) return Boolean is
3648 pragma Assert (Nkind (N) in N_Entity);
3649 return Nodes.Table (N + 2).Comes_From_Source;
3652 function Flag45 (N : Node_Id) return Boolean is
3654 pragma Assert (Nkind (N) in N_Entity);
3655 return Nodes.Table (N + 2).Error_Posted;
3658 function Flag46 (N : Node_Id) return Boolean is
3660 pragma Assert (Nkind (N) in N_Entity);
3661 return Nodes.Table (N + 2).Flag4;
3664 function Flag47 (N : Node_Id) return Boolean is
3666 pragma Assert (Nkind (N) in N_Entity);
3667 return Nodes.Table (N + 2).Flag5;
3670 function Flag48 (N : Node_Id) return Boolean is
3672 pragma Assert (Nkind (N) in N_Entity);
3673 return Nodes.Table (N + 2).Flag6;
3676 function Flag49 (N : Node_Id) return Boolean is
3678 pragma Assert (Nkind (N) in N_Entity);
3679 return Nodes.Table (N + 2).Flag7;
3682 function Flag50 (N : Node_Id) return Boolean is
3684 pragma Assert (Nkind (N) in N_Entity);
3685 return Nodes.Table (N + 2).Flag8;
3688 function Flag51 (N : Node_Id) return Boolean is
3690 pragma Assert (Nkind (N) in N_Entity);
3691 return Nodes.Table (N + 2).Flag9;
3694 function Flag52 (N : Node_Id) return Boolean is
3696 pragma Assert (Nkind (N) in N_Entity);
3697 return Nodes.Table (N + 2).Flag10;
3700 function Flag53 (N : Node_Id) return Boolean is
3702 pragma Assert (Nkind (N) in N_Entity);
3703 return Nodes.Table (N + 2).Flag11;
3706 function Flag54 (N : Node_Id) return Boolean is
3708 pragma Assert (Nkind (N) in N_Entity);
3709 return Nodes.Table (N + 2).Flag12;
3712 function Flag55 (N : Node_Id) return Boolean is
3714 pragma Assert (Nkind (N) in N_Entity);
3715 return Nodes.Table (N + 2).Flag13;
3718 function Flag56 (N : Node_Id) return Boolean is
3720 pragma Assert (Nkind (N) in N_Entity);
3721 return Nodes.Table (N + 2).Flag14;
3724 function Flag57 (N : Node_Id) return Boolean is
3726 pragma Assert (Nkind (N) in N_Entity);
3727 return Nodes.Table (N + 2).Flag15;
3730 function Flag58 (N : Node_Id) return Boolean is
3732 pragma Assert (Nkind (N) in N_Entity);
3733 return Nodes.Table (N + 2).Flag16;
3736 function Flag59 (N : Node_Id) return Boolean is
3738 pragma Assert (Nkind (N) in N_Entity);
3739 return Nodes.Table (N + 2).Flag17;
3742 function Flag60 (N : Node_Id) return Boolean is
3744 pragma Assert (Nkind (N) in N_Entity);
3745 return Nodes.Table (N + 2).Flag18;
3748 function Flag61 (N : Node_Id) return Boolean is
3750 pragma Assert (Nkind (N) in N_Entity);
3751 return Nodes.Table (N + 1).Pflag1;
3754 function Flag62 (N : Node_Id) return Boolean is
3756 pragma Assert (Nkind (N) in N_Entity);
3757 return Nodes.Table (N + 1).Pflag2;
3760 function Flag63 (N : Node_Id) return Boolean is
3762 pragma Assert (Nkind (N) in N_Entity);
3763 return Nodes.Table (N + 2).Pflag1;
3766 function Flag64 (N : Node_Id) return Boolean is
3768 pragma Assert (Nkind (N) in N_Entity);
3769 return Nodes.Table (N + 2).Pflag2;
3772 function Flag65 (N : Node_Id) return Boolean is
3774 pragma Assert (Nkind (N) in N_Entity);
3775 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag65;
3778 function Flag66 (N : Node_Id) return Boolean is
3780 pragma Assert (Nkind (N) in N_Entity);
3781 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag66;
3784 function Flag67 (N : Node_Id) return Boolean is
3786 pragma Assert (Nkind (N) in N_Entity);
3787 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag67;
3790 function Flag68 (N : Node_Id) return Boolean is
3792 pragma Assert (Nkind (N) in N_Entity);
3793 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag68;
3796 function Flag69 (N : Node_Id) return Boolean is
3798 pragma Assert (Nkind (N) in N_Entity);
3799 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag69;
3802 function Flag70 (N : Node_Id) return Boolean is
3804 pragma Assert (Nkind (N) in N_Entity);
3805 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag70;
3808 function Flag71 (N : Node_Id) return Boolean is
3810 pragma Assert (Nkind (N) in N_Entity);
3811 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag71;
3814 function Flag72 (N : Node_Id) return Boolean is
3816 pragma Assert (Nkind (N) in N_Entity);
3817 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag72;
3820 function Flag73 (N : Node_Id) return Boolean is
3822 pragma Assert (Nkind (N) in N_Entity);
3823 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag73;
3826 function Flag74 (N : Node_Id) return Boolean is
3828 pragma Assert (Nkind (N) in N_Entity);
3829 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag74;
3832 function Flag75 (N : Node_Id) return Boolean is
3834 pragma Assert (Nkind (N) in N_Entity);
3835 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag75;
3838 function Flag76 (N : Node_Id) return Boolean is
3840 pragma Assert (Nkind (N) in N_Entity);
3841 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag76;
3844 function Flag77 (N : Node_Id) return Boolean is
3846 pragma Assert (Nkind (N) in N_Entity);
3847 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag77;
3850 function Flag78 (N : Node_Id) return Boolean is
3852 pragma Assert (Nkind (N) in N_Entity);
3853 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag78;
3856 function Flag79 (N : Node_Id) return Boolean is
3858 pragma Assert (Nkind (N) in N_Entity);
3859 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag79;
3862 function Flag80 (N : Node_Id) return Boolean is
3864 pragma Assert (Nkind (N) in N_Entity);
3865 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag80;
3868 function Flag81 (N : Node_Id) return Boolean is
3870 pragma Assert (Nkind (N) in N_Entity);
3871 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag81;
3874 function Flag82 (N : Node_Id) return Boolean is
3876 pragma Assert (Nkind (N) in N_Entity);
3877 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag82;
3880 function Flag83 (N : Node_Id) return Boolean is
3882 pragma Assert (Nkind (N) in N_Entity);
3883 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag83;
3886 function Flag84 (N : Node_Id) return Boolean is
3888 pragma Assert (Nkind (N) in N_Entity);
3889 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag84;
3892 function Flag85 (N : Node_Id) return Boolean is
3894 pragma Assert (Nkind (N) in N_Entity);
3895 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag85;
3898 function Flag86 (N : Node_Id) return Boolean is
3900 pragma Assert (Nkind (N) in N_Entity);
3901 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag86;
3904 function Flag87 (N : Node_Id) return Boolean is
3906 pragma Assert (Nkind (N) in N_Entity);
3907 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag87;
3910 function Flag88 (N : Node_Id) return Boolean is
3912 pragma Assert (Nkind (N) in N_Entity);
3913 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag88;
3916 function Flag89 (N : Node_Id) return Boolean is
3918 pragma Assert (Nkind (N) in N_Entity);
3919 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag89;
3922 function Flag90 (N : Node_Id) return Boolean is
3924 pragma Assert (Nkind (N) in N_Entity);
3925 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag90;
3928 function Flag91 (N : Node_Id) return Boolean is
3930 pragma Assert (Nkind (N) in N_Entity);
3931 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag91;
3934 function Flag92 (N : Node_Id) return Boolean is
3936 pragma Assert (Nkind (N) in N_Entity);
3937 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag92;
3940 function Flag93 (N : Node_Id) return Boolean is
3942 pragma Assert (Nkind (N) in N_Entity);
3943 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag93;
3946 function Flag94 (N : Node_Id) return Boolean is
3948 pragma Assert (Nkind (N) in N_Entity);
3949 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag94;
3952 function Flag95 (N : Node_Id) return Boolean is
3954 pragma Assert (Nkind (N) in N_Entity);
3955 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag95;
3958 function Flag96 (N : Node_Id) return Boolean is
3960 pragma Assert (Nkind (N) in N_Entity);
3961 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag96;
3964 function Flag97 (N : Node_Id) return Boolean is
3966 pragma Assert (Nkind (N) in N_Entity);
3967 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag97;
3970 function Flag98 (N : Node_Id) return Boolean is
3972 pragma Assert (Nkind (N) in N_Entity);
3973 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag98;
3976 function Flag99 (N : Node_Id) return Boolean is
3978 pragma Assert (Nkind (N) in N_Entity);
3979 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag99;
3982 function Flag100 (N : Node_Id) return Boolean is
3984 pragma Assert (Nkind (N) in N_Entity);
3985 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag100;
3988 function Flag101 (N : Node_Id) return Boolean is
3990 pragma Assert (Nkind (N) in N_Entity);
3991 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag101;
3994 function Flag102 (N : Node_Id) return Boolean is
3996 pragma Assert (Nkind (N) in N_Entity);
3997 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag102;
4000 function Flag103 (N : Node_Id) return Boolean is
4002 pragma Assert (Nkind (N) in N_Entity);
4003 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag103;
4006 function Flag104 (N : Node_Id) return Boolean is
4008 pragma Assert (Nkind (N) in N_Entity);
4009 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag104;
4012 function Flag105 (N : Node_Id) return Boolean is
4014 pragma Assert (Nkind (N) in N_Entity);
4015 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag105;
4018 function Flag106 (N : Node_Id) return Boolean is
4020 pragma Assert (Nkind (N) in N_Entity);
4021 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag106;
4024 function Flag107 (N : Node_Id) return Boolean is
4026 pragma Assert (Nkind (N) in N_Entity);
4027 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag107;
4030 function Flag108 (N : Node_Id) return Boolean is
4032 pragma Assert (Nkind (N) in N_Entity);
4033 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag108;
4036 function Flag109 (N : Node_Id) return Boolean is
4038 pragma Assert (Nkind (N) in N_Entity);
4039 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag109;
4042 function Flag110 (N : Node_Id) return Boolean is
4044 pragma Assert (Nkind (N) in N_Entity);
4045 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag110;
4048 function Flag111 (N : Node_Id) return Boolean is
4050 pragma Assert (Nkind (N) in N_Entity);
4051 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag111;
4054 function Flag112 (N : Node_Id) return Boolean is
4056 pragma Assert (Nkind (N) in N_Entity);
4057 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag112;
4060 function Flag113 (N : Node_Id) return Boolean is
4062 pragma Assert (Nkind (N) in N_Entity);
4063 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag113;
4066 function Flag114 (N : Node_Id) return Boolean is
4068 pragma Assert (Nkind (N) in N_Entity);
4069 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag114;
4072 function Flag115 (N : Node_Id) return Boolean is
4074 pragma Assert (Nkind (N) in N_Entity);
4075 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag115;
4078 function Flag116 (N : Node_Id) return Boolean is
4080 pragma Assert (Nkind (N) in N_Entity);
4081 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag116;
4084 function Flag117 (N : Node_Id) return Boolean is
4086 pragma Assert (Nkind (N) in N_Entity);
4087 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag117;
4090 function Flag118 (N : Node_Id) return Boolean is
4092 pragma Assert (Nkind (N) in N_Entity);
4093 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag118;
4096 function Flag119 (N : Node_Id) return Boolean is
4098 pragma Assert (Nkind (N) in N_Entity);
4099 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag119;
4102 function Flag120 (N : Node_Id) return Boolean is
4104 pragma Assert (Nkind (N) in N_Entity);
4105 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag120;
4108 function Flag121 (N : Node_Id) return Boolean is
4110 pragma Assert (Nkind (N) in N_Entity);
4111 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag121;
4114 function Flag122 (N : Node_Id) return Boolean is
4116 pragma Assert (Nkind (N) in N_Entity);
4117 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag122;
4120 function Flag123 (N : Node_Id) return Boolean is
4122 pragma Assert (Nkind (N) in N_Entity);
4123 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag123;
4126 function Flag124 (N : Node_Id) return Boolean is
4128 pragma Assert (Nkind (N) in N_Entity);
4129 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag124;
4132 function Flag125 (N : Node_Id) return Boolean is
4134 pragma Assert (Nkind (N) in N_Entity);
4135 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag125;
4138 function Flag126 (N : Node_Id) return Boolean is
4140 pragma Assert (Nkind (N) in N_Entity);
4141 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag126;
4144 function Flag127 (N : Node_Id) return Boolean is
4146 pragma Assert (Nkind (N) in N_Entity);
4147 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag127;
4150 function Flag128 (N : Node_Id) return Boolean is
4152 pragma Assert (Nkind (N) in N_Entity);
4153 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag128;
4156 function Flag129 (N : Node_Id) return Boolean is
4158 pragma Assert (Nkind (N) in N_Entity);
4159 return Nodes.Table (N + 3).In_List;
4162 function Flag130 (N : Node_Id) return Boolean is
4164 pragma Assert (Nkind (N) in N_Entity);
4165 return Nodes.Table (N + 3).Unused_1;
4168 function Flag131 (N : Node_Id) return Boolean is
4170 pragma Assert (Nkind (N) in N_Entity);
4171 return Nodes.Table (N + 3).Rewrite_Ins;
4174 function Flag132 (N : Node_Id) return Boolean is
4176 pragma Assert (Nkind (N) in N_Entity);
4177 return Nodes.Table (N + 3).Analyzed;
4180 function Flag133 (N : Node_Id) return Boolean is
4182 pragma Assert (Nkind (N) in N_Entity);
4183 return Nodes.Table (N + 3).Comes_From_Source;
4186 function Flag134 (N : Node_Id) return Boolean is
4188 pragma Assert (Nkind (N) in N_Entity);
4189 return Nodes.Table (N + 3).Error_Posted;
4192 function Flag135 (N : Node_Id) return Boolean is
4194 pragma Assert (Nkind (N) in N_Entity);
4195 return Nodes.Table (N + 3).Flag4;
4198 function Flag136 (N : Node_Id) return Boolean is
4200 pragma Assert (Nkind (N) in N_Entity);
4201 return Nodes.Table (N + 3).Flag5;
4204 function Flag137 (N : Node_Id) return Boolean is
4206 pragma Assert (Nkind (N) in N_Entity);
4207 return Nodes.Table (N + 3).Flag6;
4210 function Flag138 (N : Node_Id) return Boolean is
4212 pragma Assert (Nkind (N) in N_Entity);
4213 return Nodes.Table (N + 3).Flag7;
4216 function Flag139 (N : Node_Id) return Boolean is
4218 pragma Assert (Nkind (N) in N_Entity);
4219 return Nodes.Table (N + 3).Flag8;
4222 function Flag140 (N : Node_Id) return Boolean is
4224 pragma Assert (Nkind (N) in N_Entity);
4225 return Nodes.Table (N + 3).Flag9;
4228 function Flag141 (N : Node_Id) return Boolean is
4230 pragma Assert (Nkind (N) in N_Entity);
4231 return Nodes.Table (N + 3).Flag10;
4234 function Flag142 (N : Node_Id) return Boolean is
4236 pragma Assert (Nkind (N) in N_Entity);
4237 return Nodes.Table (N + 3).Flag11;
4240 function Flag143 (N : Node_Id) return Boolean is
4242 pragma Assert (Nkind (N) in N_Entity);
4243 return Nodes.Table (N + 3).Flag12;
4246 function Flag144 (N : Node_Id) return Boolean is
4248 pragma Assert (Nkind (N) in N_Entity);
4249 return Nodes.Table (N + 3).Flag13;
4252 function Flag145 (N : Node_Id) return Boolean is
4254 pragma Assert (Nkind (N) in N_Entity);
4255 return Nodes.Table (N + 3).Flag14;
4258 function Flag146 (N : Node_Id) return Boolean is
4260 pragma Assert (Nkind (N) in N_Entity);
4261 return Nodes.Table (N + 3).Flag15;
4264 function Flag147 (N : Node_Id) return Boolean is
4266 pragma Assert (Nkind (N) in N_Entity);
4267 return Nodes.Table (N + 3).Flag16;
4270 function Flag148 (N : Node_Id) return Boolean is
4272 pragma Assert (Nkind (N) in N_Entity);
4273 return Nodes.Table (N + 3).Flag17;
4276 function Flag149 (N : Node_Id) return Boolean is
4278 pragma Assert (Nkind (N) in N_Entity);
4279 return Nodes.Table (N + 3).Flag18;
4282 function Flag150 (N : Node_Id) return Boolean is
4284 pragma Assert (Nkind (N) in N_Entity);
4285 return Nodes.Table (N + 3).Pflag1;
4288 function Flag151 (N : Node_Id) return Boolean is
4290 pragma Assert (Nkind (N) in N_Entity);
4291 return Nodes.Table (N + 3).Pflag2;
4294 function Flag152 (N : Node_Id) return Boolean is
4296 pragma Assert (Nkind (N) in N_Entity);
4297 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag152;
4300 function Flag153 (N : Node_Id) return Boolean is
4302 pragma Assert (Nkind (N) in N_Entity);
4303 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag153;
4306 function Flag154 (N : Node_Id) return Boolean is
4308 pragma Assert (Nkind (N) in N_Entity);
4309 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag154;
4312 function Flag155 (N : Node_Id) return Boolean is
4314 pragma Assert (Nkind (N) in N_Entity);
4315 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag155;
4318 function Flag156 (N : Node_Id) return Boolean is
4320 pragma Assert (Nkind (N) in N_Entity);
4321 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag156;
4324 function Flag157 (N : Node_Id) return Boolean is
4326 pragma Assert (Nkind (N) in N_Entity);
4327 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag157;
4330 function Flag158 (N : Node_Id) return Boolean is
4332 pragma Assert (Nkind (N) in N_Entity);
4333 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag158;
4336 function Flag159 (N : Node_Id) return Boolean is
4338 pragma Assert (Nkind (N) in N_Entity);
4339 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag159;
4342 function Flag160 (N : Node_Id) return Boolean is
4344 pragma Assert (Nkind (N) in N_Entity);
4345 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag160;
4348 function Flag161 (N : Node_Id) return Boolean is
4350 pragma Assert (Nkind (N) in N_Entity);
4351 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag161;
4354 function Flag162 (N : Node_Id) return Boolean is
4356 pragma Assert (Nkind (N) in N_Entity);
4357 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag162;
4360 function Flag163 (N : Node_Id) return Boolean is
4362 pragma Assert (Nkind (N) in N_Entity);
4363 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag163;
4366 function Flag164 (N : Node_Id) return Boolean is
4368 pragma Assert (Nkind (N) in N_Entity);
4369 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag164;
4372 function Flag165 (N : Node_Id) return Boolean is
4374 pragma Assert (Nkind (N) in N_Entity);
4375 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag165;
4378 function Flag166 (N : Node_Id) return Boolean is
4380 pragma Assert (Nkind (N) in N_Entity);
4381 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag166;
4384 function Flag167 (N : Node_Id) return Boolean is
4386 pragma Assert (Nkind (N) in N_Entity);
4387 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag167;
4390 function Flag168 (N : Node_Id) return Boolean is
4392 pragma Assert (Nkind (N) in N_Entity);
4393 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag168;
4396 function Flag169 (N : Node_Id) return Boolean is
4398 pragma Assert (Nkind (N) in N_Entity);
4399 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag169;
4402 function Flag170 (N : Node_Id) return Boolean is
4404 pragma Assert (Nkind (N) in N_Entity);
4405 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag170;
4408 function Flag171 (N : Node_Id) return Boolean is
4410 pragma Assert (Nkind (N) in N_Entity);
4411 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag171;
4414 function Flag172 (N : Node_Id) return Boolean is
4416 pragma Assert (Nkind (N) in N_Entity);
4417 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag172;
4420 function Flag173 (N : Node_Id) return Boolean is
4422 pragma Assert (Nkind (N) in N_Entity);
4423 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag173;
4426 function Flag174 (N : Node_Id) return Boolean is
4428 pragma Assert (Nkind (N) in N_Entity);
4429 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag174;
4432 function Flag175 (N : Node_Id) return Boolean is
4434 pragma Assert (Nkind (N) in N_Entity);
4435 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag175;
4438 function Flag176 (N : Node_Id) return Boolean is
4440 pragma Assert (Nkind (N) in N_Entity);
4441 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag176;
4444 function Flag177 (N : Node_Id) return Boolean is
4446 pragma Assert (Nkind (N) in N_Entity);
4447 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag177;
4450 function Flag178 (N : Node_Id) return Boolean is
4452 pragma Assert (Nkind (N) in N_Entity);
4453 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag178;
4456 function Flag179 (N : Node_Id) return Boolean is
4458 pragma Assert (Nkind (N) in N_Entity);
4459 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag179;
4462 function Flag180 (N : Node_Id) return Boolean is
4464 pragma Assert (Nkind (N) in N_Entity);
4465 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag180;
4468 function Flag181 (N : Node_Id) return Boolean is
4470 pragma Assert (Nkind (N) in N_Entity);
4471 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag181;
4474 function Flag182 (N : Node_Id) return Boolean is
4476 pragma Assert (Nkind (N) in N_Entity);
4477 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag182;
4480 function Flag183 (N : Node_Id) return Boolean is
4482 pragma Assert (Nkind (N) in N_Entity);
4483 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag183;
4486 function Flag184 (N : Node_Id) return Boolean is
4488 pragma Assert (Nkind (N) in N_Entity);
4489 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag184;
4492 function Flag185 (N : Node_Id) return Boolean is
4494 pragma Assert (Nkind (N) in N_Entity);
4495 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag185;
4498 function Flag186 (N : Node_Id) return Boolean is
4500 pragma Assert (Nkind (N) in N_Entity);
4501 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag186;
4504 function Flag187 (N : Node_Id) return Boolean is
4506 pragma Assert (Nkind (N) in N_Entity);
4507 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag187;
4510 function Flag188 (N : Node_Id) return Boolean is
4512 pragma Assert (Nkind (N) in N_Entity);
4513 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag188;
4516 function Flag189 (N : Node_Id) return Boolean is
4518 pragma Assert (Nkind (N) in N_Entity);
4519 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag189;
4522 function Flag190 (N : Node_Id) return Boolean is
4524 pragma Assert (Nkind (N) in N_Entity);
4525 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag190;
4528 function Flag191 (N : Node_Id) return Boolean is
4530 pragma Assert (Nkind (N) in N_Entity);
4531 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag191;
4534 function Flag192 (N : Node_Id) return Boolean is
4536 pragma Assert (Nkind (N) in N_Entity);
4537 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag192;
4540 function Flag193 (N : Node_Id) return Boolean is
4542 pragma Assert (Nkind (N) in N_Entity);
4543 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag193;
4546 function Flag194 (N : Node_Id) return Boolean is
4548 pragma Assert (Nkind (N) in N_Entity);
4549 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag194;
4552 function Flag195 (N : Node_Id) return Boolean is
4554 pragma Assert (Nkind (N) in N_Entity);
4555 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag195;
4558 function Flag196 (N : Node_Id) return Boolean is
4560 pragma Assert (Nkind (N) in N_Entity);
4561 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag196;
4564 function Flag197 (N : Node_Id) return Boolean is
4566 pragma Assert (Nkind (N) in N_Entity);
4567 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag197;
4570 function Flag198 (N : Node_Id) return Boolean is
4572 pragma Assert (Nkind (N) in N_Entity);
4573 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag198;
4576 function Flag199 (N : Node_Id) return Boolean is
4578 pragma Assert (Nkind (N) in N_Entity);
4579 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag199;
4582 function Flag200 (N : Node_Id) return Boolean is
4584 pragma Assert (Nkind (N) in N_Entity);
4585 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag200;
4588 function Flag201 (N : Node_Id) return Boolean is
4590 pragma Assert (Nkind (N) in N_Entity);
4591 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag201;
4594 function Flag202 (N : Node_Id) return Boolean is
4596 pragma Assert (Nkind (N) in N_Entity);
4597 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag202;
4600 function Flag203 (N : Node_Id) return Boolean is
4602 pragma Assert (Nkind (N) in N_Entity);
4603 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag203;
4606 function Flag204 (N : Node_Id) return Boolean is
4608 pragma Assert (Nkind (N) in N_Entity);
4609 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag204;
4612 function Flag205 (N : Node_Id) return Boolean is
4614 pragma Assert (Nkind (N) in N_Entity);
4615 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag205;
4618 function Flag206 (N : Node_Id) return Boolean is
4620 pragma Assert (Nkind (N) in N_Entity);
4621 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag206;
4624 function Flag207 (N : Node_Id) return Boolean is
4626 pragma Assert (Nkind (N) in N_Entity);
4627 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag207;
4630 function Flag208 (N : Node_Id) return Boolean is
4632 pragma Assert (Nkind (N) in N_Entity);
4633 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag208;
4636 function Flag209 (N : Node_Id) return Boolean is
4638 pragma Assert (Nkind (N) in N_Entity);
4639 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag209;
4642 function Flag210 (N : Node_Id) return Boolean is
4644 pragma Assert (Nkind (N) in N_Entity);
4645 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag210;
4648 function Flag211 (N : Node_Id) return Boolean is
4650 pragma Assert (Nkind (N) in N_Entity);
4651 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag211;
4654 function Flag212 (N : Node_Id) return Boolean is
4656 pragma Assert (Nkind (N) in N_Entity);
4657 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag212;
4660 function Flag213 (N : Node_Id) return Boolean is
4662 pragma Assert (Nkind (N) in N_Entity);
4663 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag213;
4666 function Flag214 (N : Node_Id) return Boolean is
4668 pragma Assert (Nkind (N) in N_Entity);
4669 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag214;
4672 function Flag215 (N : Node_Id) return Boolean is
4674 pragma Assert (Nkind (N) in N_Entity);
4675 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag215;
4678 function Flag216 (N : Node_Id) return Boolean is
4680 pragma Assert (Nkind (N) in N_Entity);
4681 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag216;
4684 function Flag217 (N : Node_Id) return Boolean is
4686 pragma Assert (Nkind (N) in N_Entity);
4687 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag217;
4690 function Flag218 (N : Node_Id) return Boolean is
4692 pragma Assert (Nkind (N) in N_Entity);
4693 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag218;
4696 function Flag219 (N : Node_Id) return Boolean is
4698 pragma Assert (Nkind (N) in N_Entity);
4699 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag219;
4702 function Flag220 (N : Node_Id) return Boolean is
4704 pragma Assert (Nkind (N) in N_Entity);
4705 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag220;
4708 function Flag221 (N : Node_Id) return Boolean is
4710 pragma Assert (Nkind (N) in N_Entity);
4711 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag221;
4714 function Flag222 (N : Node_Id) return Boolean is
4716 pragma Assert (Nkind (N) in N_Entity);
4717 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag222;
4720 function Flag223 (N : Node_Id) return Boolean is
4722 pragma Assert (Nkind (N) in N_Entity);
4723 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag223;
4726 function Flag224 (N : Node_Id) return Boolean is
4728 pragma Assert (Nkind (N) in N_Entity);
4729 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag224;
4732 function Flag225 (N : Node_Id) return Boolean is
4734 pragma Assert (Nkind (N) in N_Entity);
4735 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag225;
4738 function Flag226 (N : Node_Id) return Boolean is
4740 pragma Assert (Nkind (N) in N_Entity);
4741 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag226;
4744 function Flag227 (N : Node_Id) return Boolean is
4746 pragma Assert (Nkind (N) in N_Entity);
4747 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag227;
4750 function Flag228 (N : Node_Id) return Boolean is
4752 pragma Assert (Nkind (N) in N_Entity);
4753 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag228;
4756 function Flag229 (N : Node_Id) return Boolean is
4758 pragma Assert (Nkind (N) in N_Entity);
4759 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag229;
4762 function Flag230 (N : Node_Id) return Boolean is
4764 pragma Assert (Nkind (N) in N_Entity);
4765 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag230;
4768 procedure Set_Nkind (N : Node_Id; Val : Node_Kind) is
4770 pragma Assert (N in Nodes.First .. Nodes.Last);
4771 Nodes.Table (N).Nkind := Val;
4774 procedure Set_Field1 (N : Node_Id; Val : Union_Id) is
4776 pragma Assert (N in Nodes.First .. Nodes.Last);
4777 Nodes.Table (N).Field1 := Val;
4780 procedure Set_Field2 (N : Node_Id; Val : Union_Id) is
4782 pragma Assert (N in Nodes.First .. Nodes.Last);
4783 Nodes.Table (N).Field2 := Val;
4786 procedure Set_Field3 (N : Node_Id; Val : Union_Id) is
4788 pragma Assert (N in Nodes.First .. Nodes.Last);
4789 Nodes.Table (N).Field3 := Val;
4792 procedure Set_Field4 (N : Node_Id; Val : Union_Id) is
4794 pragma Assert (N in Nodes.First .. Nodes.Last);
4795 Nodes.Table (N).Field4 := Val;
4798 procedure Set_Field5 (N : Node_Id; Val : Union_Id) is
4800 pragma Assert (N in Nodes.First .. Nodes.Last);
4801 Nodes.Table (N).Field5 := Val;
4804 procedure Set_Field6 (N : Node_Id; Val : Union_Id) is
4806 pragma Assert (Nkind (N) in N_Entity);
4807 Nodes.Table (N + 1).Field6 := Val;
4810 procedure Set_Field7 (N : Node_Id; Val : Union_Id) is
4812 pragma Assert (Nkind (N) in N_Entity);
4813 Nodes.Table (N + 1).Field7 := Val;
4816 procedure Set_Field8 (N : Node_Id; Val : Union_Id) is
4818 pragma Assert (Nkind (N) in N_Entity);
4819 Nodes.Table (N + 1).Field8 := Val;
4822 procedure Set_Field9 (N : Node_Id; Val : Union_Id) is
4824 pragma Assert (Nkind (N) in N_Entity);
4825 Nodes.Table (N + 1).Field9 := Val;
4828 procedure Set_Field10 (N : Node_Id; Val : Union_Id) is
4830 pragma Assert (Nkind (N) in N_Entity);
4831 Nodes.Table (N + 1).Field10 := Val;
4834 procedure Set_Field11 (N : Node_Id; Val : Union_Id) is
4836 pragma Assert (Nkind (N) in N_Entity);
4837 Nodes.Table (N + 1).Field11 := Val;
4840 procedure Set_Field12 (N : Node_Id; Val : Union_Id) is
4842 pragma Assert (Nkind (N) in N_Entity);
4843 Nodes.Table (N + 1).Field12 := Val;
4846 procedure Set_Field13 (N : Node_Id; Val : Union_Id) is
4848 pragma Assert (Nkind (N) in N_Entity);
4849 Nodes.Table (N + 2).Field6 := Val;
4852 procedure Set_Field14 (N : Node_Id; Val : Union_Id) is
4854 pragma Assert (Nkind (N) in N_Entity);
4855 Nodes.Table (N + 2).Field7 := Val;
4858 procedure Set_Field15 (N : Node_Id; Val : Union_Id) is
4860 pragma Assert (Nkind (N) in N_Entity);
4861 Nodes.Table (N + 2).Field8 := Val;
4864 procedure Set_Field16 (N : Node_Id; Val : Union_Id) is
4866 pragma Assert (Nkind (N) in N_Entity);
4867 Nodes.Table (N + 2).Field9 := Val;
4870 procedure Set_Field17 (N : Node_Id; Val : Union_Id) is
4872 pragma Assert (Nkind (N) in N_Entity);
4873 Nodes.Table (N + 2).Field10 := Val;
4876 procedure Set_Field18 (N : Node_Id; Val : Union_Id) is
4878 pragma Assert (Nkind (N) in N_Entity);
4879 Nodes.Table (N + 2).Field11 := Val;
4882 procedure Set_Field19 (N : Node_Id; Val : Union_Id) is
4884 pragma Assert (Nkind (N) in N_Entity);
4885 Nodes.Table (N + 3).Field6 := Val;
4888 procedure Set_Field20 (N : Node_Id; Val : Union_Id) is
4890 pragma Assert (Nkind (N) in N_Entity);
4891 Nodes.Table (N + 3).Field7 := Val;
4894 procedure Set_Field21 (N : Node_Id; Val : Union_Id) is
4896 pragma Assert (Nkind (N) in N_Entity);
4897 Nodes.Table (N + 3).Field8 := Val;
4900 procedure Set_Field22 (N : Node_Id; Val : Union_Id) is
4902 pragma Assert (Nkind (N) in N_Entity);
4903 Nodes.Table (N + 3).Field9 := Val;
4906 procedure Set_Field23 (N : Node_Id; Val : Union_Id) is
4908 pragma Assert (Nkind (N) in N_Entity);
4909 Nodes.Table (N + 3).Field10 := Val;
4912 procedure Set_Field24 (N : Node_Id; Val : Union_Id) is
4914 pragma Assert (Nkind (N) in N_Entity);
4915 Nodes.Table (N + 4).Field6 := Val;
4918 procedure Set_Field25 (N : Node_Id; Val : Union_Id) is
4920 pragma Assert (Nkind (N) in N_Entity);
4921 Nodes.Table (N + 4).Field7 := Val;
4924 procedure Set_Field26 (N : Node_Id; Val : Union_Id) is
4926 pragma Assert (Nkind (N) in N_Entity);
4927 Nodes.Table (N + 4).Field8 := Val;
4930 procedure Set_Field27 (N : Node_Id; Val : Union_Id) is
4932 pragma Assert (Nkind (N) in N_Entity);
4933 Nodes.Table (N + 4).Field9 := Val;
4936 procedure Set_Field28 (N : Node_Id; Val : Union_Id) is
4938 pragma Assert (Nkind (N) in N_Entity);
4939 Nodes.Table (N + 4).Field10 := Val;
4942 procedure Set_Node1 (N : Node_Id; Val : Node_Id) is
4944 pragma Assert (N in Nodes.First .. Nodes.Last);
4945 Nodes.Table (N).Field1 := Union_Id (Val);
4948 procedure Set_Node2 (N : Node_Id; Val : Node_Id) is
4950 pragma Assert (N in Nodes.First .. Nodes.Last);
4951 Nodes.Table (N).Field2 := Union_Id (Val);
4954 procedure Set_Node3 (N : Node_Id; Val : Node_Id) is
4956 pragma Assert (N in Nodes.First .. Nodes.Last);
4957 Nodes.Table (N).Field3 := Union_Id (Val);
4960 procedure Set_Node4 (N : Node_Id; Val : Node_Id) is
4962 pragma Assert (N in Nodes.First .. Nodes.Last);
4963 Nodes.Table (N).Field4 := Union_Id (Val);
4966 procedure Set_Node5 (N : Node_Id; Val : Node_Id) is
4968 pragma Assert (N in Nodes.First .. Nodes.Last);
4969 Nodes.Table (N).Field5 := Union_Id (Val);
4972 procedure Set_Node6 (N : Node_Id; Val : Node_Id) is
4974 pragma Assert (Nkind (N) in N_Entity);
4975 Nodes.Table (N + 1).Field6 := Union_Id (Val);
4978 procedure Set_Node7 (N : Node_Id; Val : Node_Id) is
4980 pragma Assert (Nkind (N) in N_Entity);
4981 Nodes.Table (N + 1).Field7 := Union_Id (Val);
4984 procedure Set_Node8 (N : Node_Id; Val : Node_Id) is
4986 pragma Assert (Nkind (N) in N_Entity);
4987 Nodes.Table (N + 1).Field8 := Union_Id (Val);
4990 procedure Set_Node9 (N : Node_Id; Val : Node_Id) is
4992 pragma Assert (Nkind (N) in N_Entity);
4993 Nodes.Table (N + 1).Field9 := Union_Id (Val);
4996 procedure Set_Node10 (N : Node_Id; Val : Node_Id) is
4998 pragma Assert (Nkind (N) in N_Entity);
4999 Nodes.Table (N + 1).Field10 := Union_Id (Val);
5002 procedure Set_Node11 (N : Node_Id; Val : Node_Id) is
5004 pragma Assert (Nkind (N) in N_Entity);
5005 Nodes.Table (N + 1).Field11 := Union_Id (Val);
5008 procedure Set_Node12 (N : Node_Id; Val : Node_Id) is
5010 pragma Assert (Nkind (N) in N_Entity);
5011 Nodes.Table (N + 1).Field12 := Union_Id (Val);
5014 procedure Set_Node13 (N : Node_Id; Val : Node_Id) is
5016 pragma Assert (Nkind (N) in N_Entity);
5017 Nodes.Table (N + 2).Field6 := Union_Id (Val);
5020 procedure Set_Node14 (N : Node_Id; Val : Node_Id) is
5022 pragma Assert (Nkind (N) in N_Entity);
5023 Nodes.Table (N + 2).Field7 := Union_Id (Val);
5026 procedure Set_Node15 (N : Node_Id; Val : Node_Id) is
5028 pragma Assert (Nkind (N) in N_Entity);
5029 Nodes.Table (N + 2).Field8 := Union_Id (Val);
5032 procedure Set_Node16 (N : Node_Id; Val : Node_Id) is
5034 pragma Assert (Nkind (N) in N_Entity);
5035 Nodes.Table (N + 2).Field9 := Union_Id (Val);
5038 procedure Set_Node17 (N : Node_Id; Val : Node_Id) is
5040 pragma Assert (Nkind (N) in N_Entity);
5041 Nodes.Table (N + 2).Field10 := Union_Id (Val);
5044 procedure Set_Node18 (N : Node_Id; Val : Node_Id) is
5046 pragma Assert (Nkind (N) in N_Entity);
5047 Nodes.Table (N + 2).Field11 := Union_Id (Val);
5050 procedure Set_Node19 (N : Node_Id; Val : Node_Id) is
5052 pragma Assert (Nkind (N) in N_Entity);
5053 Nodes.Table (N + 3).Field6 := Union_Id (Val);
5056 procedure Set_Node20 (N : Node_Id; Val : Node_Id) is
5058 pragma Assert (Nkind (N) in N_Entity);
5059 Nodes.Table (N + 3).Field7 := Union_Id (Val);
5062 procedure Set_Node21 (N : Node_Id; Val : Node_Id) is
5064 pragma Assert (Nkind (N) in N_Entity);
5065 Nodes.Table (N + 3).Field8 := Union_Id (Val);
5068 procedure Set_Node22 (N : Node_Id; Val : Node_Id) is
5070 pragma Assert (Nkind (N) in N_Entity);
5071 Nodes.Table (N + 3).Field9 := Union_Id (Val);
5074 procedure Set_Node23 (N : Node_Id; Val : Node_Id) is
5076 pragma Assert (Nkind (N) in N_Entity);
5077 Nodes.Table (N + 3).Field10 := Union_Id (Val);
5080 procedure Set_Node24 (N : Node_Id; Val : Node_Id) is
5082 pragma Assert (Nkind (N) in N_Entity);
5083 Nodes.Table (N + 4).Field6 := Union_Id (Val);
5086 procedure Set_Node25 (N : Node_Id; Val : Node_Id) is
5088 pragma Assert (Nkind (N) in N_Entity);
5089 Nodes.Table (N + 4).Field7 := Union_Id (Val);
5092 procedure Set_Node26 (N : Node_Id; Val : Node_Id) is
5094 pragma Assert (Nkind (N) in N_Entity);
5095 Nodes.Table (N + 4).Field8 := Union_Id (Val);
5098 procedure Set_Node27 (N : Node_Id; Val : Node_Id) is
5100 pragma Assert (Nkind (N) in N_Entity);
5101 Nodes.Table (N + 4).Field9 := Union_Id (Val);
5104 procedure Set_Node28 (N : Node_Id; Val : Node_Id) is
5106 pragma Assert (Nkind (N) in N_Entity);
5107 Nodes.Table (N + 4).Field10 := Union_Id (Val);
5110 procedure Set_List1 (N : Node_Id; Val : List_Id) is
5112 pragma Assert (N in Nodes.First .. Nodes.Last);
5113 Nodes.Table (N).Field1 := Union_Id (Val);
5116 procedure Set_List2 (N : Node_Id; Val : List_Id) is
5118 pragma Assert (N in Nodes.First .. Nodes.Last);
5119 Nodes.Table (N).Field2 := Union_Id (Val);
5122 procedure Set_List3 (N : Node_Id; Val : List_Id) is
5124 pragma Assert (N in Nodes.First .. Nodes.Last);
5125 Nodes.Table (N).Field3 := Union_Id (Val);
5128 procedure Set_List4 (N : Node_Id; Val : List_Id) is
5130 pragma Assert (N in Nodes.First .. Nodes.Last);
5131 Nodes.Table (N).Field4 := Union_Id (Val);
5134 procedure Set_List5 (N : Node_Id; Val : List_Id) is
5136 pragma Assert (N in Nodes.First .. Nodes.Last);
5137 Nodes.Table (N).Field5 := Union_Id (Val);
5140 procedure Set_List10 (N : Node_Id; Val : List_Id) is
5142 pragma Assert (Nkind (N) in N_Entity);
5143 Nodes.Table (N + 1).Field10 := Union_Id (Val);
5146 procedure Set_List14 (N : Node_Id; Val : List_Id) is
5148 pragma Assert (Nkind (N) in N_Entity);
5149 Nodes.Table (N + 2).Field7 := Union_Id (Val);
5152 procedure Set_Elist1 (N : Node_Id; Val : Elist_Id) is
5154 Nodes.Table (N).Field1 := Union_Id (Val);
5157 procedure Set_Elist2 (N : Node_Id; Val : Elist_Id) is
5159 Nodes.Table (N).Field2 := Union_Id (Val);
5162 procedure Set_Elist3 (N : Node_Id; Val : Elist_Id) is
5164 Nodes.Table (N).Field3 := Union_Id (Val);
5167 procedure Set_Elist4 (N : Node_Id; Val : Elist_Id) is
5169 Nodes.Table (N).Field4 := Union_Id (Val);
5172 procedure Set_Elist8 (N : Node_Id; Val : Elist_Id) is
5174 pragma Assert (Nkind (N) in N_Entity);
5175 Nodes.Table (N + 1).Field8 := Union_Id (Val);
5178 procedure Set_Elist13 (N : Node_Id; Val : Elist_Id) is
5180 pragma Assert (Nkind (N) in N_Entity);
5181 Nodes.Table (N + 2).Field6 := Union_Id (Val);
5184 procedure Set_Elist15 (N : Node_Id; Val : Elist_Id) is
5186 pragma Assert (Nkind (N) in N_Entity);
5187 Nodes.Table (N + 2).Field8 := Union_Id (Val);
5190 procedure Set_Elist16 (N : Node_Id; Val : Elist_Id) is
5192 pragma Assert (Nkind (N) in N_Entity);
5193 Nodes.Table (N + 2).Field9 := Union_Id (Val);
5196 procedure Set_Elist18 (N : Node_Id; Val : Elist_Id) is
5198 pragma Assert (Nkind (N) in N_Entity);
5199 Nodes.Table (N + 2).Field11 := Union_Id (Val);
5202 procedure Set_Elist21 (N : Node_Id; Val : Elist_Id) is
5204 pragma Assert (Nkind (N) in N_Entity);
5205 Nodes.Table (N + 3).Field8 := Union_Id (Val);
5208 procedure Set_Elist23 (N : Node_Id; Val : Elist_Id) is
5210 pragma Assert (Nkind (N) in N_Entity);
5211 Nodes.Table (N + 3).Field10 := Union_Id (Val);
5214 procedure Set_Elist25 (N : Node_Id; Val : Elist_Id) is
5216 pragma Assert (Nkind (N) in N_Entity);
5217 Nodes.Table (N + 4).Field7 := Union_Id (Val);
5220 procedure Set_Name1 (N : Node_Id; Val : Name_Id) is
5222 pragma Assert (N in Nodes.First .. Nodes.Last);
5223 Nodes.Table (N).Field1 := Union_Id (Val);
5226 procedure Set_Name2 (N : Node_Id; Val : Name_Id) is
5228 pragma Assert (N in Nodes.First .. Nodes.Last);
5229 Nodes.Table (N).Field2 := Union_Id (Val);
5232 procedure Set_Str3 (N : Node_Id; Val : String_Id) is
5234 pragma Assert (N in Nodes.First .. Nodes.Last);
5235 Nodes.Table (N).Field3 := Union_Id (Val);
5238 procedure Set_Uint2 (N : Node_Id; Val : Uint) is
5240 pragma Assert (N in Nodes.First .. Nodes.Last);
5241 Nodes.Table (N).Field2 := To_Union (Val);
5244 procedure Set_Uint3 (N : Node_Id; Val : Uint) is
5246 pragma Assert (N in Nodes.First .. Nodes.Last);
5247 Nodes.Table (N).Field3 := To_Union (Val);
5250 procedure Set_Uint4 (N : Node_Id; Val : Uint) is
5252 pragma Assert (N in Nodes.First .. Nodes.Last);
5253 Nodes.Table (N).Field4 := To_Union (Val);
5256 procedure Set_Uint5 (N : Node_Id; Val : Uint) is
5258 pragma Assert (N in Nodes.First .. Nodes.Last);
5259 Nodes.Table (N).Field5 := To_Union (Val);
5262 procedure Set_Uint8 (N : Node_Id; Val : Uint) is
5264 pragma Assert (Nkind (N) in N_Entity);
5265 Nodes.Table (N + 1).Field8 := To_Union (Val);
5268 procedure Set_Uint9 (N : Node_Id; Val : Uint) is
5270 pragma Assert (Nkind (N) in N_Entity);
5271 Nodes.Table (N + 1).Field9 := To_Union (Val);
5274 procedure Set_Uint10 (N : Node_Id; Val : Uint) is
5276 pragma Assert (Nkind (N) in N_Entity);
5277 Nodes.Table (N + 1).Field10 := To_Union (Val);
5280 procedure Set_Uint11 (N : Node_Id; Val : Uint) is
5282 pragma Assert (Nkind (N) in N_Entity);
5283 Nodes.Table (N + 1).Field11 := To_Union (Val);
5286 procedure Set_Uint12 (N : Node_Id; Val : Uint) is
5288 pragma Assert (Nkind (N) in N_Entity);
5289 Nodes.Table (N + 1).Field12 := To_Union (Val);
5292 procedure Set_Uint13 (N : Node_Id; Val : Uint) is
5294 pragma Assert (Nkind (N) in N_Entity);
5295 Nodes.Table (N + 2).Field6 := To_Union (Val);
5298 procedure Set_Uint14 (N : Node_Id; Val : Uint) is
5300 pragma Assert (Nkind (N) in N_Entity);
5301 Nodes.Table (N + 2).Field7 := To_Union (Val);
5304 procedure Set_Uint15 (N : Node_Id; Val : Uint) is
5306 pragma Assert (Nkind (N) in N_Entity);
5307 Nodes.Table (N + 2).Field8 := To_Union (Val);
5310 procedure Set_Uint16 (N : Node_Id; Val : Uint) is
5312 pragma Assert (Nkind (N) in N_Entity);
5313 Nodes.Table (N + 2).Field9 := To_Union (Val);
5316 procedure Set_Uint17 (N : Node_Id; Val : Uint) is
5318 pragma Assert (Nkind (N) in N_Entity);
5319 Nodes.Table (N + 2).Field10 := To_Union (Val);
5322 procedure Set_Uint22 (N : Node_Id; Val : Uint) is
5324 pragma Assert (Nkind (N) in N_Entity);
5325 Nodes.Table (N + 3).Field9 := To_Union (Val);
5328 procedure Set_Ureal3 (N : Node_Id; Val : Ureal) is
5330 pragma Assert (N in Nodes.First .. Nodes.Last);
5331 Nodes.Table (N).Field3 := To_Union (Val);
5334 procedure Set_Ureal18 (N : Node_Id; Val : Ureal) is
5336 pragma Assert (Nkind (N) in N_Entity);
5337 Nodes.Table (N + 2).Field11 := To_Union (Val);
5340 procedure Set_Ureal21 (N : Node_Id; Val : Ureal) is
5342 pragma Assert (Nkind (N) in N_Entity);
5343 Nodes.Table (N + 3).Field8 := To_Union (Val);
5346 procedure Set_Flag4 (N : Node_Id; Val : Boolean) is
5348 pragma Assert (N in Nodes.First .. Nodes.Last);
5349 Nodes.Table (N).Flag4 := Val;
5352 procedure Set_Flag5 (N : Node_Id; Val : Boolean) is
5354 pragma Assert (N in Nodes.First .. Nodes.Last);
5355 Nodes.Table (N).Flag5 := Val;
5358 procedure Set_Flag6 (N : Node_Id; Val : Boolean) is
5360 pragma Assert (N in Nodes.First .. Nodes.Last);
5361 Nodes.Table (N).Flag6 := Val;
5364 procedure Set_Flag7 (N : Node_Id; Val : Boolean) is
5366 pragma Assert (N in Nodes.First .. Nodes.Last);
5367 Nodes.Table (N).Flag7 := Val;
5370 procedure Set_Flag8 (N : Node_Id; Val : Boolean) is
5372 pragma Assert (N in Nodes.First .. Nodes.Last);
5373 Nodes.Table (N).Flag8 := Val;
5376 procedure Set_Flag9 (N : Node_Id; Val : Boolean) is
5378 pragma Assert (N in Nodes.First .. Nodes.Last);
5379 Nodes.Table (N).Flag9 := Val;
5382 procedure Set_Flag10 (N : Node_Id; Val : Boolean) is
5384 pragma Assert (N in Nodes.First .. Nodes.Last);
5385 Nodes.Table (N).Flag10 := Val;
5388 procedure Set_Flag11 (N : Node_Id; Val : Boolean) is
5390 pragma Assert (N in Nodes.First .. Nodes.Last);
5391 Nodes.Table (N).Flag11 := Val;
5394 procedure Set_Flag12 (N : Node_Id; Val : Boolean) is
5396 pragma Assert (N in Nodes.First .. Nodes.Last);
5397 Nodes.Table (N).Flag12 := Val;
5400 procedure Set_Flag13 (N : Node_Id; Val : Boolean) is
5402 pragma Assert (N in Nodes.First .. Nodes.Last);
5403 Nodes.Table (N).Flag13 := Val;
5406 procedure Set_Flag14 (N : Node_Id; Val : Boolean) is
5408 pragma Assert (N in Nodes.First .. Nodes.Last);
5409 Nodes.Table (N).Flag14 := Val;
5412 procedure Set_Flag15 (N : Node_Id; Val : Boolean) is
5414 pragma Assert (N in Nodes.First .. Nodes.Last);
5415 Nodes.Table (N).Flag15 := Val;
5418 procedure Set_Flag16 (N : Node_Id; Val : Boolean) is
5420 pragma Assert (N in Nodes.First .. Nodes.Last);
5421 Nodes.Table (N).Flag16 := Val;
5424 procedure Set_Flag17 (N : Node_Id; Val : Boolean) is
5426 pragma Assert (N in Nodes.First .. Nodes.Last);
5427 Nodes.Table (N).Flag17 := Val;
5430 procedure Set_Flag18 (N : Node_Id; Val : Boolean) is
5432 pragma Assert (N in Nodes.First .. Nodes.Last);
5433 Nodes.Table (N).Flag18 := Val;
5436 procedure Set_Flag19 (N : Node_Id; Val : Boolean) is
5438 pragma Assert (Nkind (N) in N_Entity);
5439 Nodes.Table (N + 1).In_List := Val;
5442 procedure Set_Flag20 (N : Node_Id; Val : Boolean) is
5444 pragma Assert (Nkind (N) in N_Entity);
5445 Nodes.Table (N + 1).Unused_1 := Val;
5448 procedure Set_Flag21 (N : Node_Id; Val : Boolean) is
5450 pragma Assert (Nkind (N) in N_Entity);
5451 Nodes.Table (N + 1).Rewrite_Ins := Val;
5454 procedure Set_Flag22 (N : Node_Id; Val : Boolean) is
5456 pragma Assert (Nkind (N) in N_Entity);
5457 Nodes.Table (N + 1).Analyzed := Val;
5460 procedure Set_Flag23 (N : Node_Id; Val : Boolean) is
5462 pragma Assert (Nkind (N) in N_Entity);
5463 Nodes.Table (N + 1).Comes_From_Source := Val;
5466 procedure Set_Flag24 (N : Node_Id; Val : Boolean) is
5468 pragma Assert (Nkind (N) in N_Entity);
5469 Nodes.Table (N + 1).Error_Posted := Val;
5472 procedure Set_Flag25 (N : Node_Id; Val : Boolean) is
5474 pragma Assert (Nkind (N) in N_Entity);
5475 Nodes.Table (N + 1).Flag4 := Val;
5478 procedure Set_Flag26 (N : Node_Id; Val : Boolean) is
5480 pragma Assert (Nkind (N) in N_Entity);
5481 Nodes.Table (N + 1).Flag5 := Val;
5484 procedure Set_Flag27 (N : Node_Id; Val : Boolean) is
5486 pragma Assert (Nkind (N) in N_Entity);
5487 Nodes.Table (N + 1).Flag6 := Val;
5490 procedure Set_Flag28 (N : Node_Id; Val : Boolean) is
5492 pragma Assert (Nkind (N) in N_Entity);
5493 Nodes.Table (N + 1).Flag7 := Val;
5496 procedure Set_Flag29 (N : Node_Id; Val : Boolean) is
5498 pragma Assert (Nkind (N) in N_Entity);
5499 Nodes.Table (N + 1).Flag8 := Val;
5502 procedure Set_Flag30 (N : Node_Id; Val : Boolean) is
5504 pragma Assert (Nkind (N) in N_Entity);
5505 Nodes.Table (N + 1).Flag9 := Val;
5508 procedure Set_Flag31 (N : Node_Id; Val : Boolean) is
5510 pragma Assert (Nkind (N) in N_Entity);
5511 Nodes.Table (N + 1).Flag10 := Val;
5514 procedure Set_Flag32 (N : Node_Id; Val : Boolean) is
5516 pragma Assert (Nkind (N) in N_Entity);
5517 Nodes.Table (N + 1).Flag11 := Val;
5520 procedure Set_Flag33 (N : Node_Id; Val : Boolean) is
5522 pragma Assert (Nkind (N) in N_Entity);
5523 Nodes.Table (N + 1).Flag12 := Val;
5526 procedure Set_Flag34 (N : Node_Id; Val : Boolean) is
5528 pragma Assert (Nkind (N) in N_Entity);
5529 Nodes.Table (N + 1).Flag13 := Val;
5532 procedure Set_Flag35 (N : Node_Id; Val : Boolean) is
5534 pragma Assert (Nkind (N) in N_Entity);
5535 Nodes.Table (N + 1).Flag14 := Val;
5538 procedure Set_Flag36 (N : Node_Id; Val : Boolean) is
5540 pragma Assert (Nkind (N) in N_Entity);
5541 Nodes.Table (N + 1).Flag15 := Val;
5544 procedure Set_Flag37 (N : Node_Id; Val : Boolean) is
5546 pragma Assert (Nkind (N) in N_Entity);
5547 Nodes.Table (N + 1).Flag16 := Val;
5550 procedure Set_Flag38 (N : Node_Id; Val : Boolean) is
5552 pragma Assert (Nkind (N) in N_Entity);
5553 Nodes.Table (N + 1).Flag17 := Val;
5556 procedure Set_Flag39 (N : Node_Id; Val : Boolean) is
5558 pragma Assert (Nkind (N) in N_Entity);
5559 Nodes.Table (N + 1).Flag18 := Val;
5562 procedure Set_Flag40 (N : Node_Id; Val : Boolean) is
5564 pragma Assert (Nkind (N) in N_Entity);
5565 Nodes.Table (N + 2).In_List := Val;
5568 procedure Set_Flag41 (N : Node_Id; Val : Boolean) is
5570 pragma Assert (Nkind (N) in N_Entity);
5571 Nodes.Table (N + 2).Unused_1 := Val;
5574 procedure Set_Flag42 (N : Node_Id; Val : Boolean) is
5576 pragma Assert (Nkind (N) in N_Entity);
5577 Nodes.Table (N + 2).Rewrite_Ins := Val;
5580 procedure Set_Flag43 (N : Node_Id; Val : Boolean) is
5582 pragma Assert (Nkind (N) in N_Entity);
5583 Nodes.Table (N + 2).Analyzed := Val;
5586 procedure Set_Flag44 (N : Node_Id; Val : Boolean) is
5588 pragma Assert (Nkind (N) in N_Entity);
5589 Nodes.Table (N + 2).Comes_From_Source := Val;
5592 procedure Set_Flag45 (N : Node_Id; Val : Boolean) is
5594 pragma Assert (Nkind (N) in N_Entity);
5595 Nodes.Table (N + 2).Error_Posted := Val;
5598 procedure Set_Flag46 (N : Node_Id; Val : Boolean) is
5600 pragma Assert (Nkind (N) in N_Entity);
5601 Nodes.Table (N + 2).Flag4 := Val;
5604 procedure Set_Flag47 (N : Node_Id; Val : Boolean) is
5606 pragma Assert (Nkind (N) in N_Entity);
5607 Nodes.Table (N + 2).Flag5 := Val;
5610 procedure Set_Flag48 (N : Node_Id; Val : Boolean) is
5612 pragma Assert (Nkind (N) in N_Entity);
5613 Nodes.Table (N + 2).Flag6 := Val;
5616 procedure Set_Flag49 (N : Node_Id; Val : Boolean) is
5618 pragma Assert (Nkind (N) in N_Entity);
5619 Nodes.Table (N + 2).Flag7 := Val;
5622 procedure Set_Flag50 (N : Node_Id; Val : Boolean) is
5624 pragma Assert (Nkind (N) in N_Entity);
5625 Nodes.Table (N + 2).Flag8 := Val;
5628 procedure Set_Flag51 (N : Node_Id; Val : Boolean) is
5630 pragma Assert (Nkind (N) in N_Entity);
5631 Nodes.Table (N + 2).Flag9 := Val;
5634 procedure Set_Flag52 (N : Node_Id; Val : Boolean) is
5636 pragma Assert (Nkind (N) in N_Entity);
5637 Nodes.Table (N + 2).Flag10 := Val;
5640 procedure Set_Flag53 (N : Node_Id; Val : Boolean) is
5642 pragma Assert (Nkind (N) in N_Entity);
5643 Nodes.Table (N + 2).Flag11 := Val;
5646 procedure Set_Flag54 (N : Node_Id; Val : Boolean) is
5648 pragma Assert (Nkind (N) in N_Entity);
5649 Nodes.Table (N + 2).Flag12 := Val;
5652 procedure Set_Flag55 (N : Node_Id; Val : Boolean) is
5654 pragma Assert (Nkind (N) in N_Entity);
5655 Nodes.Table (N + 2).Flag13 := Val;
5658 procedure Set_Flag56 (N : Node_Id; Val : Boolean) is
5660 pragma Assert (Nkind (N) in N_Entity);
5661 Nodes.Table (N + 2).Flag14 := Val;
5664 procedure Set_Flag57 (N : Node_Id; Val : Boolean) is
5666 pragma Assert (Nkind (N) in N_Entity);
5667 Nodes.Table (N + 2).Flag15 := Val;
5670 procedure Set_Flag58 (N : Node_Id; Val : Boolean) is
5672 pragma Assert (Nkind (N) in N_Entity);
5673 Nodes.Table (N + 2).Flag16 := Val;
5676 procedure Set_Flag59 (N : Node_Id; Val : Boolean) is
5678 pragma Assert (Nkind (N) in N_Entity);
5679 Nodes.Table (N + 2).Flag17 := Val;
5682 procedure Set_Flag60 (N : Node_Id; Val : Boolean) is
5684 pragma Assert (Nkind (N) in N_Entity);
5685 Nodes.Table (N + 2).Flag18 := Val;
5688 procedure Set_Flag61 (N : Node_Id; Val : Boolean) is
5690 pragma Assert (Nkind (N) in N_Entity);
5691 Nodes.Table (N + 1).Pflag1 := Val;
5694 procedure Set_Flag62 (N : Node_Id; Val : Boolean) is
5696 pragma Assert (Nkind (N) in N_Entity);
5697 Nodes.Table (N + 1).Pflag2 := Val;
5700 procedure Set_Flag63 (N : Node_Id; Val : Boolean) is
5702 pragma Assert (Nkind (N) in N_Entity);
5703 Nodes.Table (N + 2).Pflag1 := Val;
5706 procedure Set_Flag64 (N : Node_Id; Val : Boolean) is
5708 pragma Assert (Nkind (N) in N_Entity);
5709 Nodes.Table (N + 2).Pflag2 := Val;
5712 procedure Set_Flag65 (N : Node_Id; Val : Boolean) is
5714 pragma Assert (Nkind (N) in N_Entity);
5717 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag65 := Val;
5720 procedure Set_Flag66 (N : Node_Id; Val : Boolean) is
5722 pragma Assert (Nkind (N) in N_Entity);
5725 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag66 := Val;
5728 procedure Set_Flag67 (N : Node_Id; Val : Boolean) is
5730 pragma Assert (Nkind (N) in N_Entity);
5733 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag67 := Val;
5736 procedure Set_Flag68 (N : Node_Id; Val : Boolean) is
5738 pragma Assert (Nkind (N) in N_Entity);
5741 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag68 := Val;
5744 procedure Set_Flag69 (N : Node_Id; Val : Boolean) is
5746 pragma Assert (Nkind (N) in N_Entity);
5749 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag69 := Val;
5752 procedure Set_Flag70 (N : Node_Id; Val : Boolean) is
5754 pragma Assert (Nkind (N) in N_Entity);
5757 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag70 := Val;
5760 procedure Set_Flag71 (N : Node_Id; Val : Boolean) is
5762 pragma Assert (Nkind (N) in N_Entity);
5765 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag71 := Val;
5768 procedure Set_Flag72 (N : Node_Id; Val : Boolean) is
5770 pragma Assert (Nkind (N) in N_Entity);
5773 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag72 := Val;
5776 procedure Set_Flag73 (N : Node_Id; Val : Boolean) is
5778 pragma Assert (Nkind (N) in N_Entity);
5781 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag73 := Val;
5784 procedure Set_Flag74 (N : Node_Id; Val : Boolean) is
5786 pragma Assert (Nkind (N) in N_Entity);
5789 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag74 := Val;
5792 procedure Set_Flag75 (N : Node_Id; Val : Boolean) is
5794 pragma Assert (Nkind (N) in N_Entity);
5797 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag75 := Val;
5800 procedure Set_Flag76 (N : Node_Id; Val : Boolean) is
5802 pragma Assert (Nkind (N) in N_Entity);
5805 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag76 := Val;
5808 procedure Set_Flag77 (N : Node_Id; Val : Boolean) is
5810 pragma Assert (Nkind (N) in N_Entity);
5813 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag77 := Val;
5816 procedure Set_Flag78 (N : Node_Id; Val : Boolean) is
5818 pragma Assert (Nkind (N) in N_Entity);
5821 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag78 := Val;
5824 procedure Set_Flag79 (N : Node_Id; Val : Boolean) is
5826 pragma Assert (Nkind (N) in N_Entity);
5829 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag79 := Val;
5832 procedure Set_Flag80 (N : Node_Id; Val : Boolean) is
5834 pragma Assert (Nkind (N) in N_Entity);
5837 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag80 := Val;
5840 procedure Set_Flag81 (N : Node_Id; Val : Boolean) is
5842 pragma Assert (Nkind (N) in N_Entity);
5845 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag81 := Val;
5848 procedure Set_Flag82 (N : Node_Id; Val : Boolean) is
5850 pragma Assert (Nkind (N) in N_Entity);
5853 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag82 := Val;
5856 procedure Set_Flag83 (N : Node_Id; Val : Boolean) is
5858 pragma Assert (Nkind (N) in N_Entity);
5861 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag83 := Val;
5864 procedure Set_Flag84 (N : Node_Id; Val : Boolean) is
5866 pragma Assert (Nkind (N) in N_Entity);
5869 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag84 := Val;
5872 procedure Set_Flag85 (N : Node_Id; Val : Boolean) is
5874 pragma Assert (Nkind (N) in N_Entity);
5877 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag85 := Val;
5880 procedure Set_Flag86 (N : Node_Id; Val : Boolean) is
5882 pragma Assert (Nkind (N) in N_Entity);
5885 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag86 := Val;
5888 procedure Set_Flag87 (N : Node_Id; Val : Boolean) is
5890 pragma Assert (Nkind (N) in N_Entity);
5893 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag87 := Val;
5896 procedure Set_Flag88 (N : Node_Id; Val : Boolean) is
5898 pragma Assert (Nkind (N) in N_Entity);
5901 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag88 := Val;
5904 procedure Set_Flag89 (N : Node_Id; Val : Boolean) is
5906 pragma Assert (Nkind (N) in N_Entity);
5909 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag89 := Val;
5912 procedure Set_Flag90 (N : Node_Id; Val : Boolean) is
5914 pragma Assert (Nkind (N) in N_Entity);
5917 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag90 := Val;
5920 procedure Set_Flag91 (N : Node_Id; Val : Boolean) is
5922 pragma Assert (Nkind (N) in N_Entity);
5925 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag91 := Val;
5928 procedure Set_Flag92 (N : Node_Id; Val : Boolean) is
5930 pragma Assert (Nkind (N) in N_Entity);
5933 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag92 := Val;
5936 procedure Set_Flag93 (N : Node_Id; Val : Boolean) is
5938 pragma Assert (Nkind (N) in N_Entity);
5941 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag93 := Val;
5944 procedure Set_Flag94 (N : Node_Id; Val : Boolean) is
5946 pragma Assert (Nkind (N) in N_Entity);
5949 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag94 := Val;
5952 procedure Set_Flag95 (N : Node_Id; Val : Boolean) is
5954 pragma Assert (Nkind (N) in N_Entity);
5957 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag95 := Val;
5960 procedure Set_Flag96 (N : Node_Id; Val : Boolean) is
5962 pragma Assert (Nkind (N) in N_Entity);
5965 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag96 := Val;
5968 procedure Set_Flag97 (N : Node_Id; Val : Boolean) is
5970 pragma Assert (Nkind (N) in N_Entity);
5973 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag97 := Val;
5976 procedure Set_Flag98 (N : Node_Id; Val : Boolean) is
5978 pragma Assert (Nkind (N) in N_Entity);
5981 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag98 := Val;
5984 procedure Set_Flag99 (N : Node_Id; Val : Boolean) is
5986 pragma Assert (Nkind (N) in N_Entity);
5989 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag99 := Val;
5992 procedure Set_Flag100 (N : Node_Id; Val : Boolean) is
5994 pragma Assert (Nkind (N) in N_Entity);
5997 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag100 := Val;
6000 procedure Set_Flag101 (N : Node_Id; Val : Boolean) is
6002 pragma Assert (Nkind (N) in N_Entity);
6005 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag101 := Val;
6008 procedure Set_Flag102 (N : Node_Id; Val : Boolean) is
6010 pragma Assert (Nkind (N) in N_Entity);
6013 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag102 := Val;
6016 procedure Set_Flag103 (N : Node_Id; Val : Boolean) is
6018 pragma Assert (Nkind (N) in N_Entity);
6021 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag103 := Val;
6024 procedure Set_Flag104 (N : Node_Id; Val : Boolean) is
6026 pragma Assert (Nkind (N) in N_Entity);
6029 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag104 := Val;
6032 procedure Set_Flag105 (N : Node_Id; Val : Boolean) is
6034 pragma Assert (Nkind (N) in N_Entity);
6037 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag105 := Val;
6040 procedure Set_Flag106 (N : Node_Id; Val : Boolean) is
6042 pragma Assert (Nkind (N) in N_Entity);
6045 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag106 := Val;
6048 procedure Set_Flag107 (N : Node_Id; Val : Boolean) is
6050 pragma Assert (Nkind (N) in N_Entity);
6053 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag107 := Val;
6056 procedure Set_Flag108 (N : Node_Id; Val : Boolean) is
6058 pragma Assert (Nkind (N) in N_Entity);
6061 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag108 := Val;
6064 procedure Set_Flag109 (N : Node_Id; Val : Boolean) is
6066 pragma Assert (Nkind (N) in N_Entity);
6069 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag109 := Val;
6072 procedure Set_Flag110 (N : Node_Id; Val : Boolean) is
6074 pragma Assert (Nkind (N) in N_Entity);
6077 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag110 := Val;
6080 procedure Set_Flag111 (N : Node_Id; Val : Boolean) is
6082 pragma Assert (Nkind (N) in N_Entity);
6085 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag111 := Val;
6088 procedure Set_Flag112 (N : Node_Id; Val : Boolean) is
6090 pragma Assert (Nkind (N) in N_Entity);
6093 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag112 := Val;
6096 procedure Set_Flag113 (N : Node_Id; Val : Boolean) is
6098 pragma Assert (Nkind (N) in N_Entity);
6101 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag113 := Val;
6104 procedure Set_Flag114 (N : Node_Id; Val : Boolean) is
6106 pragma Assert (Nkind (N) in N_Entity);
6109 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag114 := Val;
6112 procedure Set_Flag115 (N : Node_Id; Val : Boolean) is
6114 pragma Assert (Nkind (N) in N_Entity);
6117 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag115 := Val;
6120 procedure Set_Flag116 (N : Node_Id; Val : Boolean) is
6122 pragma Assert (Nkind (N) in N_Entity);
6125 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag116 := Val;
6128 procedure Set_Flag117 (N : Node_Id; Val : Boolean) is
6130 pragma Assert (Nkind (N) in N_Entity);
6133 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag117 := Val;
6136 procedure Set_Flag118 (N : Node_Id; Val : Boolean) is
6138 pragma Assert (Nkind (N) in N_Entity);
6141 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag118 := Val;
6144 procedure Set_Flag119 (N : Node_Id; Val : Boolean) is
6146 pragma Assert (Nkind (N) in N_Entity);
6149 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag119 := Val;
6152 procedure Set_Flag120 (N : Node_Id; Val : Boolean) is
6154 pragma Assert (Nkind (N) in N_Entity);
6157 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag120 := Val;
6160 procedure Set_Flag121 (N : Node_Id; Val : Boolean) is
6162 pragma Assert (Nkind (N) in N_Entity);
6165 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag121 := Val;
6168 procedure Set_Flag122 (N : Node_Id; Val : Boolean) is
6170 pragma Assert (Nkind (N) in N_Entity);
6173 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag122 := Val;
6176 procedure Set_Flag123 (N : Node_Id; Val : Boolean) is
6178 pragma Assert (Nkind (N) in N_Entity);
6181 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag123 := Val;
6184 procedure Set_Flag124 (N : Node_Id; Val : Boolean) is
6186 pragma Assert (Nkind (N) in N_Entity);
6189 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag124 := Val;
6192 procedure Set_Flag125 (N : Node_Id; Val : Boolean) is
6194 pragma Assert (Nkind (N) in N_Entity);
6197 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag125 := Val;
6200 procedure Set_Flag126 (N : Node_Id; Val : Boolean) is
6202 pragma Assert (Nkind (N) in N_Entity);
6205 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag126 := Val;
6208 procedure Set_Flag127 (N : Node_Id; Val : Boolean) is
6210 pragma Assert (Nkind (N) in N_Entity);
6213 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag127 := Val;
6216 procedure Set_Flag128 (N : Node_Id; Val : Boolean) is
6218 pragma Assert (Nkind (N) in N_Entity);
6221 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag128 := Val;
6224 procedure Set_Flag129 (N : Node_Id; Val : Boolean) is
6226 pragma Assert (Nkind (N) in N_Entity);
6227 Nodes.Table (N + 3).In_List := Val;
6230 procedure Set_Flag130 (N : Node_Id; Val : Boolean) is
6232 pragma Assert (Nkind (N) in N_Entity);
6233 Nodes.Table (N + 3).Unused_1 := Val;
6236 procedure Set_Flag131 (N : Node_Id; Val : Boolean) is
6238 pragma Assert (Nkind (N) in N_Entity);
6239 Nodes.Table (N + 3).Rewrite_Ins := Val;
6242 procedure Set_Flag132 (N : Node_Id; Val : Boolean) is
6244 pragma Assert (Nkind (N) in N_Entity);
6245 Nodes.Table (N + 3).Analyzed := Val;
6248 procedure Set_Flag133 (N : Node_Id; Val : Boolean) is
6250 pragma Assert (Nkind (N) in N_Entity);
6251 Nodes.Table (N + 3).Comes_From_Source := Val;
6254 procedure Set_Flag134 (N : Node_Id; Val : Boolean) is
6256 pragma Assert (Nkind (N) in N_Entity);
6257 Nodes.Table (N + 3).Error_Posted := Val;
6260 procedure Set_Flag135 (N : Node_Id; Val : Boolean) is
6262 pragma Assert (Nkind (N) in N_Entity);
6263 Nodes.Table (N + 3).Flag4 := Val;
6266 procedure Set_Flag136 (N : Node_Id; Val : Boolean) is
6268 pragma Assert (Nkind (N) in N_Entity);
6269 Nodes.Table (N + 3).Flag5 := Val;
6272 procedure Set_Flag137 (N : Node_Id; Val : Boolean) is
6274 pragma Assert (Nkind (N) in N_Entity);
6275 Nodes.Table (N + 3).Flag6 := Val;
6278 procedure Set_Flag138 (N : Node_Id; Val : Boolean) is
6280 pragma Assert (Nkind (N) in N_Entity);
6281 Nodes.Table (N + 3).Flag7 := Val;
6284 procedure Set_Flag139 (N : Node_Id; Val : Boolean) is
6286 pragma Assert (Nkind (N) in N_Entity);
6287 Nodes.Table (N + 3).Flag8 := Val;
6290 procedure Set_Flag140 (N : Node_Id; Val : Boolean) is
6292 pragma Assert (Nkind (N) in N_Entity);
6293 Nodes.Table (N + 3).Flag9 := Val;
6296 procedure Set_Flag141 (N : Node_Id; Val : Boolean) is
6298 pragma Assert (Nkind (N) in N_Entity);
6299 Nodes.Table (N + 3).Flag10 := Val;
6302 procedure Set_Flag142 (N : Node_Id; Val : Boolean) is
6304 pragma Assert (Nkind (N) in N_Entity);
6305 Nodes.Table (N + 3).Flag11 := Val;
6308 procedure Set_Flag143 (N : Node_Id; Val : Boolean) is
6310 pragma Assert (Nkind (N) in N_Entity);
6311 Nodes.Table (N + 3).Flag12 := Val;
6314 procedure Set_Flag144 (N : Node_Id; Val : Boolean) is
6316 pragma Assert (Nkind (N) in N_Entity);
6317 Nodes.Table (N + 3).Flag13 := Val;
6320 procedure Set_Flag145 (N : Node_Id; Val : Boolean) is
6322 pragma Assert (Nkind (N) in N_Entity);
6323 Nodes.Table (N + 3).Flag14 := Val;
6326 procedure Set_Flag146 (N : Node_Id; Val : Boolean) is
6328 pragma Assert (Nkind (N) in N_Entity);
6329 Nodes.Table (N + 3).Flag15 := Val;
6332 procedure Set_Flag147 (N : Node_Id; Val : Boolean) is
6334 pragma Assert (Nkind (N) in N_Entity);
6335 Nodes.Table (N + 3).Flag16 := Val;
6338 procedure Set_Flag148 (N : Node_Id; Val : Boolean) is
6340 pragma Assert (Nkind (N) in N_Entity);
6341 Nodes.Table (N + 3).Flag17 := Val;
6344 procedure Set_Flag149 (N : Node_Id; Val : Boolean) is
6346 pragma Assert (Nkind (N) in N_Entity);
6347 Nodes.Table (N + 3).Flag18 := Val;
6350 procedure Set_Flag150 (N : Node_Id; Val : Boolean) is
6352 pragma Assert (Nkind (N) in N_Entity);
6353 Nodes.Table (N + 3).Pflag1 := Val;
6356 procedure Set_Flag151 (N : Node_Id; Val : Boolean) is
6358 pragma Assert (Nkind (N) in N_Entity);
6359 Nodes.Table (N + 3).Pflag2 := Val;
6362 procedure Set_Flag152 (N : Node_Id; Val : Boolean) is
6364 pragma Assert (Nkind (N) in N_Entity);
6367 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag152 := Val;
6370 procedure Set_Flag153 (N : Node_Id; Val : Boolean) is
6372 pragma Assert (Nkind (N) in N_Entity);
6375 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag153 := Val;
6378 procedure Set_Flag154 (N : Node_Id; Val : Boolean) is
6380 pragma Assert (Nkind (N) in N_Entity);
6383 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag154 := Val;
6386 procedure Set_Flag155 (N : Node_Id; Val : Boolean) is
6388 pragma Assert (Nkind (N) in N_Entity);
6391 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag155 := Val;
6394 procedure Set_Flag156 (N : Node_Id; Val : Boolean) is
6396 pragma Assert (Nkind (N) in N_Entity);
6399 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag156 := Val;
6402 procedure Set_Flag157 (N : Node_Id; Val : Boolean) is
6404 pragma Assert (Nkind (N) in N_Entity);
6407 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag157 := Val;
6410 procedure Set_Flag158 (N : Node_Id; Val : Boolean) is
6412 pragma Assert (Nkind (N) in N_Entity);
6415 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag158 := Val;
6418 procedure Set_Flag159 (N : Node_Id; Val : Boolean) is
6420 pragma Assert (Nkind (N) in N_Entity);
6423 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag159 := Val;
6426 procedure Set_Flag160 (N : Node_Id; Val : Boolean) is
6428 pragma Assert (Nkind (N) in N_Entity);
6431 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag160 := Val;
6434 procedure Set_Flag161 (N : Node_Id; Val : Boolean) is
6436 pragma Assert (Nkind (N) in N_Entity);
6439 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag161 := Val;
6442 procedure Set_Flag162 (N : Node_Id; Val : Boolean) is
6444 pragma Assert (Nkind (N) in N_Entity);
6447 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag162 := Val;
6450 procedure Set_Flag163 (N : Node_Id; Val : Boolean) is
6452 pragma Assert (Nkind (N) in N_Entity);
6455 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag163 := Val;
6458 procedure Set_Flag164 (N : Node_Id; Val : Boolean) is
6460 pragma Assert (Nkind (N) in N_Entity);
6463 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag164 := Val;
6466 procedure Set_Flag165 (N : Node_Id; Val : Boolean) is
6468 pragma Assert (Nkind (N) in N_Entity);
6471 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag165 := Val;
6474 procedure Set_Flag166 (N : Node_Id; Val : Boolean) is
6476 pragma Assert (Nkind (N) in N_Entity);
6479 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag166 := Val;
6482 procedure Set_Flag167 (N : Node_Id; Val : Boolean) is
6484 pragma Assert (Nkind (N) in N_Entity);
6487 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag167 := Val;
6490 procedure Set_Flag168 (N : Node_Id; Val : Boolean) is
6492 pragma Assert (Nkind (N) in N_Entity);
6495 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag168 := Val;
6498 procedure Set_Flag169 (N : Node_Id; Val : Boolean) is
6500 pragma Assert (Nkind (N) in N_Entity);
6503 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag169 := Val;
6506 procedure Set_Flag170 (N : Node_Id; Val : Boolean) is
6508 pragma Assert (Nkind (N) in N_Entity);
6511 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag170 := Val;
6514 procedure Set_Flag171 (N : Node_Id; Val : Boolean) is
6516 pragma Assert (Nkind (N) in N_Entity);
6519 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag171 := Val;
6522 procedure Set_Flag172 (N : Node_Id; Val : Boolean) is
6524 pragma Assert (Nkind (N) in N_Entity);
6527 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag172 := Val;
6530 procedure Set_Flag173 (N : Node_Id; Val : Boolean) is
6532 pragma Assert (Nkind (N) in N_Entity);
6535 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag173 := Val;
6538 procedure Set_Flag174 (N : Node_Id; Val : Boolean) is
6540 pragma Assert (Nkind (N) in N_Entity);
6543 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag174 := Val;
6546 procedure Set_Flag175 (N : Node_Id; Val : Boolean) is
6548 pragma Assert (Nkind (N) in N_Entity);
6551 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag175 := Val;
6554 procedure Set_Flag176 (N : Node_Id; Val : Boolean) is
6556 pragma Assert (Nkind (N) in N_Entity);
6559 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag176 := Val;
6562 procedure Set_Flag177 (N : Node_Id; Val : Boolean) is
6564 pragma Assert (Nkind (N) in N_Entity);
6567 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag177 := Val;
6570 procedure Set_Flag178 (N : Node_Id; Val : Boolean) is
6572 pragma Assert (Nkind (N) in N_Entity);
6575 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag178 := Val;
6578 procedure Set_Flag179 (N : Node_Id; Val : Boolean) is
6580 pragma Assert (Nkind (N) in N_Entity);
6583 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag179 := Val;
6586 procedure Set_Flag180 (N : Node_Id; Val : Boolean) is
6588 pragma Assert (Nkind (N) in N_Entity);
6591 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag180 := Val;
6594 procedure Set_Flag181 (N : Node_Id; Val : Boolean) is
6596 pragma Assert (Nkind (N) in N_Entity);
6599 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag181 := Val;
6602 procedure Set_Flag182 (N : Node_Id; Val : Boolean) is
6604 pragma Assert (Nkind (N) in N_Entity);
6607 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag182 := Val;
6610 procedure Set_Flag183 (N : Node_Id; Val : Boolean) is
6612 pragma Assert (Nkind (N) in N_Entity);
6615 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag183 := Val;
6618 procedure Set_Flag184 (N : Node_Id; Val : Boolean) is
6620 pragma Assert (Nkind (N) in N_Entity);
6623 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag184 := Val;
6626 procedure Set_Flag185 (N : Node_Id; Val : Boolean) is
6628 pragma Assert (Nkind (N) in N_Entity);
6631 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag185 := Val;
6634 procedure Set_Flag186 (N : Node_Id; Val : Boolean) is
6636 pragma Assert (Nkind (N) in N_Entity);
6639 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag186 := Val;
6642 procedure Set_Flag187 (N : Node_Id; Val : Boolean) is
6644 pragma Assert (Nkind (N) in N_Entity);
6647 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag187 := Val;
6650 procedure Set_Flag188 (N : Node_Id; Val : Boolean) is
6652 pragma Assert (Nkind (N) in N_Entity);
6655 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag188 := Val;
6658 procedure Set_Flag189 (N : Node_Id; Val : Boolean) is
6660 pragma Assert (Nkind (N) in N_Entity);
6663 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag189 := Val;
6666 procedure Set_Flag190 (N : Node_Id; Val : Boolean) is
6668 pragma Assert (Nkind (N) in N_Entity);
6671 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag190 := Val;
6674 procedure Set_Flag191 (N : Node_Id; Val : Boolean) is
6676 pragma Assert (Nkind (N) in N_Entity);
6679 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag191 := Val;
6682 procedure Set_Flag192 (N : Node_Id; Val : Boolean) is
6684 pragma Assert (Nkind (N) in N_Entity);
6687 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag192 := Val;
6690 procedure Set_Flag193 (N : Node_Id; Val : Boolean) is
6692 pragma Assert (Nkind (N) in N_Entity);
6695 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag193 := Val;
6698 procedure Set_Flag194 (N : Node_Id; Val : Boolean) is
6700 pragma Assert (Nkind (N) in N_Entity);
6703 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag194 := Val;
6706 procedure Set_Flag195 (N : Node_Id; Val : Boolean) is
6708 pragma Assert (Nkind (N) in N_Entity);
6711 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag195 := Val;
6714 procedure Set_Flag196 (N : Node_Id; Val : Boolean) is
6716 pragma Assert (Nkind (N) in N_Entity);
6719 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag196 := Val;
6722 procedure Set_Flag197 (N : Node_Id; Val : Boolean) is
6724 pragma Assert (Nkind (N) in N_Entity);
6727 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag197 := Val;
6730 procedure Set_Flag198 (N : Node_Id; Val : Boolean) is
6732 pragma Assert (Nkind (N) in N_Entity);
6735 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag198 := Val;
6738 procedure Set_Flag199 (N : Node_Id; Val : Boolean) is
6740 pragma Assert (Nkind (N) in N_Entity);
6743 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag199 := Val;
6746 procedure Set_Flag200 (N : Node_Id; Val : Boolean) is
6748 pragma Assert (Nkind (N) in N_Entity);
6751 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag200 := Val;
6754 procedure Set_Flag201 (N : Node_Id; Val : Boolean) is
6756 pragma Assert (Nkind (N) in N_Entity);
6759 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag201 := Val;
6762 procedure Set_Flag202 (N : Node_Id; Val : Boolean) is
6764 pragma Assert (Nkind (N) in N_Entity);
6767 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag202 := Val;
6770 procedure Set_Flag203 (N : Node_Id; Val : Boolean) is
6772 pragma Assert (Nkind (N) in N_Entity);
6775 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag203 := Val;
6778 procedure Set_Flag204 (N : Node_Id; Val : Boolean) is
6780 pragma Assert (Nkind (N) in N_Entity);
6783 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag204 := Val;
6786 procedure Set_Flag205 (N : Node_Id; Val : Boolean) is
6788 pragma Assert (Nkind (N) in N_Entity);
6791 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag205 := Val;
6794 procedure Set_Flag206 (N : Node_Id; Val : Boolean) is
6796 pragma Assert (Nkind (N) in N_Entity);
6799 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag206 := Val;
6802 procedure Set_Flag207 (N : Node_Id; Val : Boolean) is
6804 pragma Assert (Nkind (N) in N_Entity);
6807 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag207 := Val;
6810 procedure Set_Flag208 (N : Node_Id; Val : Boolean) is
6812 pragma Assert (Nkind (N) in N_Entity);
6815 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag208 := Val;
6818 procedure Set_Flag209 (N : Node_Id; Val : Boolean) is
6820 pragma Assert (Nkind (N) in N_Entity);
6823 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag209 := Val;
6826 procedure Set_Flag210 (N : Node_Id; Val : Boolean) is
6828 pragma Assert (Nkind (N) in N_Entity);
6831 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag210 := Val;
6834 procedure Set_Flag211 (N : Node_Id; Val : Boolean) is
6836 pragma Assert (Nkind (N) in N_Entity);
6839 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag211 := Val;
6842 procedure Set_Flag212 (N : Node_Id; Val : Boolean) is
6844 pragma Assert (Nkind (N) in N_Entity);
6847 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag212 := Val;
6850 procedure Set_Flag213 (N : Node_Id; Val : Boolean) is
6852 pragma Assert (Nkind (N) in N_Entity);
6855 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag213 := Val;
6858 procedure Set_Flag214 (N : Node_Id; Val : Boolean) is
6860 pragma Assert (Nkind (N) in N_Entity);
6863 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag214 := Val;
6866 procedure Set_Flag215 (N : Node_Id; Val : Boolean) is
6868 pragma Assert (Nkind (N) in N_Entity);
6871 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag215 := Val;
6874 procedure Set_Flag216 (N : Node_Id; Val : Boolean) is
6876 pragma Assert (Nkind (N) in N_Entity);
6879 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag216 := Val;
6882 procedure Set_Flag217 (N : Node_Id; Val : Boolean) is
6884 pragma Assert (Nkind (N) in N_Entity);
6887 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag217 := Val;
6890 procedure Set_Flag218 (N : Node_Id; Val : Boolean) is
6892 pragma Assert (Nkind (N) in N_Entity);
6895 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag218 := Val;
6898 procedure Set_Flag219 (N : Node_Id; Val : Boolean) is
6900 pragma Assert (Nkind (N) in N_Entity);
6903 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag219 := Val;
6906 procedure Set_Flag220 (N : Node_Id; Val : Boolean) is
6908 pragma Assert (Nkind (N) in N_Entity);
6911 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag220 := Val;
6914 procedure Set_Flag221 (N : Node_Id; Val : Boolean) is
6916 pragma Assert (Nkind (N) in N_Entity);
6919 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag221 := Val;
6922 procedure Set_Flag222 (N : Node_Id; Val : Boolean) is
6924 pragma Assert (Nkind (N) in N_Entity);
6927 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag222 := Val;
6930 procedure Set_Flag223 (N : Node_Id; Val : Boolean) is
6932 pragma Assert (Nkind (N) in N_Entity);
6935 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag223 := Val;
6938 procedure Set_Flag224 (N : Node_Id; Val : Boolean) is
6940 pragma Assert (Nkind (N) in N_Entity);
6943 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag224 := Val;
6946 procedure Set_Flag225 (N : Node_Id; Val : Boolean) is
6948 pragma Assert (Nkind (N) in N_Entity);
6951 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag225 := Val;
6954 procedure Set_Flag226 (N : Node_Id; Val : Boolean) is
6956 pragma Assert (Nkind (N) in N_Entity);
6959 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag226 := Val;
6962 procedure Set_Flag227 (N : Node_Id; Val : Boolean) is
6964 pragma Assert (Nkind (N) in N_Entity);
6967 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag227 := Val;
6970 procedure Set_Flag228 (N : Node_Id; Val : Boolean) is
6972 pragma Assert (Nkind (N) in N_Entity);
6975 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag228 := Val;
6978 procedure Set_Flag229 (N : Node_Id; Val : Boolean) is
6980 pragma Assert (Nkind (N) in N_Entity);
6983 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag229 := Val;
6986 procedure Set_Flag230 (N : Node_Id; Val : Boolean) is
6988 pragma Assert (Nkind (N) in N_Entity);
6991 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag230 := Val;
6994 procedure Set_Node1_With_Parent (N : Node_Id; Val : Node_Id) is
6996 pragma Assert (N in Nodes.First .. Nodes.Last);
6997 if Val > Error then Set_Parent (Val, N); end if;
6999 end Set_Node1_With_Parent;
7001 procedure Set_Node2_With_Parent (N : Node_Id; Val : Node_Id) is
7003 pragma Assert (N in Nodes.First .. Nodes.Last);
7004 if Val > Error then Set_Parent (Val, N); end if;
7006 end Set_Node2_With_Parent;
7008 procedure Set_Node3_With_Parent (N : Node_Id; Val : Node_Id) is
7010 pragma Assert (N in Nodes.First .. Nodes.Last);
7011 if Val > Error then Set_Parent (Val, N); end if;
7013 end Set_Node3_With_Parent;
7015 procedure Set_Node4_With_Parent (N : Node_Id; Val : Node_Id) is
7017 pragma Assert (N in Nodes.First .. Nodes.Last);
7018 if Val > Error then Set_Parent (Val, N); end if;
7020 end Set_Node4_With_Parent;
7022 procedure Set_Node5_With_Parent (N : Node_Id; Val : Node_Id) is
7024 pragma Assert (N in Nodes.First .. Nodes.Last);
7025 if Val > Error then Set_Parent (Val, N); end if;
7027 end Set_Node5_With_Parent;
7029 procedure Set_List1_With_Parent (N : Node_Id; Val : List_Id) is
7031 pragma Assert (N in Nodes.First .. Nodes.Last);
7032 if Val /= No_List and then Val /= Error_List then
7033 Set_Parent (Val, N);
7036 end Set_List1_With_Parent;
7038 procedure Set_List2_With_Parent (N : Node_Id; Val : List_Id) is
7040 pragma Assert (N in Nodes.First .. Nodes.Last);
7041 if Val /= No_List and then Val /= Error_List then
7042 Set_Parent (Val, N);
7045 end Set_List2_With_Parent;
7047 procedure Set_List3_With_Parent (N : Node_Id; Val : List_Id) is
7049 pragma Assert (N in Nodes.First .. Nodes.Last);
7050 if Val /= No_List and then Val /= Error_List then
7051 Set_Parent (Val, N);
7054 end Set_List3_With_Parent;
7056 procedure Set_List4_With_Parent (N : Node_Id; Val : List_Id) is
7058 pragma Assert (N in Nodes.First .. Nodes.Last);
7059 if Val /= No_List and then Val /= Error_List then
7060 Set_Parent (Val, N);
7063 end Set_List4_With_Parent;
7065 procedure Set_List5_With_Parent (N : Node_Id; Val : List_Id) is
7067 pragma Assert (N in Nodes.First .. Nodes.Last);
7068 if Val /= No_List and then Val /= Error_List then
7069 Set_Parent (Val, N);
7072 end Set_List5_With_Parent;
7074 end Unchecked_Access;
7082 Nodes.Locked := False;
7083 Orig_Nodes.Locked := False;