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 -- Paren_Count Handling --
540 --------------------------
542 -- As noted in the spec, the paren count in a sub-expression node has
543 -- four possible values 0,1,2, and 3. The value 3 really means 3 or more,
544 -- and we use an auxiliary serially scanned table to record the actual
545 -- count. A serial search is fine, only pathological programs will use
546 -- entries in this table. Normal programs won't use it at all.
548 type Paren_Count_Entry
is record
550 -- The node to which this count applies
552 Count
: Nat
range 3 .. Nat
'Last;
553 -- The count of parentheses, which will be in the indicated range
556 package Paren_Counts
is new Table
.Table
(
557 Table_Component_Type
=> Paren_Count_Entry
,
558 Table_Index_Type
=> Int
,
559 Table_Low_Bound
=> 0,
561 Table_Increment
=> 200,
562 Table_Name
=> "Paren_Counts");
564 -----------------------
565 -- Local Subprograms --
566 -----------------------
568 procedure Fix_Parents
(Old_Node
, New_Node
: Node_Id
);
569 -- Fixup parent pointers for the syntactic children of New_Node after
570 -- a copy, setting them to New_Node when they pointed to Old_Node.
572 function Allocate_Initialize_Node
574 With_Extension
: Boolean) return Node_Id
;
575 -- Allocate a new node or node extension. If Src is not empty,
576 -- the information for the newly-allocated node is copied from it.
578 ------------------------------
579 -- Allocate_Initialize_Node --
580 ------------------------------
582 function Allocate_Initialize_Node
584 With_Extension
: Boolean) return Node_Id
586 New_Id
: Node_Id
:= Src
;
587 Nod
: Node_Record
:= Default_Node
;
588 Ext1
: Node_Record
:= Default_Node_Extension
;
589 Ext2
: Node_Record
:= Default_Node_Extension
;
590 Ext3
: Node_Record
:= Default_Node_Extension
;
591 Ext4
: Node_Record
:= Default_Node_Extension
;
594 if Present
(Src
) then
595 Nod
:= Nodes
.Table
(Src
);
597 if Has_Extension
(Src
) then
598 Ext1
:= Nodes
.Table
(Src
+ 1);
599 Ext2
:= Nodes
.Table
(Src
+ 2);
600 Ext3
:= Nodes
.Table
(Src
+ 3);
601 Ext4
:= Nodes
.Table
(Src
+ 4);
605 if not (Present
(Src
)
606 and then not Has_Extension
(Src
)
607 and then With_Extension
608 and then Src
= Nodes
.Last
)
610 -- We are allocating a new node, or extending a node
611 -- other than Nodes.Last.
614 New_Id
:= Nodes
.Last
;
615 Orig_Nodes
.Append
(New_Id
);
616 Node_Count
:= Node_Count
+ 1;
619 -- Specifically copy Paren_Count to deal with creating new table entry
620 -- if the parentheses count is at the maximum possible value already.
622 if Present
(Src
) and then Nkind
(Src
) in N_Subexpr
then
623 Set_Paren_Count
(New_Id
, Paren_Count
(Src
));
626 -- Set extension nodes if required
628 if With_Extension
then
635 Orig_Nodes
.Set_Last
(Nodes
.Last
);
636 Allocate_List_Tables
(Nodes
.Last
);
638 end Allocate_Initialize_Node
;
644 function Analyzed
(N
: Node_Id
) return Boolean is
646 pragma Assert
(N
<= Nodes
.Last
);
647 return Nodes
.Table
(N
).Analyzed
;
654 procedure Change_Node
(N
: Node_Id
; New_Node_Kind
: Node_Kind
) is
655 Save_Sloc
: constant Source_Ptr
:= Sloc
(N
);
656 Save_In_List
: constant Boolean := Nodes
.Table
(N
).In_List
;
657 Save_Link
: constant Union_Id
:= Nodes
.Table
(N
).Link
;
658 Save_CFS
: constant Boolean := Nodes
.Table
(N
).Comes_From_Source
;
659 Save_Posted
: constant Boolean := Nodes
.Table
(N
).Error_Posted
;
660 Par_Count
: Nat
:= 0;
663 if Nkind
(N
) in N_Subexpr
then
664 Par_Count
:= Paren_Count
(N
);
667 Nodes
.Table
(N
) := Default_Node
;
668 Nodes
.Table
(N
).Sloc
:= Save_Sloc
;
669 Nodes
.Table
(N
).In_List
:= Save_In_List
;
670 Nodes
.Table
(N
).Link
:= Save_Link
;
671 Nodes
.Table
(N
).Comes_From_Source
:= Save_CFS
;
672 Nodes
.Table
(N
).Nkind
:= New_Node_Kind
;
673 Nodes
.Table
(N
).Error_Posted
:= Save_Posted
;
675 if New_Node_Kind
in N_Subexpr
then
676 Set_Paren_Count
(N
, Par_Count
);
680 -----------------------
681 -- Comes_From_Source --
682 -----------------------
684 function Comes_From_Source
(N
: Node_Id
) return Boolean is
686 pragma Assert
(N
<= Nodes
.Last
);
687 return Nodes
.Table
(N
).Comes_From_Source
;
688 end Comes_From_Source
;
694 function Convention
(E
: Entity_Id
) return Convention_Id
is
696 pragma Assert
(Nkind
(E
) in N_Entity
);
697 return To_Flag_Word
(Nodes
.Table
(E
+ 2).Field12
).Convention
;
704 procedure Copy_Node
(Source
: Node_Id
; Destination
: Node_Id
) is
705 Save_In_List
: constant Boolean := Nodes
.Table
(Destination
).In_List
;
706 Save_Link
: constant Union_Id
:= Nodes
.Table
(Destination
).Link
;
709 Nodes
.Table
(Destination
) := Nodes
.Table
(Source
);
710 Nodes
.Table
(Destination
).In_List
:= Save_In_List
;
711 Nodes
.Table
(Destination
).Link
:= Save_Link
;
713 -- Specifically set Paren_Count to make sure auxiliary table entry
714 -- gets correctly made if the parentheses count is at the max value.
716 if Nkind
(Destination
) in N_Subexpr
then
717 Set_Paren_Count
(Destination
, Paren_Count
(Source
));
720 -- Deal with copying extension nodes if present
722 if Has_Extension
(Source
) then
723 pragma Assert
(Has_Extension
(Destination
));
724 Nodes
.Table
(Destination
+ 1) := Nodes
.Table
(Source
+ 1);
725 Nodes
.Table
(Destination
+ 2) := Nodes
.Table
(Source
+ 2);
726 Nodes
.Table
(Destination
+ 3) := Nodes
.Table
(Source
+ 3);
727 Nodes
.Table
(Destination
+ 4) := Nodes
.Table
(Source
+ 4);
730 pragma Assert
(not Has_Extension
(Source
));
735 ------------------------
736 -- Copy_Separate_Tree --
737 ------------------------
739 function Copy_Separate_Tree
(Source
: Node_Id
) return Node_Id
is
742 function Copy_Entity
(E
: Entity_Id
) return Entity_Id
;
743 -- Copy Entity, copying only the Ekind and Chars fields
745 function Copy_List
(List
: List_Id
) return List_Id
;
748 function Possible_Copy
(Field
: Union_Id
) return Union_Id
;
749 -- Given a field, returns a copy of the node or list if its parent
750 -- is the current source node, and otherwise returns the input
756 function Copy_Entity
(E
: Entity_Id
) return Entity_Id
is
760 case N_Entity
(Nkind
(E
)) is
761 when N_Defining_Identifier
=>
762 New_Ent
:= New_Entity
(N_Defining_Identifier
, Sloc
(E
));
764 when N_Defining_Character_Literal
=>
765 New_Ent
:= New_Entity
(N_Defining_Character_Literal
, Sloc
(E
));
767 when N_Defining_Operator_Symbol
=>
768 New_Ent
:= New_Entity
(N_Defining_Operator_Symbol
, Sloc
(E
));
771 Set_Chars
(New_Ent
, Chars
(E
));
779 function Copy_List
(List
: List_Id
) return List_Id
is
784 if List
= No_List
then
791 while Present
(E
) loop
792 if Has_Extension
(E
) then
793 Append
(Copy_Entity
(E
), NL
);
795 Append
(Copy_Separate_Tree
(E
), NL
);
809 function Possible_Copy
(Field
: Union_Id
) return Union_Id
is
813 if Field
in Node_Range
then
814 New_N
:= Union_Id
(Copy_Separate_Tree
(Node_Id
(Field
)));
816 if Parent
(Node_Id
(Field
)) = Source
then
817 Set_Parent
(Node_Id
(New_N
), New_Id
);
822 elsif Field
in List_Range
then
823 New_N
:= Union_Id
(Copy_List
(List_Id
(Field
)));
825 if Parent
(List_Id
(Field
)) = Source
then
826 Set_Parent
(List_Id
(New_N
), New_Id
);
836 -- Start of processing for Copy_Separate_Tree
839 if Source
<= Empty_Or_Error
then
842 elsif Has_Extension
(Source
) then
843 return Copy_Entity
(Source
);
846 New_Id
:= New_Copy
(Source
);
848 -- Recursively copy descendents
850 Set_Field1
(New_Id
, Possible_Copy
(Field1
(New_Id
)));
851 Set_Field2
(New_Id
, Possible_Copy
(Field2
(New_Id
)));
852 Set_Field3
(New_Id
, Possible_Copy
(Field3
(New_Id
)));
853 Set_Field4
(New_Id
, Possible_Copy
(Field4
(New_Id
)));
854 Set_Field5
(New_Id
, Possible_Copy
(Field5
(New_Id
)));
856 -- Set Entity field to Empty
857 -- Why is this done??? and why is it always right to do it???
859 if Nkind
(New_Id
) in N_Has_Entity
860 or else Nkind
(New_Id
) = N_Freeze_Entity
862 Set_Entity
(New_Id
, Empty
);
865 -- All done, return copied node
869 end Copy_Separate_Tree
;
875 procedure Delete_Node
(Node
: Node_Id
) is
877 pragma Assert
(not Nodes
.Table
(Node
).In_List
);
880 Write_Str
("Delete node ");
881 Write_Int
(Int
(Node
));
885 Nodes
.Table
(Node
) := Default_Node
;
886 Nodes
.Table
(Node
).Nkind
:= N_Unused_At_Start
;
887 Node_Count
:= Node_Count
- 1;
889 -- Note: for now, we are not bothering to reuse deleted nodes
897 procedure Delete_Tree
(Node
: Node_Id
) is
899 procedure Delete_Field
(F
: Union_Id
);
900 -- Delete item pointed to by field F if it is a syntactic element
902 procedure Delete_List
(L
: List_Id
);
903 -- Delete all elements on the given list
909 procedure Delete_Field
(F
: Union_Id
) is
911 if F
= Union_Id
(Empty
) then
914 elsif F
in Node_Range
915 and then Parent
(Node_Id
(F
)) = Node
917 Delete_Tree
(Node_Id
(F
));
919 elsif F
in List_Range
920 and then Parent
(List_Id
(F
)) = Node
922 Delete_List
(List_Id
(F
));
924 -- No need to test Elist case, there are no syntactic Elists
935 procedure Delete_List
(L
: List_Id
) is
937 while Is_Non_Empty_List
(L
) loop
938 Delete_Tree
(Remove_Head
(L
));
942 -- Start of processing for Delete_Tree
945 -- Delete descendents
947 Delete_Field
(Field1
(Node
));
948 Delete_Field
(Field2
(Node
));
949 Delete_Field
(Field3
(Node
));
950 Delete_Field
(Field4
(Node
));
951 Delete_Field
(Field5
(Node
));
953 -- ??? According to spec, Node itself should be deleted as well
960 function Ekind
(E
: Entity_Id
) return Entity_Kind
is
962 pragma Assert
(Nkind
(E
) in N_Entity
);
963 return N_To_E
(Nodes
.Table
(E
+ 1).Nkind
);
970 function Error_Posted
(N
: Node_Id
) return Boolean is
972 pragma Assert
(N
<= Nodes
.Last
);
973 return Nodes
.Table
(N
).Error_Posted
;
976 -----------------------
977 -- Exchange_Entities --
978 -----------------------
980 procedure Exchange_Entities
(E1
: Entity_Id
; E2
: Entity_Id
) is
981 Temp_Ent
: Node_Record
;
984 pragma Assert
(Has_Extension
(E1
)
985 and then Has_Extension
(E2
)
986 and then not Nodes
.Table
(E1
).In_List
987 and then not Nodes
.Table
(E2
).In_List
);
989 -- Exchange the contents of the two entities
991 Temp_Ent
:= Nodes
.Table
(E1
);
992 Nodes
.Table
(E1
) := Nodes
.Table
(E2
);
993 Nodes
.Table
(E2
) := Temp_Ent
;
994 Temp_Ent
:= Nodes
.Table
(E1
+ 1);
995 Nodes
.Table
(E1
+ 1) := Nodes
.Table
(E2
+ 1);
996 Nodes
.Table
(E2
+ 1) := Temp_Ent
;
997 Temp_Ent
:= Nodes
.Table
(E1
+ 2);
998 Nodes
.Table
(E1
+ 2) := Nodes
.Table
(E2
+ 2);
999 Nodes
.Table
(E2
+ 2) := Temp_Ent
;
1000 Temp_Ent
:= Nodes
.Table
(E1
+ 3);
1001 Nodes
.Table
(E1
+ 3) := Nodes
.Table
(E2
+ 3);
1002 Nodes
.Table
(E2
+ 3) := Temp_Ent
;
1003 Temp_Ent
:= Nodes
.Table
(E1
+ 4);
1004 Nodes
.Table
(E1
+ 4) := Nodes
.Table
(E2
+ 4);
1005 Nodes
.Table
(E2
+ 4) := Temp_Ent
;
1007 -- That exchange exchanged the parent pointers as well, which is what
1008 -- we want, but we need to patch up the defining identifier pointers
1009 -- in the parent nodes (the child pointers) to match this switch
1010 -- unless for Implicit types entities which have no parent, in which
1011 -- case we don't do anything otherwise we won't be able to revert back
1012 -- to the original situation.
1014 -- Shouldn't this use Is_Itype instead of the Parent test
1016 if Present
(Parent
(E1
)) and then Present
(Parent
(E2
)) then
1017 Set_Defining_Identifier
(Parent
(E1
), E1
);
1018 Set_Defining_Identifier
(Parent
(E2
), E2
);
1020 end Exchange_Entities
;
1026 function Extend_Node
(Node
: Node_Id
) return Entity_Id
is
1029 procedure Debug_Extend_Node
;
1030 pragma Inline
(Debug_Extend_Node
);
1031 -- Debug routine for debug flag N
1033 -----------------------
1034 -- Debug_Extend_Node --
1035 -----------------------
1037 procedure Debug_Extend_Node
is
1039 if Debug_Flag_N
then
1040 Write_Str
("Extend node ");
1041 Write_Int
(Int
(Node
));
1043 if Result
= Node
then
1044 Write_Str
(" in place");
1046 Write_Str
(" copied to ");
1047 Write_Int
(Int
(Result
));
1052 end Debug_Extend_Node
;
1054 -- Start of processing for Extend_Node
1057 pragma Assert
(not (Has_Extension
(Node
)));
1058 Result
:= Allocate_Initialize_Node
(Node
, With_Extension
=> True);
1059 pragma Debug
(Debug_Extend_Node
);
1067 procedure Fix_Parents
(Old_Node
, New_Node
: Node_Id
) is
1069 procedure Fix_Parent
(Field
: Union_Id
; Old_Node
, New_Node
: Node_Id
);
1070 -- Fixup one parent pointer. Field is checked to see if it
1071 -- points to a node, list, or element list that has a parent that
1072 -- points to Old_Node. If so, the parent is reset to point to New_Node.
1078 procedure Fix_Parent
(Field
: Union_Id
; Old_Node
, New_Node
: Node_Id
) is
1080 -- Fix parent of node that is referenced by Field. Note that we must
1081 -- exclude the case where the node is a member of a list, because in
1082 -- this case the parent is the parent of the list.
1084 if Field
in Node_Range
1085 and then Present
(Node_Id
(Field
))
1086 and then not Nodes
.Table
(Node_Id
(Field
)).In_List
1087 and then Parent
(Node_Id
(Field
)) = Old_Node
1089 Set_Parent
(Node_Id
(Field
), New_Node
);
1091 -- Fix parent of list that is referenced by Field
1093 elsif Field
in List_Range
1094 and then Present
(List_Id
(Field
))
1095 and then Parent
(List_Id
(Field
)) = Old_Node
1097 Set_Parent
(List_Id
(Field
), New_Node
);
1101 -- Start of processing for Fix_Parents
1104 Fix_Parent
(Field1
(New_Node
), Old_Node
, New_Node
);
1105 Fix_Parent
(Field2
(New_Node
), Old_Node
, New_Node
);
1106 Fix_Parent
(Field3
(New_Node
), Old_Node
, New_Node
);
1107 Fix_Parent
(Field4
(New_Node
), Old_Node
, New_Node
);
1108 Fix_Parent
(Field5
(New_Node
), Old_Node
, New_Node
);
1111 -----------------------------------
1112 -- Get_Comes_From_Source_Default --
1113 -----------------------------------
1115 function Get_Comes_From_Source_Default
return Boolean is
1117 return Default_Node
.Comes_From_Source
;
1118 end Get_Comes_From_Source_Default
;
1124 function Has_Extension
(N
: Node_Id
) return Boolean is
1126 return N
< Nodes
.Last
and then Nodes
.Table
(N
+ 1).Is_Extension
;
1133 procedure Initialize
is
1135 pragma Warnings
(Off
, Dummy
);
1139 Atree_Private_Part
.Nodes
.Init
;
1143 -- Allocate Empty node
1145 Dummy
:= New_Node
(N_Empty
, No_Location
);
1146 Set_Name1
(Empty
, No_Name
);
1148 -- Allocate Error node, and set Error_Posted, since we certainly
1149 -- only generate an Error node if we do post some kind of error!
1151 Dummy
:= New_Node
(N_Error
, No_Location
);
1152 Set_Name1
(Error
, Error_Name
);
1153 Set_Error_Posted
(Error
, True);
1155 -- Set global variables for New_Copy_Tree
1157 NCT_Hash_Tables_Used
:= False;
1158 NCT_Table_Entries
:= 0;
1159 NCT_Hash_Table_Setup
:= False;
1162 --------------------------
1163 -- Is_Rewrite_Insertion --
1164 --------------------------
1166 function Is_Rewrite_Insertion
(Node
: Node_Id
) return Boolean is
1168 return Nodes
.Table
(Node
).Rewrite_Ins
;
1169 end Is_Rewrite_Insertion
;
1171 -----------------------------
1172 -- Is_Rewrite_Substitution --
1173 -----------------------------
1175 function Is_Rewrite_Substitution
(Node
: Node_Id
) return Boolean is
1177 return Orig_Nodes
.Table
(Node
) /= Node
;
1178 end Is_Rewrite_Substitution
;
1184 function Last_Node_Id
return Node_Id
is
1195 Nodes
.Locked
:= True;
1196 Orig_Nodes
.Locked
:= True;
1201 ----------------------------
1202 -- Mark_Rewrite_Insertion --
1203 ----------------------------
1205 procedure Mark_Rewrite_Insertion
(New_Node
: Node_Id
) is
1207 Nodes
.Table
(New_Node
).Rewrite_Ins
:= True;
1208 end Mark_Rewrite_Insertion
;
1214 function New_Copy
(Source
: Node_Id
) return Node_Id
is
1215 New_Id
: Node_Id
:= Source
;
1218 if Source
> Empty_Or_Error
then
1220 New_Id
:= Allocate_Initialize_Node
(Source
, Has_Extension
(Source
));
1222 Nodes
.Table
(New_Id
).Link
:= Empty_List_Or_Node
;
1223 Nodes
.Table
(New_Id
).In_List
:= False;
1225 -- If the original is marked as a rewrite insertion, then unmark
1226 -- the copy, since we inserted the original, not the copy.
1228 Nodes
.Table
(New_Id
).Rewrite_Ins
:= False;
1229 pragma Debug
(New_Node_Debugging_Output
(New_Id
));
1239 -- Our approach here requires a two pass traversal of the tree. The
1240 -- first pass visits all nodes that eventually will be copied looking
1241 -- for defining Itypes. If any defining Itypes are found, then they are
1242 -- copied, and an entry is added to the replacement map. In the second
1243 -- phase, the tree is copied, using the replacement map to replace any
1244 -- Itype references within the copied tree.
1246 -- The following hash tables are used if the Map supplied has more
1247 -- than hash threshhold entries to speed up access to the map. If
1248 -- there are fewer entries, then the map is searched sequentially
1249 -- (because setting up a hash table for only a few entries takes
1250 -- more time than it saves.
1252 function New_Copy_Hash
(E
: Entity_Id
) return NCT_Header_Num
;
1253 -- Hash function used for hash operations
1259 function New_Copy_Hash
(E
: Entity_Id
) return NCT_Header_Num
is
1261 return Nat
(E
) mod (NCT_Header_Num
'Last + 1);
1268 -- The hash table NCT_Assoc associates old entities in the table
1269 -- with their corresponding new entities (i.e. the pairs of entries
1270 -- presented in the original Map argument are Key-Element pairs).
1272 package NCT_Assoc
is new Simple_HTable
(
1273 Header_Num
=> NCT_Header_Num
,
1274 Element
=> Entity_Id
,
1275 No_Element
=> Empty
,
1277 Hash
=> New_Copy_Hash
,
1278 Equal
=> Types
."=");
1280 ---------------------
1281 -- NCT_Itype_Assoc --
1282 ---------------------
1284 -- The hash table NCT_Itype_Assoc contains entries only for those
1285 -- old nodes which have a non-empty Associated_Node_For_Itype set.
1286 -- The key is the associated node, and the element is the new node
1287 -- itself (NOT the associated node for the new node).
1289 package NCT_Itype_Assoc
is new Simple_HTable
(
1290 Header_Num
=> NCT_Header_Num
,
1291 Element
=> Entity_Id
,
1292 No_Element
=> Empty
,
1294 Hash
=> New_Copy_Hash
,
1295 Equal
=> Types
."=");
1297 -- Start of processing for New_Copy_Tree function
1299 function New_Copy_Tree
1301 Map
: Elist_Id
:= No_Elist
;
1302 New_Sloc
: Source_Ptr
:= No_Location
;
1303 New_Scope
: Entity_Id
:= Empty
) return Node_Id
1305 Actual_Map
: Elist_Id
:= Map
;
1306 -- This is the actual map for the copy. It is initialized with the
1307 -- given elements, and then enlarged as required for Itypes that are
1308 -- copied during the first phase of the copy operation. The visit
1309 -- procedures add elements to this map as Itypes are encountered.
1310 -- The reason we cannot use Map directly, is that it may well be
1311 -- (and normally is) initialized to No_Elist, and if we have mapped
1312 -- entities, we have to reset it to point to a real Elist.
1314 function Assoc
(N
: Node_Or_Entity_Id
) return Node_Id
;
1315 -- Called during second phase to map entities into their corresponding
1316 -- copies using Actual_Map. If the argument is not an entity, or is not
1317 -- in Actual_Map, then it is returned unchanged.
1319 procedure Build_NCT_Hash_Tables
;
1320 -- Builds hash tables (number of elements >= threshold value)
1322 function Copy_Elist_With_Replacement
1323 (Old_Elist
: Elist_Id
) return Elist_Id
;
1324 -- Called during second phase to copy element list doing replacements
1326 procedure Copy_Itype_With_Replacement
(New_Itype
: Entity_Id
);
1327 -- Called during the second phase to process a copied Itype. The actual
1328 -- copy happened during the first phase (so that we could make the entry
1329 -- in the mapping), but we still have to deal with the descendents of
1330 -- the copied Itype and copy them where necessary.
1332 function Copy_List_With_Replacement
(Old_List
: List_Id
) return List_Id
;
1333 -- Called during second phase to copy list doing replacements
1335 function Copy_Node_With_Replacement
(Old_Node
: Node_Id
) return Node_Id
;
1336 -- Called during second phase to copy node doing replacements
1338 procedure Visit_Elist
(E
: Elist_Id
);
1339 -- Called during first phase to visit all elements of an Elist
1341 procedure Visit_Field
(F
: Union_Id
; N
: Node_Id
);
1342 -- Visit a single field, recursing to call Visit_Node or Visit_List
1343 -- if the field is a syntactic descendent of the current node (i.e.
1344 -- its parent is Node N).
1346 procedure Visit_Itype
(Old_Itype
: Entity_Id
);
1347 -- Called during first phase to visit subsidiary fields of a defining
1348 -- Itype, and also create a copy and make an entry in the replacement
1349 -- map for the new copy.
1351 procedure Visit_List
(L
: List_Id
);
1352 -- Called during first phase to visit all elements of a List
1354 procedure Visit_Node
(N
: Node_Or_Entity_Id
);
1355 -- Called during first phase to visit a node and all its subtrees
1361 function Assoc
(N
: Node_Or_Entity_Id
) return Node_Id
is
1366 if not Has_Extension
(N
) or else No
(Actual_Map
) then
1369 elsif NCT_Hash_Tables_Used
then
1370 Ent
:= NCT_Assoc
.Get
(Entity_Id
(N
));
1372 if Present
(Ent
) then
1378 -- No hash table used, do serial search
1381 E
:= First_Elmt
(Actual_Map
);
1382 while Present
(E
) loop
1383 if Node
(E
) = N
then
1384 return Node
(Next_Elmt
(E
));
1386 E
:= Next_Elmt
(Next_Elmt
(E
));
1394 ---------------------------
1395 -- Build_NCT_Hash_Tables --
1396 ---------------------------
1398 procedure Build_NCT_Hash_Tables
is
1402 if NCT_Hash_Table_Setup
then
1404 NCT_Itype_Assoc
.Reset
;
1407 Elmt
:= First_Elmt
(Actual_Map
);
1408 while Present
(Elmt
) loop
1411 -- Get new entity, and associate old and new
1414 NCT_Assoc
.Set
(Ent
, Node
(Elmt
));
1416 if Is_Type
(Ent
) then
1418 Anode
: constant Entity_Id
:=
1419 Associated_Node_For_Itype
(Ent
);
1422 if Present
(Anode
) then
1424 -- Enter a link between the associated node of the
1425 -- old Itype and the new Itype, for updating later
1426 -- when node is copied.
1428 NCT_Itype_Assoc
.Set
(Anode
, Node
(Elmt
));
1436 NCT_Hash_Tables_Used
:= True;
1437 NCT_Hash_Table_Setup
:= True;
1438 end Build_NCT_Hash_Tables
;
1440 ---------------------------------
1441 -- Copy_Elist_With_Replacement --
1442 ---------------------------------
1444 function Copy_Elist_With_Replacement
1445 (Old_Elist
: Elist_Id
) return Elist_Id
1448 New_Elist
: Elist_Id
;
1451 if No
(Old_Elist
) then
1455 New_Elist
:= New_Elmt_List
;
1457 M
:= First_Elmt
(Old_Elist
);
1458 while Present
(M
) loop
1459 Append_Elmt
(Copy_Node_With_Replacement
(Node
(M
)), New_Elist
);
1465 end Copy_Elist_With_Replacement
;
1467 ---------------------------------
1468 -- Copy_Itype_With_Replacement --
1469 ---------------------------------
1471 -- This routine exactly parallels its phase one analog Visit_Itype,
1472 -- and like that routine, knows far too many semantic details about
1473 -- the descendents of Itypes and whether they need copying or not.
1475 procedure Copy_Itype_With_Replacement
(New_Itype
: Entity_Id
) is
1477 -- Translate Next_Entity, Scope and Etype fields, in case they
1478 -- reference entities that have been mapped into copies.
1480 Set_Next_Entity
(New_Itype
, Assoc
(Next_Entity
(New_Itype
)));
1481 Set_Etype
(New_Itype
, Assoc
(Etype
(New_Itype
)));
1483 if Present
(New_Scope
) then
1484 Set_Scope
(New_Itype
, New_Scope
);
1486 Set_Scope
(New_Itype
, Assoc
(Scope
(New_Itype
)));
1489 -- Copy referenced fields
1491 if Is_Discrete_Type
(New_Itype
) then
1492 Set_Scalar_Range
(New_Itype
,
1493 Copy_Node_With_Replacement
(Scalar_Range
(New_Itype
)));
1495 elsif Has_Discriminants
(Base_Type
(New_Itype
)) then
1496 Set_Discriminant_Constraint
(New_Itype
,
1497 Copy_Elist_With_Replacement
1498 (Discriminant_Constraint
(New_Itype
)));
1500 elsif Is_Array_Type
(New_Itype
) then
1501 if Present
(First_Index
(New_Itype
)) then
1502 Set_First_Index
(New_Itype
,
1503 First
(Copy_List_With_Replacement
1504 (List_Containing
(First_Index
(New_Itype
)))));
1507 if Is_Packed
(New_Itype
) then
1508 Set_Packed_Array_Type
(New_Itype
,
1509 Copy_Node_With_Replacement
1510 (Packed_Array_Type
(New_Itype
)));
1513 end Copy_Itype_With_Replacement
;
1515 --------------------------------
1516 -- Copy_List_With_Replacement --
1517 --------------------------------
1519 function Copy_List_With_Replacement
1520 (Old_List
: List_Id
) return List_Id
1526 if Old_List
= No_List
then
1530 New_List
:= Empty_List
;
1532 E
:= First
(Old_List
);
1533 while Present
(E
) loop
1534 Append
(Copy_Node_With_Replacement
(E
), New_List
);
1540 end Copy_List_With_Replacement
;
1542 --------------------------------
1543 -- Copy_Node_With_Replacement --
1544 --------------------------------
1546 function Copy_Node_With_Replacement
1547 (Old_Node
: Node_Id
) return Node_Id
1551 procedure Adjust_Named_Associations
1552 (Old_Node
: Node_Id
;
1553 New_Node
: Node_Id
);
1554 -- If a call node has named associations, these are chained through
1555 -- the First_Named_Actual, Next_Named_Actual links. These must be
1556 -- propagated separately to the new parameter list, because these
1557 -- are not syntactic fields.
1559 function Copy_Field_With_Replacement
1560 (Field
: Union_Id
) return Union_Id
;
1561 -- Given Field, which is a field of Old_Node, return a copy of it
1562 -- if it is a syntactic field (i.e. its parent is Node), setting
1563 -- the parent of the copy to poit to New_Node. Otherwise returns
1564 -- the field (possibly mapped if it is an entity).
1566 -------------------------------
1567 -- Adjust_Named_Associations --
1568 -------------------------------
1570 procedure Adjust_Named_Associations
1571 (Old_Node
: Node_Id
;
1581 Old_E
:= First
(Parameter_Associations
(Old_Node
));
1582 New_E
:= First
(Parameter_Associations
(New_Node
));
1583 while Present
(Old_E
) loop
1584 if Nkind
(Old_E
) = N_Parameter_Association
1585 and then Present
(Next_Named_Actual
(Old_E
))
1587 if First_Named_Actual
(Old_Node
)
1588 = Explicit_Actual_Parameter
(Old_E
)
1590 Set_First_Named_Actual
1591 (New_Node
, Explicit_Actual_Parameter
(New_E
));
1594 -- Now scan parameter list from the beginning,to locate
1595 -- next named actual, which can be out of order.
1597 Old_Next
:= First
(Parameter_Associations
(Old_Node
));
1598 New_Next
:= First
(Parameter_Associations
(New_Node
));
1600 while Nkind
(Old_Next
) /= N_Parameter_Association
1601 or else Explicit_Actual_Parameter
(Old_Next
)
1602 /= Next_Named_Actual
(Old_E
)
1608 Set_Next_Named_Actual
1609 (New_E
, Explicit_Actual_Parameter
(New_Next
));
1615 end Adjust_Named_Associations
;
1617 ---------------------------------
1618 -- Copy_Field_With_Replacement --
1619 ---------------------------------
1621 function Copy_Field_With_Replacement
1622 (Field
: Union_Id
) return Union_Id
1625 if Field
= Union_Id
(Empty
) then
1628 elsif Field
in Node_Range
then
1630 Old_N
: constant Node_Id
:= Node_Id
(Field
);
1634 -- If syntactic field, as indicated by the parent pointer
1635 -- being set, then copy the referenced node recursively.
1637 if Parent
(Old_N
) = Old_Node
then
1638 New_N
:= Copy_Node_With_Replacement
(Old_N
);
1640 if New_N
/= Old_N
then
1641 Set_Parent
(New_N
, New_Node
);
1644 -- For semantic fields, update possible entity reference
1645 -- from the replacement map.
1648 New_N
:= Assoc
(Old_N
);
1651 return Union_Id
(New_N
);
1654 elsif Field
in List_Range
then
1656 Old_L
: constant List_Id
:= List_Id
(Field
);
1660 -- If syntactic field, as indicated by the parent pointer,
1661 -- then recursively copy the entire referenced list.
1663 if Parent
(Old_L
) = Old_Node
then
1664 New_L
:= Copy_List_With_Replacement
(Old_L
);
1665 Set_Parent
(New_L
, New_Node
);
1667 -- For semantic list, just returned unchanged
1673 return Union_Id
(New_L
);
1676 -- Anything other than a list or a node is returned unchanged
1681 end Copy_Field_With_Replacement
;
1683 -- Start of processing for Copy_Node_With_Replacement
1686 if Old_Node
<= Empty_Or_Error
then
1689 elsif Has_Extension
(Old_Node
) then
1690 return Assoc
(Old_Node
);
1693 New_Node
:= New_Copy
(Old_Node
);
1695 -- If the node we are copying is the associated node of a
1696 -- previously copied Itype, then adjust the associated node
1697 -- of the copy of that Itype accordingly.
1699 if Present
(Actual_Map
) then
1705 -- Case of hash table used
1707 if NCT_Hash_Tables_Used
then
1708 Ent
:= NCT_Itype_Assoc
.Get
(Old_Node
);
1710 if Present
(Ent
) then
1711 Set_Associated_Node_For_Itype
(Ent
, New_Node
);
1714 -- Case of no hash table used
1717 E
:= First_Elmt
(Actual_Map
);
1718 while Present
(E
) loop
1719 if Is_Itype
(Node
(E
))
1721 Old_Node
= Associated_Node_For_Itype
(Node
(E
))
1723 Set_Associated_Node_For_Itype
1724 (Node
(Next_Elmt
(E
)), New_Node
);
1727 E
:= Next_Elmt
(Next_Elmt
(E
));
1733 -- Recursively copy descendents
1736 (New_Node
, Copy_Field_With_Replacement
(Field1
(New_Node
)));
1738 (New_Node
, Copy_Field_With_Replacement
(Field2
(New_Node
)));
1740 (New_Node
, Copy_Field_With_Replacement
(Field3
(New_Node
)));
1742 (New_Node
, Copy_Field_With_Replacement
(Field4
(New_Node
)));
1744 (New_Node
, Copy_Field_With_Replacement
(Field5
(New_Node
)));
1746 -- Adjust Sloc of new node if necessary
1748 if New_Sloc
/= No_Location
then
1749 Set_Sloc
(New_Node
, New_Sloc
);
1751 -- If we adjust the Sloc, then we are essentially making
1752 -- a completely new node, so the Comes_From_Source flag
1753 -- should be reset to the proper default value.
1755 Nodes
.Table
(New_Node
).Comes_From_Source
:=
1756 Default_Node
.Comes_From_Source
;
1759 -- If the node is call and has named associations,
1760 -- set the corresponding links in the copy.
1762 if (Nkind
(Old_Node
) = N_Function_Call
1763 or else Nkind
(Old_Node
) = N_Entry_Call_Statement
1765 Nkind
(Old_Node
) = N_Procedure_Call_Statement
)
1766 and then Present
(First_Named_Actual
(Old_Node
))
1768 Adjust_Named_Associations
(Old_Node
, New_Node
);
1771 -- Reset First_Real_Statement for Handled_Sequence_Of_Statements.
1772 -- The replacement mechanism applies to entities, and is not used
1773 -- here. Eventually we may need a more general graph-copying
1774 -- routine. For now, do a sequential search to find desired node.
1776 if Nkind
(Old_Node
) = N_Handled_Sequence_Of_Statements
1777 and then Present
(First_Real_Statement
(Old_Node
))
1780 Old_F
: constant Node_Id
:= First_Real_Statement
(Old_Node
);
1784 N1
:= First
(Statements
(Old_Node
));
1785 N2
:= First
(Statements
(New_Node
));
1787 while N1
/= Old_F
loop
1792 Set_First_Real_Statement
(New_Node
, N2
);
1797 -- All done, return copied node
1800 end Copy_Node_With_Replacement
;
1806 procedure Visit_Elist
(E
: Elist_Id
) is
1810 Elmt
:= First_Elmt
(E
);
1812 while Elmt
/= No_Elmt
loop
1813 Visit_Node
(Node
(Elmt
));
1823 procedure Visit_Field
(F
: Union_Id
; N
: Node_Id
) is
1825 if F
= Union_Id
(Empty
) then
1828 elsif F
in Node_Range
then
1830 -- Copy node if it is syntactic, i.e. its parent pointer is
1831 -- set to point to the field that referenced it (certain
1832 -- Itypes will also meet this criterion, which is fine, since
1833 -- these are clearly Itypes that do need to be copied, since
1834 -- we are copying their parent.)
1836 if Parent
(Node_Id
(F
)) = N
then
1837 Visit_Node
(Node_Id
(F
));
1840 -- Another case, if we are pointing to an Itype, then we want
1841 -- to copy it if its associated node is somewhere in the tree
1844 -- Note: the exclusion of self-referential copies is just an
1845 -- optimization, since the search of the already copied list
1846 -- would catch it, but it is a common case (Etype pointing
1847 -- to itself for an Itype that is a base type).
1849 elsif Has_Extension
(Node_Id
(F
))
1850 and then Is_Itype
(Entity_Id
(F
))
1851 and then Node_Id
(F
) /= N
1857 P
:= Associated_Node_For_Itype
(Node_Id
(F
));
1858 while Present
(P
) loop
1860 Visit_Node
(Node_Id
(F
));
1867 -- An Itype whose parent is not being copied definitely
1868 -- should NOT be copied, since it does not belong in any
1869 -- sense to the copied subtree.
1875 elsif F
in List_Range
1876 and then Parent
(List_Id
(F
)) = N
1878 Visit_List
(List_Id
(F
));
1887 -- Note: we are relying on far too much semantic knowledge in this
1888 -- routine, it really should just do a blind replacement of all
1889 -- fields, or at least a more blind replacement. For example, we
1890 -- do not deal with corresponding record types, and that works
1891 -- because we have no Itypes of task types, but nowhere is there
1892 -- a guarantee that this will always be the case. ???
1894 procedure Visit_Itype
(Old_Itype
: Entity_Id
) is
1895 New_Itype
: Entity_Id
;
1900 -- Itypes that describe the designated type of access to subprograms
1901 -- have the structure of subprogram declarations, with signatures,
1902 -- etc. Either we duplicate the signatures completely, or choose to
1903 -- share such itypes, which is fine because their elaboration will
1904 -- have no side effects. In any case, this is additional semantic
1905 -- information that seems awkward to have in atree.
1907 if Ekind
(Old_Itype
) = E_Subprogram_Type
then
1911 New_Itype
:= New_Copy
(Old_Itype
);
1913 -- The new Itype has all the attributes of the old one, and
1914 -- we just copy the contents of the entity. However, the back-end
1915 -- needs different names for debugging purposes, so we create a
1916 -- new internal name by appending the letter 'c' (copy) to the
1917 -- name of the original.
1919 Get_Name_String
(Chars
(Old_Itype
));
1920 Add_Char_To_Name_Buffer
('c');
1921 Set_Chars
(New_Itype
, Name_Enter
);
1923 -- If our associated node is an entity that has already been copied,
1924 -- then set the associated node of the copy to point to the right
1925 -- copy. If we have copied an Itype that is itself the associated
1926 -- node of some previously copied Itype, then we set the right
1927 -- pointer in the other direction.
1929 if Present
(Actual_Map
) then
1931 -- Case of hash tables used
1933 if NCT_Hash_Tables_Used
then
1935 Ent
:= NCT_Assoc
.Get
(Associated_Node_For_Itype
(Old_Itype
));
1937 if Present
(Ent
) then
1938 Set_Associated_Node_For_Itype
(New_Itype
, Ent
);
1941 Ent
:= NCT_Itype_Assoc
.Get
(Old_Itype
);
1942 if Present
(Ent
) then
1943 Set_Associated_Node_For_Itype
(Ent
, New_Itype
);
1945 -- If the hash table has no association for this Itype and
1946 -- its associated node, enter one now.
1950 (Associated_Node_For_Itype
(Old_Itype
), New_Itype
);
1953 -- Case of hash tables not used
1956 E
:= First_Elmt
(Actual_Map
);
1957 while Present
(E
) loop
1958 if Associated_Node_For_Itype
(Old_Itype
) = Node
(E
) then
1959 Set_Associated_Node_For_Itype
1960 (New_Itype
, Node
(Next_Elmt
(E
)));
1963 if Is_Type
(Node
(E
))
1965 Old_Itype
= Associated_Node_For_Itype
(Node
(E
))
1967 Set_Associated_Node_For_Itype
1968 (Node
(Next_Elmt
(E
)), New_Itype
);
1971 E
:= Next_Elmt
(Next_Elmt
(E
));
1976 if Present
(Freeze_Node
(New_Itype
)) then
1977 Set_Is_Frozen
(New_Itype
, False);
1978 Set_Freeze_Node
(New_Itype
, Empty
);
1981 -- Add new association to map
1983 if No
(Actual_Map
) then
1984 Actual_Map
:= New_Elmt_List
;
1987 Append_Elmt
(Old_Itype
, Actual_Map
);
1988 Append_Elmt
(New_Itype
, Actual_Map
);
1990 if NCT_Hash_Tables_Used
then
1991 NCT_Assoc
.Set
(Old_Itype
, New_Itype
);
1994 NCT_Table_Entries
:= NCT_Table_Entries
+ 1;
1996 if NCT_Table_Entries
> NCT_Hash_Threshhold
then
1997 Build_NCT_Hash_Tables
;
2001 -- If a record subtype is simply copied, the entity list will be
2002 -- shared. Thus cloned_Subtype must be set to indicate the sharing.
2004 if Ekind
(Old_Itype
) = E_Record_Subtype
2005 or else Ekind
(Old_Itype
) = E_Class_Wide_Subtype
2007 Set_Cloned_Subtype
(New_Itype
, Old_Itype
);
2010 -- Visit descendents that eventually get copied
2012 Visit_Field
(Union_Id
(Etype
(Old_Itype
)), Old_Itype
);
2014 if Is_Discrete_Type
(Old_Itype
) then
2015 Visit_Field
(Union_Id
(Scalar_Range
(Old_Itype
)), Old_Itype
);
2017 elsif Has_Discriminants
(Base_Type
(Old_Itype
)) then
2018 -- ??? This should involve call to Visit_Field
2019 Visit_Elist
(Discriminant_Constraint
(Old_Itype
));
2021 elsif Is_Array_Type
(Old_Itype
) then
2022 if Present
(First_Index
(Old_Itype
)) then
2023 Visit_Field
(Union_Id
(List_Containing
2024 (First_Index
(Old_Itype
))),
2028 if Is_Packed
(Old_Itype
) then
2029 Visit_Field
(Union_Id
(Packed_Array_Type
(Old_Itype
)),
2039 procedure Visit_List
(L
: List_Id
) is
2042 if L
/= No_List
then
2045 while Present
(N
) loop
2056 procedure Visit_Node
(N
: Node_Or_Entity_Id
) is
2058 -- Start of processing for Visit_Node
2061 -- Handle case of an Itype, which must be copied
2063 if Has_Extension
(N
)
2064 and then Is_Itype
(N
)
2066 -- Nothing to do if already in the list. This can happen with an
2067 -- Itype entity that appears more than once in the tree.
2068 -- Note that we do not want to visit descendents in this case.
2070 -- Test for already in list when hash table is used
2072 if NCT_Hash_Tables_Used
then
2073 if Present
(NCT_Assoc
.Get
(Entity_Id
(N
))) then
2077 -- Test for already in list when hash table not used
2083 if Present
(Actual_Map
) then
2084 E
:= First_Elmt
(Actual_Map
);
2085 while Present
(E
) loop
2086 if Node
(E
) = N
then
2089 E
:= Next_Elmt
(Next_Elmt
(E
));
2099 -- Visit descendents
2101 Visit_Field
(Field1
(N
), N
);
2102 Visit_Field
(Field2
(N
), N
);
2103 Visit_Field
(Field3
(N
), N
);
2104 Visit_Field
(Field4
(N
), N
);
2105 Visit_Field
(Field5
(N
), N
);
2108 -- Start of processing for New_Copy_Tree
2113 -- See if we should use hash table
2115 if No
(Actual_Map
) then
2116 NCT_Hash_Tables_Used
:= False;
2123 NCT_Table_Entries
:= 0;
2125 Elmt
:= First_Elmt
(Actual_Map
);
2126 while Present
(Elmt
) loop
2127 NCT_Table_Entries
:= NCT_Table_Entries
+ 1;
2132 if NCT_Table_Entries
> NCT_Hash_Threshhold
then
2133 Build_NCT_Hash_Tables
;
2135 NCT_Hash_Tables_Used
:= False;
2140 -- Hash table set up if required, now start phase one by visiting
2141 -- top node (we will recursively visit the descendents).
2143 Visit_Node
(Source
);
2145 -- Now the second phase of the copy can start. First we process
2146 -- all the mapped entities, copying their descendents.
2148 if Present
(Actual_Map
) then
2151 New_Itype
: Entity_Id
;
2153 Elmt
:= First_Elmt
(Actual_Map
);
2154 while Present
(Elmt
) loop
2156 New_Itype
:= Node
(Elmt
);
2157 Copy_Itype_With_Replacement
(New_Itype
);
2163 -- Now we can copy the actual tree
2165 return Copy_Node_With_Replacement
(Source
);
2173 (New_Node_Kind
: Node_Kind
;
2174 New_Sloc
: Source_Ptr
) return Entity_Id
2179 pragma Assert
(New_Node_Kind
in N_Entity
);
2181 Ent
:= Allocate_Initialize_Node
(Empty
, With_Extension
=> True);
2183 -- If this is a node with a real location and we are generating
2184 -- source nodes, then reset Current_Error_Node. This is useful
2185 -- if we bomb during parsing to get a error location for the bomb.
2187 if Default_Node
.Comes_From_Source
and then New_Sloc
> No_Location
then
2188 Current_Error_Node
:= Ent
;
2191 Nodes
.Table
(Ent
).Nkind
:= New_Node_Kind
;
2192 Nodes
.Table
(Ent
).Sloc
:= New_Sloc
;
2193 pragma Debug
(New_Node_Debugging_Output
(Ent
));
2203 (New_Node_Kind
: Node_Kind
;
2204 New_Sloc
: Source_Ptr
) return Node_Id
2209 pragma Assert
(New_Node_Kind
not in N_Entity
);
2210 Nod
:= Allocate_Initialize_Node
(Empty
, With_Extension
=> False);
2211 Nodes
.Table
(Nod
).Nkind
:= New_Node_Kind
;
2212 Nodes
.Table
(Nod
).Sloc
:= New_Sloc
;
2213 pragma Debug
(New_Node_Debugging_Output
(Nod
));
2215 -- If this is a node with a real location and we are generating source
2216 -- nodes, then reset Current_Error_Node. This is useful if we bomb
2217 -- during parsing to get an error location for the bomb.
2219 if Default_Node
.Comes_From_Source
and then New_Sloc
> No_Location
then
2220 Current_Error_Node
:= Nod
;
2226 -------------------------
2227 -- New_Node_Breakpoint --
2228 -------------------------
2230 procedure nn
is -- New_Node_Breakpoint
2232 Write_Str
("Watched node ");
2233 Write_Int
(Int
(Watch_Node
));
2234 Write_Str
(" created");
2238 -------------------------------
2239 -- New_Node_Debugging_Output --
2240 -------------------------------
2242 procedure nnd
(N
: Node_Id
) is -- New_Node_Debugging_Output
2243 Node_Is_Watched
: constant Boolean := N
= Watch_Node
;
2246 if Debug_Flag_N
or else Node_Is_Watched
then
2247 Write_Str
("Allocate ");
2249 if Nkind
(N
) in N_Entity
then
2250 Write_Str
("entity");
2255 Write_Str
(", Id = ");
2256 Write_Int
(Int
(N
));
2258 Write_Location
(Sloc
(N
));
2260 Write_Str
(Node_Kind
'Image (Nkind
(N
)));
2263 if Node_Is_Watched
then
2264 New_Node_Breakpoint
;
2273 function Nkind
(N
: Node_Id
) return Node_Kind
is
2275 return Nodes
.Table
(N
).Nkind
;
2282 function No
(N
: Node_Id
) return Boolean is
2291 function Nodes_Address
return System
.Address
is
2293 return Nodes
.Table
(First_Node_Id
)'Address;
2300 function Num_Nodes
return Nat
is
2309 function Original_Node
(Node
: Node_Id
) return Node_Id
is
2311 return Orig_Nodes
.Table
(Node
);
2318 function Paren_Count
(N
: Node_Id
) return Nat
is
2322 pragma Assert
(N
<= Nodes
.Last
);
2324 if Nodes
.Table
(N
).Pflag1
then
2328 if Nodes
.Table
(N
).Pflag2
then
2332 -- Value of 0,1,2 returned as is
2337 -- Value of 3 means we search the table, and we must find an entry
2340 for J
in Paren_Counts
.First
.. Paren_Counts
.Last
loop
2341 if N
= Paren_Counts
.Table
(J
).Nod
then
2342 return Paren_Counts
.Table
(J
).Count
;
2346 raise Program_Error
;
2354 function Parent
(N
: Node_Id
) return Node_Id
is
2356 if Is_List_Member
(N
) then
2357 return Parent
(List_Containing
(N
));
2359 return Node_Id
(Nodes
.Table
(N
).Link
);
2367 function Present
(N
: Node_Id
) return Boolean is
2372 --------------------------------
2373 -- Preserve_Comes_From_Source --
2374 --------------------------------
2376 procedure Preserve_Comes_From_Source
(NewN
, OldN
: Node_Id
) is
2378 Nodes
.Table
(NewN
).Comes_From_Source
:=
2379 Nodes
.Table
(OldN
).Comes_From_Source
;
2380 end Preserve_Comes_From_Source
;
2386 function Relocate_Node
(Source
: Node_Id
) return Node_Id
is
2394 New_Node
:= New_Copy
(Source
);
2395 Fix_Parents
(Source
, New_Node
);
2397 -- We now set the parent of the new node to be the same as the
2398 -- parent of the source. Almost always this parent will be
2399 -- replaced by a new value when the relocated node is reattached
2400 -- to the tree, but by doing it now, we ensure that this node is
2401 -- not even temporarily disconnected from the tree. Note that this
2402 -- does not happen free, because in the list case, the parent does
2405 Set_Parent
(New_Node
, Parent
(Source
));
2407 -- If the node being relocated was a rewriting of some original
2408 -- node, then the relocated node has the same original node.
2410 if Orig_Nodes
.Table
(Source
) /= Source
then
2411 Orig_Nodes
.Table
(New_Node
) := Orig_Nodes
.Table
(Source
);
2421 procedure Replace
(Old_Node
, New_Node
: Node_Id
) is
2422 Old_Post
: constant Boolean := Nodes
.Table
(Old_Node
).Error_Posted
;
2423 Old_CFS
: constant Boolean := Nodes
.Table
(Old_Node
).Comes_From_Source
;
2427 (not Has_Extension
(Old_Node
)
2428 and not Has_Extension
(New_Node
)
2429 and not Nodes
.Table
(New_Node
).In_List
);
2431 -- Do copy, preserving link and in list status and comes from source
2433 Copy_Node
(Source
=> New_Node
, Destination
=> Old_Node
);
2434 Nodes
.Table
(Old_Node
).Comes_From_Source
:= Old_CFS
;
2435 Nodes
.Table
(Old_Node
).Error_Posted
:= Old_Post
;
2437 -- Fix parents of substituted node, since it has changed identity
2439 Fix_Parents
(New_Node
, Old_Node
);
2441 -- Since we are doing a replace, we assume that the original node
2442 -- is intended to become the new replaced node. The call would be
2443 -- to Rewrite if there were an intention to save the original node.
2445 Orig_Nodes
.Table
(Old_Node
) := Old_Node
;
2447 -- Finally delete the source, since it is now copied
2449 Delete_Node
(New_Node
);
2456 procedure Rewrite
(Old_Node
, New_Node
: Node_Id
) is
2457 Old_Error_P
: constant Boolean := Nodes
.Table
(Old_Node
).Error_Posted
;
2458 -- This fields is always preserved in the new node
2460 Old_Paren_Count
: Nat
;
2461 Old_Must_Not_Freeze
: Boolean;
2462 -- These fields are preserved in the new node only if the new node
2463 -- and the old node are both subexpression nodes.
2465 -- Note: it is a violation of abstraction levels for Must_Not_Freeze
2466 -- to be referenced like this. ???
2472 (not Has_Extension
(Old_Node
)
2473 and not Has_Extension
(New_Node
)
2474 and not Nodes
.Table
(New_Node
).In_List
);
2476 if Nkind
(Old_Node
) in N_Subexpr
then
2477 Old_Paren_Count
:= Paren_Count
(Old_Node
);
2478 Old_Must_Not_Freeze
:= Must_Not_Freeze
(Old_Node
);
2480 Old_Paren_Count
:= 0;
2481 Old_Must_Not_Freeze
:= False;
2484 -- Allocate a new node, to be used to preserve the original contents
2485 -- of the Old_Node, for possible later retrival by Original_Node and
2486 -- make an entry in the Orig_Nodes table. This is only done if we have
2487 -- not already rewritten the node, as indicated by an Orig_Nodes entry
2488 -- that does not reference the Old_Node.
2490 if Orig_Nodes
.Table
(Old_Node
) = Old_Node
then
2491 Sav_Node
:= New_Copy
(Old_Node
);
2492 Orig_Nodes
.Table
(Sav_Node
) := Sav_Node
;
2493 Orig_Nodes
.Table
(Old_Node
) := Sav_Node
;
2496 -- Copy substitute node into place, preserving old fields as required
2498 Copy_Node
(Source
=> New_Node
, Destination
=> Old_Node
);
2499 Nodes
.Table
(Old_Node
).Error_Posted
:= Old_Error_P
;
2501 if Nkind
(New_Node
) in N_Subexpr
then
2502 Set_Paren_Count
(Old_Node
, Old_Paren_Count
);
2503 Set_Must_Not_Freeze
(Old_Node
, Old_Must_Not_Freeze
);
2506 Fix_Parents
(New_Node
, Old_Node
);
2513 procedure Set_Analyzed
(N
: Node_Id
; Val
: Boolean := True) is
2515 Nodes
.Table
(N
).Analyzed
:= Val
;
2518 ---------------------------
2519 -- Set_Comes_From_Source --
2520 ---------------------------
2522 procedure Set_Comes_From_Source
(N
: Node_Id
; Val
: Boolean) is
2524 pragma Assert
(N
<= Nodes
.Last
);
2525 Nodes
.Table
(N
).Comes_From_Source
:= Val
;
2526 end Set_Comes_From_Source
;
2528 -----------------------------------
2529 -- Set_Comes_From_Source_Default --
2530 -----------------------------------
2532 procedure Set_Comes_From_Source_Default
(Default
: Boolean) is
2534 Default_Node
.Comes_From_Source
:= Default
;
2535 end Set_Comes_From_Source_Default
;
2537 --------------------
2538 -- Set_Convention --
2539 --------------------
2541 procedure Set_Convention
(E
: Entity_Id
; Val
: Convention_Id
) is
2543 pragma Assert
(Nkind
(E
) in N_Entity
);
2546 (Nodes.Table (E + 2).Field12'Unrestricted_Access)).Convention :=
2554 procedure Set_Ekind (E : Entity_Id; Val : Entity_Kind) is
2556 pragma Assert (Nkind (E) in N_Entity);
2557 Nodes.Table (E + 1).Nkind := E_To_N (Val);
2560 ----------------------
2561 -- Set_Error_Posted --
2562 ----------------------
2564 procedure Set_Error_Posted (N : Node_Id; Val : Boolean := True) is
2566 Nodes.Table (N).Error_Posted := Val;
2567 end Set_Error_Posted;
2569 ---------------------
2570 -- Set_Paren_Count --
2571 ---------------------
2573 procedure Set_Paren_Count (N : Node_Id; Val : Nat) is
2575 pragma Assert (Nkind (N) in N_Subexpr);
2577 -- Value of 0,1,2 stored as is
2580 Nodes.Table (N).Pflag1 := (Val mod 2 /= 0);
2581 Nodes.Table (N).Pflag2 := (Val = 2);
2583 -- Value of 3 or greater stores 3 in node and makes table entry
2586 Nodes.Table (N).Pflag1 := True;
2587 Nodes.Table (N).Pflag2 := True;
2589 for J in Paren_Counts.First .. Paren_Counts.Last loop
2590 if N = Paren_Counts.Table (J).Nod then
2591 Paren_Counts.Table (J).Count := Val;
2596 Paren_Counts.Append ((Nod => N, Count => Val));
2598 end Set_Paren_Count;
2604 procedure Set_Parent (N : Node_Id; Val : Node_Id) is
2606 pragma Assert (not Nodes.Table (N).In_List);
2607 Nodes.Table (N).Link := Union_Id (Val);
2614 procedure Set_Sloc (N : Node_Id; Val : Source_Ptr) is
2616 Nodes.Table (N).Sloc := Val;
2623 function Sloc (N : Node_Id) return Source_Ptr is
2625 return Nodes.Table (N).Sloc;
2632 function Traverse_Func (Node : Node_Id) return Traverse_Result is
2634 function Traverse_Field
2637 FN : Field_Num) return Traverse_Result;
2638 -- Fld is one of the fields of Nod. If the field points to syntactic
2639 -- node or list, then this node or list is traversed, and the result is
2640 -- the result of this traversal. Otherwise a value of True is returned
2641 -- with no processing. FN is the number of the field (1 .. 5).
2643 --------------------
2644 -- Traverse_Field --
2645 --------------------
2647 function Traverse_Field
2650 FN : Field_Num) return Traverse_Result
2653 if Fld = Union_Id (Empty) then
2656 -- Descendent is a node
2658 elsif Fld in Node_Range then
2660 -- Traverse descendent that is syntactic subtree node
2662 if Is_Syntactic_Field (Nkind (Nod), FN) then
2663 return Traverse_Func (Node_Id (Fld));
2665 -- Node that is not a syntactic subtree
2671 -- Descendent is a list
2673 elsif Fld in List_Range then
2675 -- Traverse descendent that is a syntactic subtree list
2677 if Is_Syntactic_Field (Nkind (Nod), FN) then
2679 Elmt : Node_Id := First (List_Id (Fld));
2681 while Present (Elmt) loop
2682 if Traverse_Func (Elmt) = Abandon then
2692 -- List that is not a syntactic subtree
2698 -- Field was not a node or a list
2705 -- Start of processing for Traverse_Func
2708 case Process (Node) is
2716 if Traverse_Field (Node, Union_Id (Field1 (Node)), 1) = Abandon
2718 Traverse_Field (Node, Union_Id (Field2 (Node)), 2) = Abandon
2720 Traverse_Field (Node, Union_Id (Field3 (Node)), 3) = Abandon
2722 Traverse_Field (Node, Union_Id (Field4 (Node)), 4) = Abandon
2724 Traverse_Field (Node, Union_Id (Field5 (Node)), 5) = Abandon
2733 Onod : constant Node_Id := Original_Node (Node);
2735 if Traverse_Field (Onod, Union_Id (Field1 (Onod)), 1) = Abandon
2737 Traverse_Field (Onod, Union_Id (Field2 (Onod)), 2) = Abandon
2739 Traverse_Field (Onod, Union_Id (Field3 (Onod)), 3) = Abandon
2741 Traverse_Field (Onod, Union_Id (Field4 (Onod)), 4) = Abandon
2743 Traverse_Field (Onod, Union_Id (Field5 (Onod)), 5) = Abandon
2757 procedure Traverse_Proc (Node : Node_Id) is
2758 function Traverse is new Traverse_Func (Process);
2759 Discard : Traverse_Result;
2760 pragma Warnings (Off, Discard);
2762 Discard := Traverse (Node);
2769 procedure Tree_Read is
2771 Tree_Read_Int (Node_Count);
2773 Orig_Nodes.Tree_Read;
2774 Paren_Counts.Tree_Read;
2781 procedure Tree_Write is
2783 Tree_Write_Int (Node_Count);
2785 Orig_Nodes.Tree_Write;
2786 Paren_Counts.Tree_Write;
2789 ------------------------------
2790 -- Unchecked Access Package --
2791 ------------------------------
2793 package body Unchecked_Access is
2795 function Field1 (N : Node_Id) return Union_Id is
2797 pragma Assert (N <= Nodes.Last);
2798 return Nodes.Table (N).Field1;
2801 function Field2 (N : Node_Id) return Union_Id is
2803 pragma Assert (N <= Nodes.Last);
2804 return Nodes.Table (N).Field2;
2807 function Field3 (N : Node_Id) return Union_Id is
2809 pragma Assert (N <= Nodes.Last);
2810 return Nodes.Table (N).Field3;
2813 function Field4 (N : Node_Id) return Union_Id is
2815 pragma Assert (N <= Nodes.Last);
2816 return Nodes.Table (N).Field4;
2819 function Field5 (N : Node_Id) return Union_Id is
2821 pragma Assert (N <= Nodes.Last);
2822 return Nodes.Table (N).Field5;
2825 function Field6 (N : Node_Id) return Union_Id is
2827 pragma Assert (Nkind (N) in N_Entity);
2828 return Nodes.Table (N + 1).Field6;
2831 function Field7 (N : Node_Id) return Union_Id is
2833 pragma Assert (Nkind (N) in N_Entity);
2834 return Nodes.Table (N + 1).Field7;
2837 function Field8 (N : Node_Id) return Union_Id is
2839 pragma Assert (Nkind (N) in N_Entity);
2840 return Nodes.Table (N + 1).Field8;
2843 function Field9 (N : Node_Id) return Union_Id is
2845 pragma Assert (Nkind (N) in N_Entity);
2846 return Nodes.Table (N + 1).Field9;
2849 function Field10 (N : Node_Id) return Union_Id is
2851 pragma Assert (Nkind (N) in N_Entity);
2852 return Nodes.Table (N + 1).Field10;
2855 function Field11 (N : Node_Id) return Union_Id is
2857 pragma Assert (Nkind (N) in N_Entity);
2858 return Nodes.Table (N + 1).Field11;
2861 function Field12 (N : Node_Id) return Union_Id is
2863 pragma Assert (Nkind (N) in N_Entity);
2864 return Nodes.Table (N + 1).Field12;
2867 function Field13 (N : Node_Id) return Union_Id is
2869 pragma Assert (Nkind (N) in N_Entity);
2870 return Nodes.Table (N + 2).Field6;
2873 function Field14 (N : Node_Id) return Union_Id is
2875 pragma Assert (Nkind (N) in N_Entity);
2876 return Nodes.Table (N + 2).Field7;
2879 function Field15 (N : Node_Id) return Union_Id is
2881 pragma Assert (Nkind (N) in N_Entity);
2882 return Nodes.Table (N + 2).Field8;
2885 function Field16 (N : Node_Id) return Union_Id is
2887 pragma Assert (Nkind (N) in N_Entity);
2888 return Nodes.Table (N + 2).Field9;
2891 function Field17 (N : Node_Id) return Union_Id is
2893 pragma Assert (Nkind (N) in N_Entity);
2894 return Nodes.Table (N + 2).Field10;
2897 function Field18 (N : Node_Id) return Union_Id is
2899 pragma Assert (Nkind (N) in N_Entity);
2900 return Nodes.Table (N + 2).Field11;
2903 function Field19 (N : Node_Id) return Union_Id is
2905 pragma Assert (Nkind (N) in N_Entity);
2906 return Nodes.Table (N + 3).Field6;
2909 function Field20 (N : Node_Id) return Union_Id is
2911 pragma Assert (Nkind (N) in N_Entity);
2912 return Nodes.Table (N + 3).Field7;
2915 function Field21 (N : Node_Id) return Union_Id is
2917 pragma Assert (Nkind (N) in N_Entity);
2918 return Nodes.Table (N + 3).Field8;
2921 function Field22 (N : Node_Id) return Union_Id is
2923 pragma Assert (Nkind (N) in N_Entity);
2924 return Nodes.Table (N + 3).Field9;
2927 function Field23 (N : Node_Id) return Union_Id is
2929 pragma Assert (Nkind (N) in N_Entity);
2930 return Nodes.Table (N + 3).Field10;
2933 function Field24 (N : Node_Id) return Union_Id is
2935 pragma Assert (Nkind (N) in N_Entity);
2936 return Nodes.Table (N + 4).Field6;
2939 function Field25 (N : Node_Id) return Union_Id is
2941 pragma Assert (Nkind (N) in N_Entity);
2942 return Nodes.Table (N + 4).Field7;
2945 function Field26 (N : Node_Id) return Union_Id is
2947 pragma Assert (Nkind (N) in N_Entity);
2948 return Nodes.Table (N + 4).Field8;
2951 function Field27 (N : Node_Id) return Union_Id is
2953 pragma Assert (Nkind (N) in N_Entity);
2954 return Nodes.Table (N + 4).Field9;
2957 function Field28 (N : Node_Id) return Union_Id is
2959 pragma Assert (Nkind (N) in N_Entity);
2960 return Nodes.Table (N + 4).Field10;
2963 function Node1 (N : Node_Id) return Node_Id is
2965 pragma Assert (N <= Nodes.Last);
2966 return Node_Id (Nodes.Table (N).Field1);
2969 function Node2 (N : Node_Id) return Node_Id is
2971 pragma Assert (N <= Nodes.Last);
2972 return Node_Id (Nodes.Table (N).Field2);
2975 function Node3 (N : Node_Id) return Node_Id is
2977 pragma Assert (N <= Nodes.Last);
2978 return Node_Id (Nodes.Table (N).Field3);
2981 function Node4 (N : Node_Id) return Node_Id is
2983 pragma Assert (N <= Nodes.Last);
2984 return Node_Id (Nodes.Table (N).Field4);
2987 function Node5 (N : Node_Id) return Node_Id is
2989 pragma Assert (N <= Nodes.Last);
2990 return Node_Id (Nodes.Table (N).Field5);
2993 function Node6 (N : Node_Id) return Node_Id is
2995 pragma Assert (Nkind (N) in N_Entity);
2996 return Node_Id (Nodes.Table (N + 1).Field6);
2999 function Node7 (N : Node_Id) return Node_Id is
3001 pragma Assert (Nkind (N) in N_Entity);
3002 return Node_Id (Nodes.Table (N + 1).Field7);
3005 function Node8 (N : Node_Id) return Node_Id is
3007 pragma Assert (Nkind (N) in N_Entity);
3008 return Node_Id (Nodes.Table (N + 1).Field8);
3011 function Node9 (N : Node_Id) return Node_Id is
3013 pragma Assert (Nkind (N) in N_Entity);
3014 return Node_Id (Nodes.Table (N + 1).Field9);
3017 function Node10 (N : Node_Id) return Node_Id is
3019 pragma Assert (Nkind (N) in N_Entity);
3020 return Node_Id (Nodes.Table (N + 1).Field10);
3023 function Node11 (N : Node_Id) return Node_Id is
3025 pragma Assert (Nkind (N) in N_Entity);
3026 return Node_Id (Nodes.Table (N + 1).Field11);
3029 function Node12 (N : Node_Id) return Node_Id is
3031 pragma Assert (Nkind (N) in N_Entity);
3032 return Node_Id (Nodes.Table (N + 1).Field12);
3035 function Node13 (N : Node_Id) return Node_Id is
3037 pragma Assert (Nkind (N) in N_Entity);
3038 return Node_Id (Nodes.Table (N + 2).Field6);
3041 function Node14 (N : Node_Id) return Node_Id is
3043 pragma Assert (Nkind (N) in N_Entity);
3044 return Node_Id (Nodes.Table (N + 2).Field7);
3047 function Node15 (N : Node_Id) return Node_Id is
3049 pragma Assert (Nkind (N) in N_Entity);
3050 return Node_Id (Nodes.Table (N + 2).Field8);
3053 function Node16 (N : Node_Id) return Node_Id is
3055 pragma Assert (Nkind (N) in N_Entity);
3056 return Node_Id (Nodes.Table (N + 2).Field9);
3059 function Node17 (N : Node_Id) return Node_Id is
3061 pragma Assert (Nkind (N) in N_Entity);
3062 return Node_Id (Nodes.Table (N + 2).Field10);
3065 function Node18 (N : Node_Id) return Node_Id is
3067 pragma Assert (Nkind (N) in N_Entity);
3068 return Node_Id (Nodes.Table (N + 2).Field11);
3071 function Node19 (N : Node_Id) return Node_Id is
3073 pragma Assert (Nkind (N) in N_Entity);
3074 return Node_Id (Nodes.Table (N + 3).Field6);
3077 function Node20 (N : Node_Id) return Node_Id is
3079 pragma Assert (Nkind (N) in N_Entity);
3080 return Node_Id (Nodes.Table (N + 3).Field7);
3083 function Node21 (N : Node_Id) return Node_Id is
3085 pragma Assert (Nkind (N) in N_Entity);
3086 return Node_Id (Nodes.Table (N + 3).Field8);
3089 function Node22 (N : Node_Id) return Node_Id is
3091 pragma Assert (Nkind (N) in N_Entity);
3092 return Node_Id (Nodes.Table (N + 3).Field9);
3095 function Node23 (N : Node_Id) return Node_Id is
3097 pragma Assert (Nkind (N) in N_Entity);
3098 return Node_Id (Nodes.Table (N + 3).Field10);
3101 function Node24 (N : Node_Id) return Node_Id is
3103 pragma Assert (Nkind (N) in N_Entity);
3104 return Node_Id (Nodes.Table (N + 4).Field6);
3107 function Node25 (N : Node_Id) return Node_Id is
3109 pragma Assert (Nkind (N) in N_Entity);
3110 return Node_Id (Nodes.Table (N + 4).Field7);
3113 function Node26 (N : Node_Id) return Node_Id is
3115 pragma Assert (Nkind (N) in N_Entity);
3116 return Node_Id (Nodes.Table (N + 4).Field8);
3119 function Node27 (N : Node_Id) return Node_Id is
3121 pragma Assert (Nkind (N) in N_Entity);
3122 return Node_Id (Nodes.Table (N + 4).Field9);
3125 function Node28 (N : Node_Id) return Node_Id is
3127 pragma Assert (Nkind (N) in N_Entity);
3128 return Node_Id (Nodes.Table (N + 4).Field10);
3131 function List1 (N : Node_Id) return List_Id is
3133 pragma Assert (N <= Nodes.Last);
3134 return List_Id (Nodes.Table (N).Field1);
3137 function List2 (N : Node_Id) return List_Id is
3139 pragma Assert (N <= Nodes.Last);
3140 return List_Id (Nodes.Table (N).Field2);
3143 function List3 (N : Node_Id) return List_Id is
3145 pragma Assert (N <= Nodes.Last);
3146 return List_Id (Nodes.Table (N).Field3);
3149 function List4 (N : Node_Id) return List_Id is
3151 pragma Assert (N <= Nodes.Last);
3152 return List_Id (Nodes.Table (N).Field4);
3155 function List5 (N : Node_Id) return List_Id is
3157 pragma Assert (N <= Nodes.Last);
3158 return List_Id (Nodes.Table (N).Field5);
3161 function List10 (N : Node_Id) return List_Id is
3163 pragma Assert (Nkind (N) in N_Entity);
3164 return List_Id (Nodes.Table (N + 1).Field10);
3167 function List14 (N : Node_Id) return List_Id is
3169 pragma Assert (Nkind (N) in N_Entity);
3170 return List_Id (Nodes.Table (N + 2).Field7);
3173 function Elist1 (N : Node_Id) return Elist_Id is
3174 pragma Assert (N <= Nodes.Last);
3175 Value : constant Union_Id := Nodes.Table (N).Field1;
3180 return Elist_Id (Value);
3184 function Elist2 (N : Node_Id) return Elist_Id is
3185 pragma Assert (N <= Nodes.Last);
3186 Value : constant Union_Id := Nodes.Table (N).Field2;
3191 return Elist_Id (Value);
3195 function Elist3 (N : Node_Id) return Elist_Id is
3196 pragma Assert (N <= Nodes.Last);
3197 Value : constant Union_Id := Nodes.Table (N).Field3;
3202 return Elist_Id (Value);
3206 function Elist4 (N : Node_Id) return Elist_Id is
3207 pragma Assert (N <= Nodes.Last);
3208 Value : constant Union_Id := Nodes.Table (N).Field4;
3213 return Elist_Id (Value);
3217 function Elist8 (N : Node_Id) return Elist_Id is
3218 pragma Assert (Nkind (N) in N_Entity);
3219 Value : constant Union_Id := Nodes.Table (N + 1).Field8;
3224 return Elist_Id (Value);
3228 function Elist13 (N : Node_Id) return Elist_Id is
3229 pragma Assert (Nkind (N) in N_Entity);
3230 Value : constant Union_Id := Nodes.Table (N + 2).Field6;
3235 return Elist_Id (Value);
3239 function Elist15 (N : Node_Id) return Elist_Id is
3240 pragma Assert (Nkind (N) in N_Entity);
3241 Value : constant Union_Id := Nodes.Table (N + 2).Field8;
3246 return Elist_Id (Value);
3250 function Elist16 (N : Node_Id) return Elist_Id is
3251 pragma Assert (Nkind (N) in N_Entity);
3252 Value : constant Union_Id := Nodes.Table (N + 2).Field9;
3257 return Elist_Id (Value);
3261 function Elist18 (N : Node_Id) return Elist_Id is
3262 pragma Assert (Nkind (N) in N_Entity);
3263 Value : constant Union_Id := Nodes.Table (N + 2).Field11;
3268 return Elist_Id (Value);
3272 function Elist21 (N : Node_Id) return Elist_Id is
3273 pragma Assert (Nkind (N) in N_Entity);
3274 Value : constant Union_Id := Nodes.Table (N + 3).Field8;
3279 return Elist_Id (Value);
3283 function Elist23 (N : Node_Id) return Elist_Id is
3284 pragma Assert (Nkind (N) in N_Entity);
3285 Value : constant Union_Id := Nodes.Table (N + 3).Field10;
3290 return Elist_Id (Value);
3294 function Elist25 (N : Node_Id) return Elist_Id is
3295 pragma Assert (Nkind (N) in N_Entity);
3296 Value : constant Union_Id := Nodes.Table (N + 4).Field7;
3301 return Elist_Id (Value);
3305 function Name1 (N : Node_Id) return Name_Id is
3307 pragma Assert (N <= Nodes.Last);
3308 return Name_Id (Nodes.Table (N).Field1);
3311 function Name2 (N : Node_Id) return Name_Id is
3313 pragma Assert (N <= Nodes.Last);
3314 return Name_Id (Nodes.Table (N).Field2);
3317 function Str3 (N : Node_Id) return String_Id is
3319 pragma Assert (N <= Nodes.Last);
3320 return String_Id (Nodes.Table (N).Field3);
3323 function Uint2 (N : Node_Id) return Uint is
3324 pragma Assert (N <= Nodes.Last);
3325 U : constant Union_Id := Nodes.Table (N).Field2;
3330 return From_Union (U);
3334 function Uint3 (N : Node_Id) return Uint is
3335 pragma Assert (N <= Nodes.Last);
3336 U : constant Union_Id := Nodes.Table (N).Field3;
3341 return From_Union (U);
3345 function Uint4 (N : Node_Id) return Uint is
3346 pragma Assert (N <= Nodes.Last);
3347 U : constant Union_Id := Nodes.Table (N).Field4;
3352 return From_Union (U);
3356 function Uint5 (N : Node_Id) return Uint is
3357 pragma Assert (N <= Nodes.Last);
3358 U : constant Union_Id := Nodes.Table (N).Field5;
3363 return From_Union (U);
3367 function Uint8 (N : Node_Id) return Uint is
3368 pragma Assert (Nkind (N) in N_Entity);
3369 U : constant Union_Id := Nodes.Table (N + 1).Field8;
3374 return From_Union (U);
3378 function Uint9 (N : Node_Id) return Uint is
3379 pragma Assert (Nkind (N) in N_Entity);
3380 U : constant Union_Id := Nodes.Table (N + 1).Field9;
3385 return From_Union (U);
3389 function Uint10 (N : Node_Id) return Uint is
3390 pragma Assert (Nkind (N) in N_Entity);
3391 U : constant Union_Id := Nodes.Table (N + 1).Field10;
3396 return From_Union (U);
3400 function Uint11 (N : Node_Id) return Uint is
3401 pragma Assert (Nkind (N) in N_Entity);
3402 U : constant Union_Id := Nodes.Table (N + 1).Field11;
3407 return From_Union (U);
3411 function Uint12 (N : Node_Id) return Uint is
3412 pragma Assert (Nkind (N) in N_Entity);
3413 U : constant Union_Id := Nodes.Table (N + 1).Field12;
3418 return From_Union (U);
3422 function Uint13 (N : Node_Id) return Uint is
3423 pragma Assert (Nkind (N) in N_Entity);
3424 U : constant Union_Id := Nodes.Table (N + 2).Field6;
3429 return From_Union (U);
3433 function Uint14 (N : Node_Id) return Uint is
3434 pragma Assert (Nkind (N) in N_Entity);
3435 U : constant Union_Id := Nodes.Table (N + 2).Field7;
3440 return From_Union (U);
3444 function Uint15 (N : Node_Id) return Uint is
3445 pragma Assert (Nkind (N) in N_Entity);
3446 U : constant Union_Id := Nodes.Table (N + 2).Field8;
3451 return From_Union (U);
3455 function Uint16 (N : Node_Id) return Uint is
3456 pragma Assert (Nkind (N) in N_Entity);
3457 U : constant Union_Id := Nodes.Table (N + 2).Field9;
3462 return From_Union (U);
3466 function Uint17 (N : Node_Id) return Uint is
3467 pragma Assert (Nkind (N) in N_Entity);
3468 U : constant Union_Id := Nodes.Table (N + 2).Field10;
3473 return From_Union (U);
3477 function Uint22 (N : Node_Id) return Uint is
3478 pragma Assert (Nkind (N) in N_Entity);
3479 U : constant Union_Id := Nodes.Table (N + 3).Field9;
3484 return From_Union (U);
3488 function Ureal3 (N : Node_Id) return Ureal is
3490 pragma Assert (N <= Nodes.Last);
3491 return From_Union (Nodes.Table (N).Field3);
3494 function Ureal18 (N : Node_Id) return Ureal is
3496 pragma Assert (Nkind (N) in N_Entity);
3497 return From_Union (Nodes.Table (N + 2).Field11);
3500 function Ureal21 (N : Node_Id) return Ureal is
3502 pragma Assert (Nkind (N) in N_Entity);
3503 return From_Union (Nodes.Table (N + 3).Field8);
3506 function Flag4 (N : Node_Id) return Boolean is
3508 pragma Assert (N <= Nodes.Last);
3509 return Nodes.Table (N).Flag4;
3512 function Flag5 (N : Node_Id) return Boolean is
3514 pragma Assert (N <= Nodes.Last);
3515 return Nodes.Table (N).Flag5;
3518 function Flag6 (N : Node_Id) return Boolean is
3520 pragma Assert (N <= Nodes.Last);
3521 return Nodes.Table (N).Flag6;
3524 function Flag7 (N : Node_Id) return Boolean is
3526 pragma Assert (N <= Nodes.Last);
3527 return Nodes.Table (N).Flag7;
3530 function Flag8 (N : Node_Id) return Boolean is
3532 pragma Assert (N <= Nodes.Last);
3533 return Nodes.Table (N).Flag8;
3536 function Flag9 (N : Node_Id) return Boolean is
3538 pragma Assert (N <= Nodes.Last);
3539 return Nodes.Table (N).Flag9;
3542 function Flag10 (N : Node_Id) return Boolean is
3544 pragma Assert (N <= Nodes.Last);
3545 return Nodes.Table (N).Flag10;
3548 function Flag11 (N : Node_Id) return Boolean is
3550 pragma Assert (N <= Nodes.Last);
3551 return Nodes.Table (N).Flag11;
3554 function Flag12 (N : Node_Id) return Boolean is
3556 pragma Assert (N <= Nodes.Last);
3557 return Nodes.Table (N).Flag12;
3560 function Flag13 (N : Node_Id) return Boolean is
3562 pragma Assert (N <= Nodes.Last);
3563 return Nodes.Table (N).Flag13;
3566 function Flag14 (N : Node_Id) return Boolean is
3568 pragma Assert (N <= Nodes.Last);
3569 return Nodes.Table (N).Flag14;
3572 function Flag15 (N : Node_Id) return Boolean is
3574 pragma Assert (N <= Nodes.Last);
3575 return Nodes.Table (N).Flag15;
3578 function Flag16 (N : Node_Id) return Boolean is
3580 pragma Assert (N <= Nodes.Last);
3581 return Nodes.Table (N).Flag16;
3584 function Flag17 (N : Node_Id) return Boolean is
3586 pragma Assert (N <= Nodes.Last);
3587 return Nodes.Table (N).Flag17;
3590 function Flag18 (N : Node_Id) return Boolean is
3592 pragma Assert (N <= Nodes.Last);
3593 return Nodes.Table (N).Flag18;
3596 function Flag19 (N : Node_Id) return Boolean is
3598 pragma Assert (Nkind (N) in N_Entity);
3599 return Nodes.Table (N + 1).In_List;
3602 function Flag20 (N : Node_Id) return Boolean is
3604 pragma Assert (Nkind (N) in N_Entity);
3605 return Nodes.Table (N + 1).Unused_1;
3608 function Flag21 (N : Node_Id) return Boolean is
3610 pragma Assert (Nkind (N) in N_Entity);
3611 return Nodes.Table (N + 1).Rewrite_Ins;
3614 function Flag22 (N : Node_Id) return Boolean is
3616 pragma Assert (Nkind (N) in N_Entity);
3617 return Nodes.Table (N + 1).Analyzed;
3620 function Flag23 (N : Node_Id) return Boolean is
3622 pragma Assert (Nkind (N) in N_Entity);
3623 return Nodes.Table (N + 1).Comes_From_Source;
3626 function Flag24 (N : Node_Id) return Boolean is
3628 pragma Assert (Nkind (N) in N_Entity);
3629 return Nodes.Table (N + 1).Error_Posted;
3632 function Flag25 (N : Node_Id) return Boolean is
3634 pragma Assert (Nkind (N) in N_Entity);
3635 return Nodes.Table (N + 1).Flag4;
3638 function Flag26 (N : Node_Id) return Boolean is
3640 pragma Assert (Nkind (N) in N_Entity);
3641 return Nodes.Table (N + 1).Flag5;
3644 function Flag27 (N : Node_Id) return Boolean is
3646 pragma Assert (Nkind (N) in N_Entity);
3647 return Nodes.Table (N + 1).Flag6;
3650 function Flag28 (N : Node_Id) return Boolean is
3652 pragma Assert (Nkind (N) in N_Entity);
3653 return Nodes.Table (N + 1).Flag7;
3656 function Flag29 (N : Node_Id) return Boolean is
3658 pragma Assert (Nkind (N) in N_Entity);
3659 return Nodes.Table (N + 1).Flag8;
3662 function Flag30 (N : Node_Id) return Boolean is
3664 pragma Assert (Nkind (N) in N_Entity);
3665 return Nodes.Table (N + 1).Flag9;
3668 function Flag31 (N : Node_Id) return Boolean is
3670 pragma Assert (Nkind (N) in N_Entity);
3671 return Nodes.Table (N + 1).Flag10;
3674 function Flag32 (N : Node_Id) return Boolean is
3676 pragma Assert (Nkind (N) in N_Entity);
3677 return Nodes.Table (N + 1).Flag11;
3680 function Flag33 (N : Node_Id) return Boolean is
3682 pragma Assert (Nkind (N) in N_Entity);
3683 return Nodes.Table (N + 1).Flag12;
3686 function Flag34 (N : Node_Id) return Boolean is
3688 pragma Assert (Nkind (N) in N_Entity);
3689 return Nodes.Table (N + 1).Flag13;
3692 function Flag35 (N : Node_Id) return Boolean is
3694 pragma Assert (Nkind (N) in N_Entity);
3695 return Nodes.Table (N + 1).Flag14;
3698 function Flag36 (N : Node_Id) return Boolean is
3700 pragma Assert (Nkind (N) in N_Entity);
3701 return Nodes.Table (N + 1).Flag15;
3704 function Flag37 (N : Node_Id) return Boolean is
3706 pragma Assert (Nkind (N) in N_Entity);
3707 return Nodes.Table (N + 1).Flag16;
3710 function Flag38 (N : Node_Id) return Boolean is
3712 pragma Assert (Nkind (N) in N_Entity);
3713 return Nodes.Table (N + 1).Flag17;
3716 function Flag39 (N : Node_Id) return Boolean is
3718 pragma Assert (Nkind (N) in N_Entity);
3719 return Nodes.Table (N + 1).Flag18;
3722 function Flag40 (N : Node_Id) return Boolean is
3724 pragma Assert (Nkind (N) in N_Entity);
3725 return Nodes.Table (N + 2).In_List;
3728 function Flag41 (N : Node_Id) return Boolean is
3730 pragma Assert (Nkind (N) in N_Entity);
3731 return Nodes.Table (N + 2).Unused_1;
3734 function Flag42 (N : Node_Id) return Boolean is
3736 pragma Assert (Nkind (N) in N_Entity);
3737 return Nodes.Table (N + 2).Rewrite_Ins;
3740 function Flag43 (N : Node_Id) return Boolean is
3742 pragma Assert (Nkind (N) in N_Entity);
3743 return Nodes.Table (N + 2).Analyzed;
3746 function Flag44 (N : Node_Id) return Boolean is
3748 pragma Assert (Nkind (N) in N_Entity);
3749 return Nodes.Table (N + 2).Comes_From_Source;
3752 function Flag45 (N : Node_Id) return Boolean is
3754 pragma Assert (Nkind (N) in N_Entity);
3755 return Nodes.Table (N + 2).Error_Posted;
3758 function Flag46 (N : Node_Id) return Boolean is
3760 pragma Assert (Nkind (N) in N_Entity);
3761 return Nodes.Table (N + 2).Flag4;
3764 function Flag47 (N : Node_Id) return Boolean is
3766 pragma Assert (Nkind (N) in N_Entity);
3767 return Nodes.Table (N + 2).Flag5;
3770 function Flag48 (N : Node_Id) return Boolean is
3772 pragma Assert (Nkind (N) in N_Entity);
3773 return Nodes.Table (N + 2).Flag6;
3776 function Flag49 (N : Node_Id) return Boolean is
3778 pragma Assert (Nkind (N) in N_Entity);
3779 return Nodes.Table (N + 2).Flag7;
3782 function Flag50 (N : Node_Id) return Boolean is
3784 pragma Assert (Nkind (N) in N_Entity);
3785 return Nodes.Table (N + 2).Flag8;
3788 function Flag51 (N : Node_Id) return Boolean is
3790 pragma Assert (Nkind (N) in N_Entity);
3791 return Nodes.Table (N + 2).Flag9;
3794 function Flag52 (N : Node_Id) return Boolean is
3796 pragma Assert (Nkind (N) in N_Entity);
3797 return Nodes.Table (N + 2).Flag10;
3800 function Flag53 (N : Node_Id) return Boolean is
3802 pragma Assert (Nkind (N) in N_Entity);
3803 return Nodes.Table (N + 2).Flag11;
3806 function Flag54 (N : Node_Id) return Boolean is
3808 pragma Assert (Nkind (N) in N_Entity);
3809 return Nodes.Table (N + 2).Flag12;
3812 function Flag55 (N : Node_Id) return Boolean is
3814 pragma Assert (Nkind (N) in N_Entity);
3815 return Nodes.Table (N + 2).Flag13;
3818 function Flag56 (N : Node_Id) return Boolean is
3820 pragma Assert (Nkind (N) in N_Entity);
3821 return Nodes.Table (N + 2).Flag14;
3824 function Flag57 (N : Node_Id) return Boolean is
3826 pragma Assert (Nkind (N) in N_Entity);
3827 return Nodes.Table (N + 2).Flag15;
3830 function Flag58 (N : Node_Id) return Boolean is
3832 pragma Assert (Nkind (N) in N_Entity);
3833 return Nodes.Table (N + 2).Flag16;
3836 function Flag59 (N : Node_Id) return Boolean is
3838 pragma Assert (Nkind (N) in N_Entity);
3839 return Nodes.Table (N + 2).Flag17;
3842 function Flag60 (N : Node_Id) return Boolean is
3844 pragma Assert (Nkind (N) in N_Entity);
3845 return Nodes.Table (N + 2).Flag18;
3848 function Flag61 (N : Node_Id) return Boolean is
3850 pragma Assert (Nkind (N) in N_Entity);
3851 return Nodes.Table (N + 1).Pflag1;
3854 function Flag62 (N : Node_Id) return Boolean is
3856 pragma Assert (Nkind (N) in N_Entity);
3857 return Nodes.Table (N + 1).Pflag2;
3860 function Flag63 (N : Node_Id) return Boolean is
3862 pragma Assert (Nkind (N) in N_Entity);
3863 return Nodes.Table (N + 2).Pflag1;
3866 function Flag64 (N : Node_Id) return Boolean is
3868 pragma Assert (Nkind (N) in N_Entity);
3869 return Nodes.Table (N + 2).Pflag2;
3872 function Flag65 (N : Node_Id) return Boolean is
3874 pragma Assert (Nkind (N) in N_Entity);
3875 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag65;
3878 function Flag66 (N : Node_Id) return Boolean is
3880 pragma Assert (Nkind (N) in N_Entity);
3881 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag66;
3884 function Flag67 (N : Node_Id) return Boolean is
3886 pragma Assert (Nkind (N) in N_Entity);
3887 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag67;
3890 function Flag68 (N : Node_Id) return Boolean is
3892 pragma Assert (Nkind (N) in N_Entity);
3893 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag68;
3896 function Flag69 (N : Node_Id) return Boolean is
3898 pragma Assert (Nkind (N) in N_Entity);
3899 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag69;
3902 function Flag70 (N : Node_Id) return Boolean is
3904 pragma Assert (Nkind (N) in N_Entity);
3905 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag70;
3908 function Flag71 (N : Node_Id) return Boolean is
3910 pragma Assert (Nkind (N) in N_Entity);
3911 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag71;
3914 function Flag72 (N : Node_Id) return Boolean is
3916 pragma Assert (Nkind (N) in N_Entity);
3917 return To_Flag_Byte (Nodes.Table (N + 2).Nkind).Flag72;
3920 function Flag73 (N : Node_Id) return Boolean is
3922 pragma Assert (Nkind (N) in N_Entity);
3923 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag73;
3926 function Flag74 (N : Node_Id) return Boolean is
3928 pragma Assert (Nkind (N) in N_Entity);
3929 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag74;
3932 function Flag75 (N : Node_Id) return Boolean is
3934 pragma Assert (Nkind (N) in N_Entity);
3935 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag75;
3938 function Flag76 (N : Node_Id) return Boolean is
3940 pragma Assert (Nkind (N) in N_Entity);
3941 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag76;
3944 function Flag77 (N : Node_Id) return Boolean is
3946 pragma Assert (Nkind (N) in N_Entity);
3947 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag77;
3950 function Flag78 (N : Node_Id) return Boolean is
3952 pragma Assert (Nkind (N) in N_Entity);
3953 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag78;
3956 function Flag79 (N : Node_Id) return Boolean is
3958 pragma Assert (Nkind (N) in N_Entity);
3959 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag79;
3962 function Flag80 (N : Node_Id) return Boolean is
3964 pragma Assert (Nkind (N) in N_Entity);
3965 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag80;
3968 function Flag81 (N : Node_Id) return Boolean is
3970 pragma Assert (Nkind (N) in N_Entity);
3971 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag81;
3974 function Flag82 (N : Node_Id) return Boolean is
3976 pragma Assert (Nkind (N) in N_Entity);
3977 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag82;
3980 function Flag83 (N : Node_Id) return Boolean is
3982 pragma Assert (Nkind (N) in N_Entity);
3983 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag83;
3986 function Flag84 (N : Node_Id) return Boolean is
3988 pragma Assert (Nkind (N) in N_Entity);
3989 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag84;
3992 function Flag85 (N : Node_Id) return Boolean is
3994 pragma Assert (Nkind (N) in N_Entity);
3995 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag85;
3998 function Flag86 (N : Node_Id) return Boolean is
4000 pragma Assert (Nkind (N) in N_Entity);
4001 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag86;
4004 function Flag87 (N : Node_Id) return Boolean is
4006 pragma Assert (Nkind (N) in N_Entity);
4007 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag87;
4010 function Flag88 (N : Node_Id) return Boolean is
4012 pragma Assert (Nkind (N) in N_Entity);
4013 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag88;
4016 function Flag89 (N : Node_Id) return Boolean is
4018 pragma Assert (Nkind (N) in N_Entity);
4019 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag89;
4022 function Flag90 (N : Node_Id) return Boolean is
4024 pragma Assert (Nkind (N) in N_Entity);
4025 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag90;
4028 function Flag91 (N : Node_Id) return Boolean is
4030 pragma Assert (Nkind (N) in N_Entity);
4031 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag91;
4034 function Flag92 (N : Node_Id) return Boolean is
4036 pragma Assert (Nkind (N) in N_Entity);
4037 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag92;
4040 function Flag93 (N : Node_Id) return Boolean is
4042 pragma Assert (Nkind (N) in N_Entity);
4043 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag93;
4046 function Flag94 (N : Node_Id) return Boolean is
4048 pragma Assert (Nkind (N) in N_Entity);
4049 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag94;
4052 function Flag95 (N : Node_Id) return Boolean is
4054 pragma Assert (Nkind (N) in N_Entity);
4055 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag95;
4058 function Flag96 (N : Node_Id) return Boolean is
4060 pragma Assert (Nkind (N) in N_Entity);
4061 return To_Flag_Word (Nodes.Table (N + 2).Field12).Flag96;
4064 function Flag97 (N : Node_Id) return Boolean is
4066 pragma Assert (Nkind (N) in N_Entity);
4067 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag97;
4070 function Flag98 (N : Node_Id) return Boolean is
4072 pragma Assert (Nkind (N) in N_Entity);
4073 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag98;
4076 function Flag99 (N : Node_Id) return Boolean is
4078 pragma Assert (Nkind (N) in N_Entity);
4079 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag99;
4082 function Flag100 (N : Node_Id) return Boolean is
4084 pragma Assert (Nkind (N) in N_Entity);
4085 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag100;
4088 function Flag101 (N : Node_Id) return Boolean is
4090 pragma Assert (Nkind (N) in N_Entity);
4091 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag101;
4094 function Flag102 (N : Node_Id) return Boolean is
4096 pragma Assert (Nkind (N) in N_Entity);
4097 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag102;
4100 function Flag103 (N : Node_Id) return Boolean is
4102 pragma Assert (Nkind (N) in N_Entity);
4103 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag103;
4106 function Flag104 (N : Node_Id) return Boolean is
4108 pragma Assert (Nkind (N) in N_Entity);
4109 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag104;
4112 function Flag105 (N : Node_Id) return Boolean is
4114 pragma Assert (Nkind (N) in N_Entity);
4115 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag105;
4118 function Flag106 (N : Node_Id) return Boolean is
4120 pragma Assert (Nkind (N) in N_Entity);
4121 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag106;
4124 function Flag107 (N : Node_Id) return Boolean is
4126 pragma Assert (Nkind (N) in N_Entity);
4127 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag107;
4130 function Flag108 (N : Node_Id) return Boolean is
4132 pragma Assert (Nkind (N) in N_Entity);
4133 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag108;
4136 function Flag109 (N : Node_Id) return Boolean is
4138 pragma Assert (Nkind (N) in N_Entity);
4139 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag109;
4142 function Flag110 (N : Node_Id) return Boolean is
4144 pragma Assert (Nkind (N) in N_Entity);
4145 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag110;
4148 function Flag111 (N : Node_Id) return Boolean is
4150 pragma Assert (Nkind (N) in N_Entity);
4151 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag111;
4154 function Flag112 (N : Node_Id) return Boolean is
4156 pragma Assert (Nkind (N) in N_Entity);
4157 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag112;
4160 function Flag113 (N : Node_Id) return Boolean is
4162 pragma Assert (Nkind (N) in N_Entity);
4163 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag113;
4166 function Flag114 (N : Node_Id) return Boolean is
4168 pragma Assert (Nkind (N) in N_Entity);
4169 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag114;
4172 function Flag115 (N : Node_Id) return Boolean is
4174 pragma Assert (Nkind (N) in N_Entity);
4175 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag115;
4178 function Flag116 (N : Node_Id) return Boolean is
4180 pragma Assert (Nkind (N) in N_Entity);
4181 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag116;
4184 function Flag117 (N : Node_Id) return Boolean is
4186 pragma Assert (Nkind (N) in N_Entity);
4187 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag117;
4190 function Flag118 (N : Node_Id) return Boolean is
4192 pragma Assert (Nkind (N) in N_Entity);
4193 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag118;
4196 function Flag119 (N : Node_Id) return Boolean is
4198 pragma Assert (Nkind (N) in N_Entity);
4199 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag119;
4202 function Flag120 (N : Node_Id) return Boolean is
4204 pragma Assert (Nkind (N) in N_Entity);
4205 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag120;
4208 function Flag121 (N : Node_Id) return Boolean is
4210 pragma Assert (Nkind (N) in N_Entity);
4211 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag121;
4214 function Flag122 (N : Node_Id) return Boolean is
4216 pragma Assert (Nkind (N) in N_Entity);
4217 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag122;
4220 function Flag123 (N : Node_Id) return Boolean is
4222 pragma Assert (Nkind (N) in N_Entity);
4223 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag123;
4226 function Flag124 (N : Node_Id) return Boolean is
4228 pragma Assert (Nkind (N) in N_Entity);
4229 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag124;
4232 function Flag125 (N : Node_Id) return Boolean is
4234 pragma Assert (Nkind (N) in N_Entity);
4235 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag125;
4238 function Flag126 (N : Node_Id) return Boolean is
4240 pragma Assert (Nkind (N) in N_Entity);
4241 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag126;
4244 function Flag127 (N : Node_Id) return Boolean is
4246 pragma Assert (Nkind (N) in N_Entity);
4247 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag127;
4250 function Flag128 (N : Node_Id) return Boolean is
4252 pragma Assert (Nkind (N) in N_Entity);
4253 return To_Flag_Word2 (Nodes.Table (N + 3).Field12).Flag128;
4256 function Flag129 (N : Node_Id) return Boolean is
4258 pragma Assert (Nkind (N) in N_Entity);
4259 return Nodes.Table (N + 3).In_List;
4262 function Flag130 (N : Node_Id) return Boolean is
4264 pragma Assert (Nkind (N) in N_Entity);
4265 return Nodes.Table (N + 3).Unused_1;
4268 function Flag131 (N : Node_Id) return Boolean is
4270 pragma Assert (Nkind (N) in N_Entity);
4271 return Nodes.Table (N + 3).Rewrite_Ins;
4274 function Flag132 (N : Node_Id) return Boolean is
4276 pragma Assert (Nkind (N) in N_Entity);
4277 return Nodes.Table (N + 3).Analyzed;
4280 function Flag133 (N : Node_Id) return Boolean is
4282 pragma Assert (Nkind (N) in N_Entity);
4283 return Nodes.Table (N + 3).Comes_From_Source;
4286 function Flag134 (N : Node_Id) return Boolean is
4288 pragma Assert (Nkind (N) in N_Entity);
4289 return Nodes.Table (N + 3).Error_Posted;
4292 function Flag135 (N : Node_Id) return Boolean is
4294 pragma Assert (Nkind (N) in N_Entity);
4295 return Nodes.Table (N + 3).Flag4;
4298 function Flag136 (N : Node_Id) return Boolean is
4300 pragma Assert (Nkind (N) in N_Entity);
4301 return Nodes.Table (N + 3).Flag5;
4304 function Flag137 (N : Node_Id) return Boolean is
4306 pragma Assert (Nkind (N) in N_Entity);
4307 return Nodes.Table (N + 3).Flag6;
4310 function Flag138 (N : Node_Id) return Boolean is
4312 pragma Assert (Nkind (N) in N_Entity);
4313 return Nodes.Table (N + 3).Flag7;
4316 function Flag139 (N : Node_Id) return Boolean is
4318 pragma Assert (Nkind (N) in N_Entity);
4319 return Nodes.Table (N + 3).Flag8;
4322 function Flag140 (N : Node_Id) return Boolean is
4324 pragma Assert (Nkind (N) in N_Entity);
4325 return Nodes.Table (N + 3).Flag9;
4328 function Flag141 (N : Node_Id) return Boolean is
4330 pragma Assert (Nkind (N) in N_Entity);
4331 return Nodes.Table (N + 3).Flag10;
4334 function Flag142 (N : Node_Id) return Boolean is
4336 pragma Assert (Nkind (N) in N_Entity);
4337 return Nodes.Table (N + 3).Flag11;
4340 function Flag143 (N : Node_Id) return Boolean is
4342 pragma Assert (Nkind (N) in N_Entity);
4343 return Nodes.Table (N + 3).Flag12;
4346 function Flag144 (N : Node_Id) return Boolean is
4348 pragma Assert (Nkind (N) in N_Entity);
4349 return Nodes.Table (N + 3).Flag13;
4352 function Flag145 (N : Node_Id) return Boolean is
4354 pragma Assert (Nkind (N) in N_Entity);
4355 return Nodes.Table (N + 3).Flag14;
4358 function Flag146 (N : Node_Id) return Boolean is
4360 pragma Assert (Nkind (N) in N_Entity);
4361 return Nodes.Table (N + 3).Flag15;
4364 function Flag147 (N : Node_Id) return Boolean is
4366 pragma Assert (Nkind (N) in N_Entity);
4367 return Nodes.Table (N + 3).Flag16;
4370 function Flag148 (N : Node_Id) return Boolean is
4372 pragma Assert (Nkind (N) in N_Entity);
4373 return Nodes.Table (N + 3).Flag17;
4376 function Flag149 (N : Node_Id) return Boolean is
4378 pragma Assert (Nkind (N) in N_Entity);
4379 return Nodes.Table (N + 3).Flag18;
4382 function Flag150 (N : Node_Id) return Boolean is
4384 pragma Assert (Nkind (N) in N_Entity);
4385 return Nodes.Table (N + 3).Pflag1;
4388 function Flag151 (N : Node_Id) return Boolean is
4390 pragma Assert (Nkind (N) in N_Entity);
4391 return Nodes.Table (N + 3).Pflag2;
4394 function Flag152 (N : Node_Id) return Boolean is
4396 pragma Assert (Nkind (N) in N_Entity);
4397 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag152;
4400 function Flag153 (N : Node_Id) return Boolean is
4402 pragma Assert (Nkind (N) in N_Entity);
4403 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag153;
4406 function Flag154 (N : Node_Id) return Boolean is
4408 pragma Assert (Nkind (N) in N_Entity);
4409 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag154;
4412 function Flag155 (N : Node_Id) return Boolean is
4414 pragma Assert (Nkind (N) in N_Entity);
4415 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag155;
4418 function Flag156 (N : Node_Id) return Boolean is
4420 pragma Assert (Nkind (N) in N_Entity);
4421 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag156;
4424 function Flag157 (N : Node_Id) return Boolean is
4426 pragma Assert (Nkind (N) in N_Entity);
4427 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag157;
4430 function Flag158 (N : Node_Id) return Boolean is
4432 pragma Assert (Nkind (N) in N_Entity);
4433 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag158;
4436 function Flag159 (N : Node_Id) return Boolean is
4438 pragma Assert (Nkind (N) in N_Entity);
4439 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag159;
4442 function Flag160 (N : Node_Id) return Boolean is
4444 pragma Assert (Nkind (N) in N_Entity);
4445 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag160;
4448 function Flag161 (N : Node_Id) return Boolean is
4450 pragma Assert (Nkind (N) in N_Entity);
4451 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag161;
4454 function Flag162 (N : Node_Id) return Boolean is
4456 pragma Assert (Nkind (N) in N_Entity);
4457 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag162;
4460 function Flag163 (N : Node_Id) return Boolean is
4462 pragma Assert (Nkind (N) in N_Entity);
4463 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag163;
4466 function Flag164 (N : Node_Id) return Boolean is
4468 pragma Assert (Nkind (N) in N_Entity);
4469 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag164;
4472 function Flag165 (N : Node_Id) return Boolean is
4474 pragma Assert (Nkind (N) in N_Entity);
4475 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag165;
4478 function Flag166 (N : Node_Id) return Boolean is
4480 pragma Assert (Nkind (N) in N_Entity);
4481 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag166;
4484 function Flag167 (N : Node_Id) return Boolean is
4486 pragma Assert (Nkind (N) in N_Entity);
4487 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag167;
4490 function Flag168 (N : Node_Id) return Boolean is
4492 pragma Assert (Nkind (N) in N_Entity);
4493 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag168;
4496 function Flag169 (N : Node_Id) return Boolean is
4498 pragma Assert (Nkind (N) in N_Entity);
4499 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag169;
4502 function Flag170 (N : Node_Id) return Boolean is
4504 pragma Assert (Nkind (N) in N_Entity);
4505 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag170;
4508 function Flag171 (N : Node_Id) return Boolean is
4510 pragma Assert (Nkind (N) in N_Entity);
4511 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag171;
4514 function Flag172 (N : Node_Id) return Boolean is
4516 pragma Assert (Nkind (N) in N_Entity);
4517 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag172;
4520 function Flag173 (N : Node_Id) return Boolean is
4522 pragma Assert (Nkind (N) in N_Entity);
4523 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag173;
4526 function Flag174 (N : Node_Id) return Boolean is
4528 pragma Assert (Nkind (N) in N_Entity);
4529 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag174;
4532 function Flag175 (N : Node_Id) return Boolean is
4534 pragma Assert (Nkind (N) in N_Entity);
4535 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag175;
4538 function Flag176 (N : Node_Id) return Boolean is
4540 pragma Assert (Nkind (N) in N_Entity);
4541 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag176;
4544 function Flag177 (N : Node_Id) return Boolean is
4546 pragma Assert (Nkind (N) in N_Entity);
4547 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag177;
4550 function Flag178 (N : Node_Id) return Boolean is
4552 pragma Assert (Nkind (N) in N_Entity);
4553 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag178;
4556 function Flag179 (N : Node_Id) return Boolean is
4558 pragma Assert (Nkind (N) in N_Entity);
4559 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag179;
4562 function Flag180 (N : Node_Id) return Boolean is
4564 pragma Assert (Nkind (N) in N_Entity);
4565 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag180;
4568 function Flag181 (N : Node_Id) return Boolean is
4570 pragma Assert (Nkind (N) in N_Entity);
4571 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag181;
4574 function Flag182 (N : Node_Id) return Boolean is
4576 pragma Assert (Nkind (N) in N_Entity);
4577 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag182;
4580 function Flag183 (N : Node_Id) return Boolean is
4582 pragma Assert (Nkind (N) in N_Entity);
4583 return To_Flag_Word3 (Nodes.Table (N + 3).Field11).Flag183;
4586 function Flag184 (N : Node_Id) return Boolean is
4588 pragma Assert (Nkind (N) in N_Entity);
4589 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag184;
4592 function Flag185 (N : Node_Id) return Boolean is
4594 pragma Assert (Nkind (N) in N_Entity);
4595 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag185;
4598 function Flag186 (N : Node_Id) return Boolean is
4600 pragma Assert (Nkind (N) in N_Entity);
4601 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag186;
4604 function Flag187 (N : Node_Id) return Boolean is
4606 pragma Assert (Nkind (N) in N_Entity);
4607 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag187;
4610 function Flag188 (N : Node_Id) return Boolean is
4612 pragma Assert (Nkind (N) in N_Entity);
4613 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag188;
4616 function Flag189 (N : Node_Id) return Boolean is
4618 pragma Assert (Nkind (N) in N_Entity);
4619 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag189;
4622 function Flag190 (N : Node_Id) return Boolean is
4624 pragma Assert (Nkind (N) in N_Entity);
4625 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag190;
4628 function Flag191 (N : Node_Id) return Boolean is
4630 pragma Assert (Nkind (N) in N_Entity);
4631 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag191;
4634 function Flag192 (N : Node_Id) return Boolean is
4636 pragma Assert (Nkind (N) in N_Entity);
4637 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag192;
4640 function Flag193 (N : Node_Id) return Boolean is
4642 pragma Assert (Nkind (N) in N_Entity);
4643 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag193;
4646 function Flag194 (N : Node_Id) return Boolean is
4648 pragma Assert (Nkind (N) in N_Entity);
4649 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag194;
4652 function Flag195 (N : Node_Id) return Boolean is
4654 pragma Assert (Nkind (N) in N_Entity);
4655 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag195;
4658 function Flag196 (N : Node_Id) return Boolean is
4660 pragma Assert (Nkind (N) in N_Entity);
4661 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag196;
4664 function Flag197 (N : Node_Id) return Boolean is
4666 pragma Assert (Nkind (N) in N_Entity);
4667 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag197;
4670 function Flag198 (N : Node_Id) return Boolean is
4672 pragma Assert (Nkind (N) in N_Entity);
4673 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag198;
4676 function Flag199 (N : Node_Id) return Boolean is
4678 pragma Assert (Nkind (N) in N_Entity);
4679 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag199;
4682 function Flag200 (N : Node_Id) return Boolean is
4684 pragma Assert (Nkind (N) in N_Entity);
4685 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag200;
4688 function Flag201 (N : Node_Id) return Boolean is
4690 pragma Assert (Nkind (N) in N_Entity);
4691 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag201;
4694 function Flag202 (N : Node_Id) return Boolean is
4696 pragma Assert (Nkind (N) in N_Entity);
4697 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag202;
4700 function Flag203 (N : Node_Id) return Boolean is
4702 pragma Assert (Nkind (N) in N_Entity);
4703 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag203;
4706 function Flag204 (N : Node_Id) return Boolean is
4708 pragma Assert (Nkind (N) in N_Entity);
4709 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag204;
4712 function Flag205 (N : Node_Id) return Boolean is
4714 pragma Assert (Nkind (N) in N_Entity);
4715 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag205;
4718 function Flag206 (N : Node_Id) return Boolean is
4720 pragma Assert (Nkind (N) in N_Entity);
4721 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag206;
4724 function Flag207 (N : Node_Id) return Boolean is
4726 pragma Assert (Nkind (N) in N_Entity);
4727 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag207;
4730 function Flag208 (N : Node_Id) return Boolean is
4732 pragma Assert (Nkind (N) in N_Entity);
4733 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag208;
4736 function Flag209 (N : Node_Id) return Boolean is
4738 pragma Assert (Nkind (N) in N_Entity);
4739 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag209;
4742 function Flag210 (N : Node_Id) return Boolean is
4744 pragma Assert (Nkind (N) in N_Entity);
4745 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag210;
4748 function Flag211 (N : Node_Id) return Boolean is
4750 pragma Assert (Nkind (N) in N_Entity);
4751 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag211;
4754 function Flag212 (N : Node_Id) return Boolean is
4756 pragma Assert (Nkind (N) in N_Entity);
4757 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag212;
4760 function Flag213 (N : Node_Id) return Boolean is
4762 pragma Assert (Nkind (N) in N_Entity);
4763 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag213;
4766 function Flag214 (N : Node_Id) return Boolean is
4768 pragma Assert (Nkind (N) in N_Entity);
4769 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag214;
4772 function Flag215 (N : Node_Id) return Boolean is
4774 pragma Assert (Nkind (N) in N_Entity);
4775 return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag215;
4778 function Flag216 (N : Node_Id) return Boolean is
4780 pragma Assert (Nkind (N) in N_Entity);
4781 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag216;
4784 function Flag217 (N : Node_Id) return Boolean is
4786 pragma Assert (Nkind (N) in N_Entity);
4787 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag217;
4790 function Flag218 (N : Node_Id) return Boolean is
4792 pragma Assert (Nkind (N) in N_Entity);
4793 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag218;
4796 function Flag219 (N : Node_Id) return Boolean is
4798 pragma Assert (Nkind (N) in N_Entity);
4799 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag219;
4802 function Flag220 (N : Node_Id) return Boolean is
4804 pragma Assert (Nkind (N) in N_Entity);
4805 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag220;
4808 function Flag221 (N : Node_Id) return Boolean is
4810 pragma Assert (Nkind (N) in N_Entity);
4811 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag221;
4814 function Flag222 (N : Node_Id) return Boolean is
4816 pragma Assert (Nkind (N) in N_Entity);
4817 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag222;
4820 function Flag223 (N : Node_Id) return Boolean is
4822 pragma Assert (Nkind (N) in N_Entity);
4823 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag223;
4826 function Flag224 (N : Node_Id) return Boolean is
4828 pragma Assert (Nkind (N) in N_Entity);
4829 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag224;
4832 function Flag225 (N : Node_Id) return Boolean is
4834 pragma Assert (Nkind (N) in N_Entity);
4835 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag225;
4838 function Flag226 (N : Node_Id) return Boolean is
4840 pragma Assert (Nkind (N) in N_Entity);
4841 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag226;
4844 function Flag227 (N : Node_Id) return Boolean is
4846 pragma Assert (Nkind (N) in N_Entity);
4847 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag227;
4850 function Flag228 (N : Node_Id) return Boolean is
4852 pragma Assert (Nkind (N) in N_Entity);
4853 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag228;
4856 function Flag229 (N : Node_Id) return Boolean is
4858 pragma Assert (Nkind (N) in N_Entity);
4859 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag229;
4862 function Flag230 (N : Node_Id) return Boolean is
4864 pragma Assert (Nkind (N) in N_Entity);
4865 return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag230;
4868 procedure Set_Nkind (N : Node_Id; Val : Node_Kind) is
4870 pragma Assert (N <= Nodes.Last);
4871 Nodes.Table (N).Nkind := Val;
4874 procedure Set_Field1 (N : Node_Id; Val : Union_Id) is
4876 pragma Assert (N <= Nodes.Last);
4877 Nodes.Table (N).Field1 := Val;
4880 procedure Set_Field2 (N : Node_Id; Val : Union_Id) is
4882 pragma Assert (N <= Nodes.Last);
4883 Nodes.Table (N).Field2 := Val;
4886 procedure Set_Field3 (N : Node_Id; Val : Union_Id) is
4888 pragma Assert (N <= Nodes.Last);
4889 Nodes.Table (N).Field3 := Val;
4892 procedure Set_Field4 (N : Node_Id; Val : Union_Id) is
4894 pragma Assert (N <= Nodes.Last);
4895 Nodes.Table (N).Field4 := Val;
4898 procedure Set_Field5 (N : Node_Id; Val : Union_Id) is
4900 pragma Assert (N <= Nodes.Last);
4901 Nodes.Table (N).Field5 := Val;
4904 procedure Set_Field6 (N : Node_Id; Val : Union_Id) is
4906 pragma Assert (Nkind (N) in N_Entity);
4907 Nodes.Table (N + 1).Field6 := Val;
4910 procedure Set_Field7 (N : Node_Id; Val : Union_Id) is
4912 pragma Assert (Nkind (N) in N_Entity);
4913 Nodes.Table (N + 1).Field7 := Val;
4916 procedure Set_Field8 (N : Node_Id; Val : Union_Id) is
4918 pragma Assert (Nkind (N) in N_Entity);
4919 Nodes.Table (N + 1).Field8 := Val;
4922 procedure Set_Field9 (N : Node_Id; Val : Union_Id) is
4924 pragma Assert (Nkind (N) in N_Entity);
4925 Nodes.Table (N + 1).Field9 := Val;
4928 procedure Set_Field10 (N : Node_Id; Val : Union_Id) is
4930 pragma Assert (Nkind (N) in N_Entity);
4931 Nodes.Table (N + 1).Field10 := Val;
4934 procedure Set_Field11 (N : Node_Id; Val : Union_Id) is
4936 pragma Assert (Nkind (N) in N_Entity);
4937 Nodes.Table (N + 1).Field11 := Val;
4940 procedure Set_Field12 (N : Node_Id; Val : Union_Id) is
4942 pragma Assert (Nkind (N) in N_Entity);
4943 Nodes.Table (N + 1).Field12 := Val;
4946 procedure Set_Field13 (N : Node_Id; Val : Union_Id) is
4948 pragma Assert (Nkind (N) in N_Entity);
4949 Nodes.Table (N + 2).Field6 := Val;
4952 procedure Set_Field14 (N : Node_Id; Val : Union_Id) is
4954 pragma Assert (Nkind (N) in N_Entity);
4955 Nodes.Table (N + 2).Field7 := Val;
4958 procedure Set_Field15 (N : Node_Id; Val : Union_Id) is
4960 pragma Assert (Nkind (N) in N_Entity);
4961 Nodes.Table (N + 2).Field8 := Val;
4964 procedure Set_Field16 (N : Node_Id; Val : Union_Id) is
4966 pragma Assert (Nkind (N) in N_Entity);
4967 Nodes.Table (N + 2).Field9 := Val;
4970 procedure Set_Field17 (N : Node_Id; Val : Union_Id) is
4972 pragma Assert (Nkind (N) in N_Entity);
4973 Nodes.Table (N + 2).Field10 := Val;
4976 procedure Set_Field18 (N : Node_Id; Val : Union_Id) is
4978 pragma Assert (Nkind (N) in N_Entity);
4979 Nodes.Table (N + 2).Field11 := Val;
4982 procedure Set_Field19 (N : Node_Id; Val : Union_Id) is
4984 pragma Assert (Nkind (N) in N_Entity);
4985 Nodes.Table (N + 3).Field6 := Val;
4988 procedure Set_Field20 (N : Node_Id; Val : Union_Id) is
4990 pragma Assert (Nkind (N) in N_Entity);
4991 Nodes.Table (N + 3).Field7 := Val;
4994 procedure Set_Field21 (N : Node_Id; Val : Union_Id) is
4996 pragma Assert (Nkind (N) in N_Entity);
4997 Nodes.Table (N + 3).Field8 := Val;
5000 procedure Set_Field22 (N : Node_Id; Val : Union_Id) is
5002 pragma Assert (Nkind (N) in N_Entity);
5003 Nodes.Table (N + 3).Field9 := Val;
5006 procedure Set_Field23 (N : Node_Id; Val : Union_Id) is
5008 pragma Assert (Nkind (N) in N_Entity);
5009 Nodes.Table (N + 3).Field10 := Val;
5012 procedure Set_Field24 (N : Node_Id; Val : Union_Id) is
5014 pragma Assert (Nkind (N) in N_Entity);
5015 Nodes.Table (N + 4).Field6 := Val;
5018 procedure Set_Field25 (N : Node_Id; Val : Union_Id) is
5020 pragma Assert (Nkind (N) in N_Entity);
5021 Nodes.Table (N + 4).Field7 := Val;
5024 procedure Set_Field26 (N : Node_Id; Val : Union_Id) is
5026 pragma Assert (Nkind (N) in N_Entity);
5027 Nodes.Table (N + 4).Field8 := Val;
5030 procedure Set_Field27 (N : Node_Id; Val : Union_Id) is
5032 pragma Assert (Nkind (N) in N_Entity);
5033 Nodes.Table (N + 4).Field9 := Val;
5036 procedure Set_Field28 (N : Node_Id; Val : Union_Id) is
5038 pragma Assert (Nkind (N) in N_Entity);
5039 Nodes.Table (N + 4).Field10 := Val;
5042 procedure Set_Node1 (N : Node_Id; Val : Node_Id) is
5044 pragma Assert (N <= Nodes.Last);
5045 Nodes.Table (N).Field1 := Union_Id (Val);
5048 procedure Set_Node2 (N : Node_Id; Val : Node_Id) is
5050 pragma Assert (N <= Nodes.Last);
5051 Nodes.Table (N).Field2 := Union_Id (Val);
5054 procedure Set_Node3 (N : Node_Id; Val : Node_Id) is
5056 pragma Assert (N <= Nodes.Last);
5057 Nodes.Table (N).Field3 := Union_Id (Val);
5060 procedure Set_Node4 (N : Node_Id; Val : Node_Id) is
5062 pragma Assert (N <= Nodes.Last);
5063 Nodes.Table (N).Field4 := Union_Id (Val);
5066 procedure Set_Node5 (N : Node_Id; Val : Node_Id) is
5068 pragma Assert (N <= Nodes.Last);
5069 Nodes.Table (N).Field5 := Union_Id (Val);
5072 procedure Set_Node6 (N : Node_Id; Val : Node_Id) is
5074 pragma Assert (Nkind (N) in N_Entity);
5075 Nodes.Table (N + 1).Field6 := Union_Id (Val);
5078 procedure Set_Node7 (N : Node_Id; Val : Node_Id) is
5080 pragma Assert (Nkind (N) in N_Entity);
5081 Nodes.Table (N + 1).Field7 := Union_Id (Val);
5084 procedure Set_Node8 (N : Node_Id; Val : Node_Id) is
5086 pragma Assert (Nkind (N) in N_Entity);
5087 Nodes.Table (N + 1).Field8 := Union_Id (Val);
5090 procedure Set_Node9 (N : Node_Id; Val : Node_Id) is
5092 pragma Assert (Nkind (N) in N_Entity);
5093 Nodes.Table (N + 1).Field9 := Union_Id (Val);
5096 procedure Set_Node10 (N : Node_Id; Val : Node_Id) is
5098 pragma Assert (Nkind (N) in N_Entity);
5099 Nodes.Table (N + 1).Field10 := Union_Id (Val);
5102 procedure Set_Node11 (N : Node_Id; Val : Node_Id) is
5104 pragma Assert (Nkind (N) in N_Entity);
5105 Nodes.Table (N + 1).Field11 := Union_Id (Val);
5108 procedure Set_Node12 (N : Node_Id; Val : Node_Id) is
5110 pragma Assert (Nkind (N) in N_Entity);
5111 Nodes.Table (N + 1).Field12 := Union_Id (Val);
5114 procedure Set_Node13 (N : Node_Id; Val : Node_Id) is
5116 pragma Assert (Nkind (N) in N_Entity);
5117 Nodes.Table (N + 2).Field6 := Union_Id (Val);
5120 procedure Set_Node14 (N : Node_Id; Val : Node_Id) is
5122 pragma Assert (Nkind (N) in N_Entity);
5123 Nodes.Table (N + 2).Field7 := Union_Id (Val);
5126 procedure Set_Node15 (N : Node_Id; Val : Node_Id) is
5128 pragma Assert (Nkind (N) in N_Entity);
5129 Nodes.Table (N + 2).Field8 := Union_Id (Val);
5132 procedure Set_Node16 (N : Node_Id; Val : Node_Id) is
5134 pragma Assert (Nkind (N) in N_Entity);
5135 Nodes.Table (N + 2).Field9 := Union_Id (Val);
5138 procedure Set_Node17 (N : Node_Id; Val : Node_Id) is
5140 pragma Assert (Nkind (N) in N_Entity);
5141 Nodes.Table (N + 2).Field10 := Union_Id (Val);
5144 procedure Set_Node18 (N : Node_Id; Val : Node_Id) is
5146 pragma Assert (Nkind (N) in N_Entity);
5147 Nodes.Table (N + 2).Field11 := Union_Id (Val);
5150 procedure Set_Node19 (N : Node_Id; Val : Node_Id) is
5152 pragma Assert (Nkind (N) in N_Entity);
5153 Nodes.Table (N + 3).Field6 := Union_Id (Val);
5156 procedure Set_Node20 (N : Node_Id; Val : Node_Id) is
5158 pragma Assert (Nkind (N) in N_Entity);
5159 Nodes.Table (N + 3).Field7 := Union_Id (Val);
5162 procedure Set_Node21 (N : Node_Id; Val : Node_Id) is
5164 pragma Assert (Nkind (N) in N_Entity);
5165 Nodes.Table (N + 3).Field8 := Union_Id (Val);
5168 procedure Set_Node22 (N : Node_Id; Val : Node_Id) is
5170 pragma Assert (Nkind (N) in N_Entity);
5171 Nodes.Table (N + 3).Field9 := Union_Id (Val);
5174 procedure Set_Node23 (N : Node_Id; Val : Node_Id) is
5176 pragma Assert (Nkind (N) in N_Entity);
5177 Nodes.Table (N + 3).Field10 := Union_Id (Val);
5180 procedure Set_Node24 (N : Node_Id; Val : Node_Id) is
5182 pragma Assert (Nkind (N) in N_Entity);
5183 Nodes.Table (N + 4).Field6 := Union_Id (Val);
5186 procedure Set_Node25 (N : Node_Id; Val : Node_Id) is
5188 pragma Assert (Nkind (N) in N_Entity);
5189 Nodes.Table (N + 4).Field7 := Union_Id (Val);
5192 procedure Set_Node26 (N : Node_Id; Val : Node_Id) is
5194 pragma Assert (Nkind (N) in N_Entity);
5195 Nodes.Table (N + 4).Field8 := Union_Id (Val);
5198 procedure Set_Node27 (N : Node_Id; Val : Node_Id) is
5200 pragma Assert (Nkind (N) in N_Entity);
5201 Nodes.Table (N + 4).Field9 := Union_Id (Val);
5204 procedure Set_Node28 (N : Node_Id; Val : Node_Id) is
5206 pragma Assert (Nkind (N) in N_Entity);
5207 Nodes.Table (N + 4).Field10 := Union_Id (Val);
5210 procedure Set_List1 (N : Node_Id; Val : List_Id) is
5212 pragma Assert (N <= Nodes.Last);
5213 Nodes.Table (N).Field1 := Union_Id (Val);
5216 procedure Set_List2 (N : Node_Id; Val : List_Id) is
5218 pragma Assert (N <= Nodes.Last);
5219 Nodes.Table (N).Field2 := Union_Id (Val);
5222 procedure Set_List3 (N : Node_Id; Val : List_Id) is
5224 pragma Assert (N <= Nodes.Last);
5225 Nodes.Table (N).Field3 := Union_Id (Val);
5228 procedure Set_List4 (N : Node_Id; Val : List_Id) is
5230 pragma Assert (N <= Nodes.Last);
5231 Nodes.Table (N).Field4 := Union_Id (Val);
5234 procedure Set_List5 (N : Node_Id; Val : List_Id) is
5236 pragma Assert (N <= Nodes.Last);
5237 Nodes.Table (N).Field5 := Union_Id (Val);
5240 procedure Set_List10 (N : Node_Id; Val : List_Id) is
5242 pragma Assert (Nkind (N) in N_Entity);
5243 Nodes.Table (N + 1).Field10 := Union_Id (Val);
5246 procedure Set_List14 (N : Node_Id; Val : List_Id) is
5248 pragma Assert (Nkind (N) in N_Entity);
5249 Nodes.Table (N + 2).Field7 := Union_Id (Val);
5252 procedure Set_Elist1 (N : Node_Id; Val : Elist_Id) is
5254 Nodes.Table (N).Field1 := Union_Id (Val);
5257 procedure Set_Elist2 (N : Node_Id; Val : Elist_Id) is
5259 Nodes.Table (N).Field2 := Union_Id (Val);
5262 procedure Set_Elist3 (N : Node_Id; Val : Elist_Id) is
5264 Nodes.Table (N).Field3 := Union_Id (Val);
5267 procedure Set_Elist4 (N : Node_Id; Val : Elist_Id) is
5269 Nodes.Table (N).Field4 := Union_Id (Val);
5272 procedure Set_Elist8 (N : Node_Id; Val : Elist_Id) is
5274 pragma Assert (Nkind (N) in N_Entity);
5275 Nodes.Table (N + 1).Field8 := Union_Id (Val);
5278 procedure Set_Elist13 (N : Node_Id; Val : Elist_Id) is
5280 pragma Assert (Nkind (N) in N_Entity);
5281 Nodes.Table (N + 2).Field6 := Union_Id (Val);
5284 procedure Set_Elist15 (N : Node_Id; Val : Elist_Id) is
5286 pragma Assert (Nkind (N) in N_Entity);
5287 Nodes.Table (N + 2).Field8 := Union_Id (Val);
5290 procedure Set_Elist16 (N : Node_Id; Val : Elist_Id) is
5292 pragma Assert (Nkind (N) in N_Entity);
5293 Nodes.Table (N + 2).Field9 := Union_Id (Val);
5296 procedure Set_Elist18 (N : Node_Id; Val : Elist_Id) is
5298 pragma Assert (Nkind (N) in N_Entity);
5299 Nodes.Table (N + 2).Field11 := Union_Id (Val);
5302 procedure Set_Elist21 (N : Node_Id; Val : Elist_Id) is
5304 pragma Assert (Nkind (N) in N_Entity);
5305 Nodes.Table (N + 3).Field8 := Union_Id (Val);
5308 procedure Set_Elist23 (N : Node_Id; Val : Elist_Id) is
5310 pragma Assert (Nkind (N) in N_Entity);
5311 Nodes.Table (N + 3).Field10 := Union_Id (Val);
5314 procedure Set_Elist25 (N : Node_Id; Val : Elist_Id) is
5316 pragma Assert (Nkind (N) in N_Entity);
5317 Nodes.Table (N + 4).Field7 := Union_Id (Val);
5320 procedure Set_Name1 (N : Node_Id; Val : Name_Id) is
5322 pragma Assert (N <= Nodes.Last);
5323 Nodes.Table (N).Field1 := Union_Id (Val);
5326 procedure Set_Name2 (N : Node_Id; Val : Name_Id) is
5328 pragma Assert (N <= Nodes.Last);
5329 Nodes.Table (N).Field2 := Union_Id (Val);
5332 procedure Set_Str3 (N : Node_Id; Val : String_Id) is
5334 pragma Assert (N <= Nodes.Last);
5335 Nodes.Table (N).Field3 := Union_Id (Val);
5338 procedure Set_Uint2 (N : Node_Id; Val : Uint) is
5340 pragma Assert (N <= Nodes.Last);
5341 Nodes.Table (N).Field2 := To_Union (Val);
5344 procedure Set_Uint3 (N : Node_Id; Val : Uint) is
5346 pragma Assert (N <= Nodes.Last);
5347 Nodes.Table (N).Field3 := To_Union (Val);
5350 procedure Set_Uint4 (N : Node_Id; Val : Uint) is
5352 pragma Assert (N <= Nodes.Last);
5353 Nodes.Table (N).Field4 := To_Union (Val);
5356 procedure Set_Uint5 (N : Node_Id; Val : Uint) is
5358 pragma Assert (N <= Nodes.Last);
5359 Nodes.Table (N).Field5 := To_Union (Val);
5362 procedure Set_Uint8 (N : Node_Id; Val : Uint) is
5364 pragma Assert (Nkind (N) in N_Entity);
5365 Nodes.Table (N + 1).Field8 := To_Union (Val);
5368 procedure Set_Uint9 (N : Node_Id; Val : Uint) is
5370 pragma Assert (Nkind (N) in N_Entity);
5371 Nodes.Table (N + 1).Field9 := To_Union (Val);
5374 procedure Set_Uint10 (N : Node_Id; Val : Uint) is
5376 pragma Assert (Nkind (N) in N_Entity);
5377 Nodes.Table (N + 1).Field10 := To_Union (Val);
5380 procedure Set_Uint11 (N : Node_Id; Val : Uint) is
5382 pragma Assert (Nkind (N) in N_Entity);
5383 Nodes.Table (N + 1).Field11 := To_Union (Val);
5386 procedure Set_Uint12 (N : Node_Id; Val : Uint) is
5388 pragma Assert (Nkind (N) in N_Entity);
5389 Nodes.Table (N + 1).Field12 := To_Union (Val);
5392 procedure Set_Uint13 (N : Node_Id; Val : Uint) is
5394 pragma Assert (Nkind (N) in N_Entity);
5395 Nodes.Table (N + 2).Field6 := To_Union (Val);
5398 procedure Set_Uint14 (N : Node_Id; Val : Uint) is
5400 pragma Assert (Nkind (N) in N_Entity);
5401 Nodes.Table (N + 2).Field7 := To_Union (Val);
5404 procedure Set_Uint15 (N : Node_Id; Val : Uint) is
5406 pragma Assert (Nkind (N) in N_Entity);
5407 Nodes.Table (N + 2).Field8 := To_Union (Val);
5410 procedure Set_Uint16 (N : Node_Id; Val : Uint) is
5412 pragma Assert (Nkind (N) in N_Entity);
5413 Nodes.Table (N + 2).Field9 := To_Union (Val);
5416 procedure Set_Uint17 (N : Node_Id; Val : Uint) is
5418 pragma Assert (Nkind (N) in N_Entity);
5419 Nodes.Table (N + 2).Field10 := To_Union (Val);
5422 procedure Set_Uint22 (N : Node_Id; Val : Uint) is
5424 pragma Assert (Nkind (N) in N_Entity);
5425 Nodes.Table (N + 3).Field9 := To_Union (Val);
5428 procedure Set_Ureal3 (N : Node_Id; Val : Ureal) is
5430 pragma Assert (N <= Nodes.Last);
5431 Nodes.Table (N).Field3 := To_Union (Val);
5434 procedure Set_Ureal18 (N : Node_Id; Val : Ureal) is
5436 pragma Assert (Nkind (N) in N_Entity);
5437 Nodes.Table (N + 2).Field11 := To_Union (Val);
5440 procedure Set_Ureal21 (N : Node_Id; Val : Ureal) is
5442 pragma Assert (Nkind (N) in N_Entity);
5443 Nodes.Table (N + 3).Field8 := To_Union (Val);
5446 procedure Set_Flag4 (N : Node_Id; Val : Boolean) is
5448 pragma Assert (N <= Nodes.Last);
5449 Nodes.Table (N).Flag4 := Val;
5452 procedure Set_Flag5 (N : Node_Id; Val : Boolean) is
5454 pragma Assert (N <= Nodes.Last);
5455 Nodes.Table (N).Flag5 := Val;
5458 procedure Set_Flag6 (N : Node_Id; Val : Boolean) is
5460 pragma Assert (N <= Nodes.Last);
5461 Nodes.Table (N).Flag6 := Val;
5464 procedure Set_Flag7 (N : Node_Id; Val : Boolean) is
5466 pragma Assert (N <= Nodes.Last);
5467 Nodes.Table (N).Flag7 := Val;
5470 procedure Set_Flag8 (N : Node_Id; Val : Boolean) is
5472 pragma Assert (N <= Nodes.Last);
5473 Nodes.Table (N).Flag8 := Val;
5476 procedure Set_Flag9 (N : Node_Id; Val : Boolean) is
5478 pragma Assert (N <= Nodes.Last);
5479 Nodes.Table (N).Flag9 := Val;
5482 procedure Set_Flag10 (N : Node_Id; Val : Boolean) is
5484 pragma Assert (N <= Nodes.Last);
5485 Nodes.Table (N).Flag10 := Val;
5488 procedure Set_Flag11 (N : Node_Id; Val : Boolean) is
5490 pragma Assert (N <= Nodes.Last);
5491 Nodes.Table (N).Flag11 := Val;
5494 procedure Set_Flag12 (N : Node_Id; Val : Boolean) is
5496 pragma Assert (N <= Nodes.Last);
5497 Nodes.Table (N).Flag12 := Val;
5500 procedure Set_Flag13 (N : Node_Id; Val : Boolean) is
5502 pragma Assert (N <= Nodes.Last);
5503 Nodes.Table (N).Flag13 := Val;
5506 procedure Set_Flag14 (N : Node_Id; Val : Boolean) is
5508 pragma Assert (N <= Nodes.Last);
5509 Nodes.Table (N).Flag14 := Val;
5512 procedure Set_Flag15 (N : Node_Id; Val : Boolean) is
5514 pragma Assert (N <= Nodes.Last);
5515 Nodes.Table (N).Flag15 := Val;
5518 procedure Set_Flag16 (N : Node_Id; Val : Boolean) is
5520 pragma Assert (N <= Nodes.Last);
5521 Nodes.Table (N).Flag16 := Val;
5524 procedure Set_Flag17 (N : Node_Id; Val : Boolean) is
5526 pragma Assert (N <= Nodes.Last);
5527 Nodes.Table (N).Flag17 := Val;
5530 procedure Set_Flag18 (N : Node_Id; Val : Boolean) is
5532 pragma Assert (N <= Nodes.Last);
5533 Nodes.Table (N).Flag18 := Val;
5536 procedure Set_Flag19 (N : Node_Id; Val : Boolean) is
5538 pragma Assert (Nkind (N) in N_Entity);
5539 Nodes.Table (N + 1).In_List := Val;
5542 procedure Set_Flag20 (N : Node_Id; Val : Boolean) is
5544 pragma Assert (Nkind (N) in N_Entity);
5545 Nodes.Table (N + 1).Unused_1 := Val;
5548 procedure Set_Flag21 (N : Node_Id; Val : Boolean) is
5550 pragma Assert (Nkind (N) in N_Entity);
5551 Nodes.Table (N + 1).Rewrite_Ins := Val;
5554 procedure Set_Flag22 (N : Node_Id; Val : Boolean) is
5556 pragma Assert (Nkind (N) in N_Entity);
5557 Nodes.Table (N + 1).Analyzed := Val;
5560 procedure Set_Flag23 (N : Node_Id; Val : Boolean) is
5562 pragma Assert (Nkind (N) in N_Entity);
5563 Nodes.Table (N + 1).Comes_From_Source := Val;
5566 procedure Set_Flag24 (N : Node_Id; Val : Boolean) is
5568 pragma Assert (Nkind (N) in N_Entity);
5569 Nodes.Table (N + 1).Error_Posted := Val;
5572 procedure Set_Flag25 (N : Node_Id; Val : Boolean) is
5574 pragma Assert (Nkind (N) in N_Entity);
5575 Nodes.Table (N + 1).Flag4 := Val;
5578 procedure Set_Flag26 (N : Node_Id; Val : Boolean) is
5580 pragma Assert (Nkind (N) in N_Entity);
5581 Nodes.Table (N + 1).Flag5 := Val;
5584 procedure Set_Flag27 (N : Node_Id; Val : Boolean) is
5586 pragma Assert (Nkind (N) in N_Entity);
5587 Nodes.Table (N + 1).Flag6 := Val;
5590 procedure Set_Flag28 (N : Node_Id; Val : Boolean) is
5592 pragma Assert (Nkind (N) in N_Entity);
5593 Nodes.Table (N + 1).Flag7 := Val;
5596 procedure Set_Flag29 (N : Node_Id; Val : Boolean) is
5598 pragma Assert (Nkind (N) in N_Entity);
5599 Nodes.Table (N + 1).Flag8 := Val;
5602 procedure Set_Flag30 (N : Node_Id; Val : Boolean) is
5604 pragma Assert (Nkind (N) in N_Entity);
5605 Nodes.Table (N + 1).Flag9 := Val;
5608 procedure Set_Flag31 (N : Node_Id; Val : Boolean) is
5610 pragma Assert (Nkind (N) in N_Entity);
5611 Nodes.Table (N + 1).Flag10 := Val;
5614 procedure Set_Flag32 (N : Node_Id; Val : Boolean) is
5616 pragma Assert (Nkind (N) in N_Entity);
5617 Nodes.Table (N + 1).Flag11 := Val;
5620 procedure Set_Flag33 (N : Node_Id; Val : Boolean) is
5622 pragma Assert (Nkind (N) in N_Entity);
5623 Nodes.Table (N + 1).Flag12 := Val;
5626 procedure Set_Flag34 (N : Node_Id; Val : Boolean) is
5628 pragma Assert (Nkind (N) in N_Entity);
5629 Nodes.Table (N + 1).Flag13 := Val;
5632 procedure Set_Flag35 (N : Node_Id; Val : Boolean) is
5634 pragma Assert (Nkind (N) in N_Entity);
5635 Nodes.Table (N + 1).Flag14 := Val;
5638 procedure Set_Flag36 (N : Node_Id; Val : Boolean) is
5640 pragma Assert (Nkind (N) in N_Entity);
5641 Nodes.Table (N + 1).Flag15 := Val;
5644 procedure Set_Flag37 (N : Node_Id; Val : Boolean) is
5646 pragma Assert (Nkind (N) in N_Entity);
5647 Nodes.Table (N + 1).Flag16 := Val;
5650 procedure Set_Flag38 (N : Node_Id; Val : Boolean) is
5652 pragma Assert (Nkind (N) in N_Entity);
5653 Nodes.Table (N + 1).Flag17 := Val;
5656 procedure Set_Flag39 (N : Node_Id; Val : Boolean) is
5658 pragma Assert (Nkind (N) in N_Entity);
5659 Nodes.Table (N + 1).Flag18 := Val;
5662 procedure Set_Flag40 (N : Node_Id; Val : Boolean) is
5664 pragma Assert (Nkind (N) in N_Entity);
5665 Nodes.Table (N + 2).In_List := Val;
5668 procedure Set_Flag41 (N : Node_Id; Val : Boolean) is
5670 pragma Assert (Nkind (N) in N_Entity);
5671 Nodes.Table (N + 2).Unused_1 := Val;
5674 procedure Set_Flag42 (N : Node_Id; Val : Boolean) is
5676 pragma Assert (Nkind (N) in N_Entity);
5677 Nodes.Table (N + 2).Rewrite_Ins := Val;
5680 procedure Set_Flag43 (N : Node_Id; Val : Boolean) is
5682 pragma Assert (Nkind (N) in N_Entity);
5683 Nodes.Table (N + 2).Analyzed := Val;
5686 procedure Set_Flag44 (N : Node_Id; Val : Boolean) is
5688 pragma Assert (Nkind (N) in N_Entity);
5689 Nodes.Table (N + 2).Comes_From_Source := Val;
5692 procedure Set_Flag45 (N : Node_Id; Val : Boolean) is
5694 pragma Assert (Nkind (N) in N_Entity);
5695 Nodes.Table (N + 2).Error_Posted := Val;
5698 procedure Set_Flag46 (N : Node_Id; Val : Boolean) is
5700 pragma Assert (Nkind (N) in N_Entity);
5701 Nodes.Table (N + 2).Flag4 := Val;
5704 procedure Set_Flag47 (N : Node_Id; Val : Boolean) is
5706 pragma Assert (Nkind (N) in N_Entity);
5707 Nodes.Table (N + 2).Flag5 := Val;
5710 procedure Set_Flag48 (N : Node_Id; Val : Boolean) is
5712 pragma Assert (Nkind (N) in N_Entity);
5713 Nodes.Table (N + 2).Flag6 := Val;
5716 procedure Set_Flag49 (N : Node_Id; Val : Boolean) is
5718 pragma Assert (Nkind (N) in N_Entity);
5719 Nodes.Table (N + 2).Flag7 := Val;
5722 procedure Set_Flag50 (N : Node_Id; Val : Boolean) is
5724 pragma Assert (Nkind (N) in N_Entity);
5725 Nodes.Table (N + 2).Flag8 := Val;
5728 procedure Set_Flag51 (N : Node_Id; Val : Boolean) is
5730 pragma Assert (Nkind (N) in N_Entity);
5731 Nodes.Table (N + 2).Flag9 := Val;
5734 procedure Set_Flag52 (N : Node_Id; Val : Boolean) is
5736 pragma Assert (Nkind (N) in N_Entity);
5737 Nodes.Table (N + 2).Flag10 := Val;
5740 procedure Set_Flag53 (N : Node_Id; Val : Boolean) is
5742 pragma Assert (Nkind (N) in N_Entity);
5743 Nodes.Table (N + 2).Flag11 := Val;
5746 procedure Set_Flag54 (N : Node_Id; Val : Boolean) is
5748 pragma Assert (Nkind (N) in N_Entity);
5749 Nodes.Table (N + 2).Flag12 := Val;
5752 procedure Set_Flag55 (N : Node_Id; Val : Boolean) is
5754 pragma Assert (Nkind (N) in N_Entity);
5755 Nodes.Table (N + 2).Flag13 := Val;
5758 procedure Set_Flag56 (N : Node_Id; Val : Boolean) is
5760 pragma Assert (Nkind (N) in N_Entity);
5761 Nodes.Table (N + 2).Flag14 := Val;
5764 procedure Set_Flag57 (N : Node_Id; Val : Boolean) is
5766 pragma Assert (Nkind (N) in N_Entity);
5767 Nodes.Table (N + 2).Flag15 := Val;
5770 procedure Set_Flag58 (N : Node_Id; Val : Boolean) is
5772 pragma Assert (Nkind (N) in N_Entity);
5773 Nodes.Table (N + 2).Flag16 := Val;
5776 procedure Set_Flag59 (N : Node_Id; Val : Boolean) is
5778 pragma Assert (Nkind (N) in N_Entity);
5779 Nodes.Table (N + 2).Flag17 := Val;
5782 procedure Set_Flag60 (N : Node_Id; Val : Boolean) is
5784 pragma Assert (Nkind (N) in N_Entity);
5785 Nodes.Table (N + 2).Flag18 := Val;
5788 procedure Set_Flag61 (N : Node_Id; Val : Boolean) is
5790 pragma Assert (Nkind (N) in N_Entity);
5791 Nodes.Table (N + 1).Pflag1 := Val;
5794 procedure Set_Flag62 (N : Node_Id; Val : Boolean) is
5796 pragma Assert (Nkind (N) in N_Entity);
5797 Nodes.Table (N + 1).Pflag2 := Val;
5800 procedure Set_Flag63 (N : Node_Id; Val : Boolean) is
5802 pragma Assert (Nkind (N) in N_Entity);
5803 Nodes.Table (N + 2).Pflag1 := Val;
5806 procedure Set_Flag64 (N : Node_Id; Val : Boolean) is
5808 pragma Assert (Nkind (N) in N_Entity);
5809 Nodes.Table (N + 2).Pflag2 := Val;
5812 procedure Set_Flag65 (N : Node_Id; Val : Boolean) is
5814 pragma Assert (Nkind (N) in N_Entity);
5817 (Nodes
.Table
(N
+ 2).Nkind
'Unrestricted_Access)).Flag65
:= Val
;
5820 procedure Set_Flag66
(N
: Node_Id
; Val
: Boolean) is
5822 pragma Assert
(Nkind
(N
) in N_Entity
);
5825 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag66 := Val;
5828 procedure Set_Flag67 (N : Node_Id; Val : Boolean) is
5830 pragma Assert (Nkind (N) in N_Entity);
5833 (Nodes
.Table
(N
+ 2).Nkind
'Unrestricted_Access)).Flag67
:= Val
;
5836 procedure Set_Flag68
(N
: Node_Id
; Val
: Boolean) is
5838 pragma Assert
(Nkind
(N
) in N_Entity
);
5841 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag68 := Val;
5844 procedure Set_Flag69 (N : Node_Id; Val : Boolean) is
5846 pragma Assert (Nkind (N) in N_Entity);
5849 (Nodes
.Table
(N
+ 2).Nkind
'Unrestricted_Access)).Flag69
:= Val
;
5852 procedure Set_Flag70
(N
: Node_Id
; Val
: Boolean) is
5854 pragma Assert
(Nkind
(N
) in N_Entity
);
5857 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag70 := Val;
5860 procedure Set_Flag71 (N : Node_Id; Val : Boolean) is
5862 pragma Assert (Nkind (N) in N_Entity);
5865 (Nodes
.Table
(N
+ 2).Nkind
'Unrestricted_Access)).Flag71
:= Val
;
5868 procedure Set_Flag72
(N
: Node_Id
; Val
: Boolean) is
5870 pragma Assert
(Nkind
(N
) in N_Entity
);
5873 (Nodes.Table (N + 2).Nkind'Unrestricted_Access)).Flag72 := Val;
5876 procedure Set_Flag73 (N : Node_Id; Val : Boolean) is
5878 pragma Assert (Nkind (N) in N_Entity);
5881 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag73
:= Val
;
5884 procedure Set_Flag74
(N
: Node_Id
; Val
: Boolean) is
5886 pragma Assert
(Nkind
(N
) in N_Entity
);
5889 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag74 := Val;
5892 procedure Set_Flag75 (N : Node_Id; Val : Boolean) is
5894 pragma Assert (Nkind (N) in N_Entity);
5897 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag75
:= Val
;
5900 procedure Set_Flag76
(N
: Node_Id
; Val
: Boolean) is
5902 pragma Assert
(Nkind
(N
) in N_Entity
);
5905 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag76 := Val;
5908 procedure Set_Flag77 (N : Node_Id; Val : Boolean) is
5910 pragma Assert (Nkind (N) in N_Entity);
5913 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag77
:= Val
;
5916 procedure Set_Flag78
(N
: Node_Id
; Val
: Boolean) is
5918 pragma Assert
(Nkind
(N
) in N_Entity
);
5921 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag78 := Val;
5924 procedure Set_Flag79 (N : Node_Id; Val : Boolean) is
5926 pragma Assert (Nkind (N) in N_Entity);
5929 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag79
:= Val
;
5932 procedure Set_Flag80
(N
: Node_Id
; Val
: Boolean) is
5934 pragma Assert
(Nkind
(N
) in N_Entity
);
5937 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag80 := Val;
5940 procedure Set_Flag81 (N : Node_Id; Val : Boolean) is
5942 pragma Assert (Nkind (N) in N_Entity);
5945 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag81
:= Val
;
5948 procedure Set_Flag82
(N
: Node_Id
; Val
: Boolean) is
5950 pragma Assert
(Nkind
(N
) in N_Entity
);
5953 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag82 := Val;
5956 procedure Set_Flag83 (N : Node_Id; Val : Boolean) is
5958 pragma Assert (Nkind (N) in N_Entity);
5961 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag83
:= Val
;
5964 procedure Set_Flag84
(N
: Node_Id
; Val
: Boolean) is
5966 pragma Assert
(Nkind
(N
) in N_Entity
);
5969 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag84 := Val;
5972 procedure Set_Flag85 (N : Node_Id; Val : Boolean) is
5974 pragma Assert (Nkind (N) in N_Entity);
5977 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag85
:= Val
;
5980 procedure Set_Flag86
(N
: Node_Id
; Val
: Boolean) is
5982 pragma Assert
(Nkind
(N
) in N_Entity
);
5985 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag86 := Val;
5988 procedure Set_Flag87 (N : Node_Id; Val : Boolean) is
5990 pragma Assert (Nkind (N) in N_Entity);
5993 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag87
:= Val
;
5996 procedure Set_Flag88
(N
: Node_Id
; Val
: Boolean) is
5998 pragma Assert
(Nkind
(N
) in N_Entity
);
6001 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag88 := Val;
6004 procedure Set_Flag89 (N : Node_Id; Val : Boolean) is
6006 pragma Assert (Nkind (N) in N_Entity);
6009 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag89
:= Val
;
6012 procedure Set_Flag90
(N
: Node_Id
; Val
: Boolean) is
6014 pragma Assert
(Nkind
(N
) in N_Entity
);
6017 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag90 := Val;
6020 procedure Set_Flag91 (N : Node_Id; Val : Boolean) is
6022 pragma Assert (Nkind (N) in N_Entity);
6025 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag91
:= Val
;
6028 procedure Set_Flag92
(N
: Node_Id
; Val
: Boolean) is
6030 pragma Assert
(Nkind
(N
) in N_Entity
);
6033 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag92 := Val;
6036 procedure Set_Flag93 (N : Node_Id; Val : Boolean) is
6038 pragma Assert (Nkind (N) in N_Entity);
6041 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag93
:= Val
;
6044 procedure Set_Flag94
(N
: Node_Id
; Val
: Boolean) is
6046 pragma Assert
(Nkind
(N
) in N_Entity
);
6049 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag94 := Val;
6052 procedure Set_Flag95 (N : Node_Id; Val : Boolean) is
6054 pragma Assert (Nkind (N) in N_Entity);
6057 (Nodes
.Table
(N
+ 2).Field12
'Unrestricted_Access)).Flag95
:= Val
;
6060 procedure Set_Flag96
(N
: Node_Id
; Val
: Boolean) is
6062 pragma Assert
(Nkind
(N
) in N_Entity
);
6065 (Nodes.Table (N + 2).Field12'Unrestricted_Access)).Flag96 := Val;
6068 procedure Set_Flag97 (N : Node_Id; Val : Boolean) is
6070 pragma Assert (Nkind (N) in N_Entity);
6073 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag97
:= Val
;
6076 procedure Set_Flag98
(N
: Node_Id
; Val
: Boolean) is
6078 pragma Assert
(Nkind
(N
) in N_Entity
);
6081 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag98 := Val;
6084 procedure Set_Flag99 (N : Node_Id; Val : Boolean) is
6086 pragma Assert (Nkind (N) in N_Entity);
6089 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag99
:= Val
;
6092 procedure Set_Flag100
(N
: Node_Id
; Val
: Boolean) is
6094 pragma Assert
(Nkind
(N
) in N_Entity
);
6097 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag100 := Val;
6100 procedure Set_Flag101 (N : Node_Id; Val : Boolean) is
6102 pragma Assert (Nkind (N) in N_Entity);
6105 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag101
:= Val
;
6108 procedure Set_Flag102
(N
: Node_Id
; Val
: Boolean) is
6110 pragma Assert
(Nkind
(N
) in N_Entity
);
6113 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag102 := Val;
6116 procedure Set_Flag103 (N : Node_Id; Val : Boolean) is
6118 pragma Assert (Nkind (N) in N_Entity);
6121 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag103
:= Val
;
6124 procedure Set_Flag104
(N
: Node_Id
; Val
: Boolean) is
6126 pragma Assert
(Nkind
(N
) in N_Entity
);
6129 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag104 := Val;
6132 procedure Set_Flag105 (N : Node_Id; Val : Boolean) is
6134 pragma Assert (Nkind (N) in N_Entity);
6137 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag105
:= Val
;
6140 procedure Set_Flag106
(N
: Node_Id
; Val
: Boolean) is
6142 pragma Assert
(Nkind
(N
) in N_Entity
);
6145 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag106 := Val;
6148 procedure Set_Flag107 (N : Node_Id; Val : Boolean) is
6150 pragma Assert (Nkind (N) in N_Entity);
6153 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag107
:= Val
;
6156 procedure Set_Flag108
(N
: Node_Id
; Val
: Boolean) is
6158 pragma Assert
(Nkind
(N
) in N_Entity
);
6161 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag108 := Val;
6164 procedure Set_Flag109 (N : Node_Id; Val : Boolean) is
6166 pragma Assert (Nkind (N) in N_Entity);
6169 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag109
:= Val
;
6172 procedure Set_Flag110
(N
: Node_Id
; Val
: Boolean) is
6174 pragma Assert
(Nkind
(N
) in N_Entity
);
6177 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag110 := Val;
6180 procedure Set_Flag111 (N : Node_Id; Val : Boolean) is
6182 pragma Assert (Nkind (N) in N_Entity);
6185 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag111
:= Val
;
6188 procedure Set_Flag112
(N
: Node_Id
; Val
: Boolean) is
6190 pragma Assert
(Nkind
(N
) in N_Entity
);
6193 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag112 := Val;
6196 procedure Set_Flag113 (N : Node_Id; Val : Boolean) is
6198 pragma Assert (Nkind (N) in N_Entity);
6201 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag113
:= Val
;
6204 procedure Set_Flag114
(N
: Node_Id
; Val
: Boolean) is
6206 pragma Assert
(Nkind
(N
) in N_Entity
);
6209 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag114 := Val;
6212 procedure Set_Flag115 (N : Node_Id; Val : Boolean) is
6214 pragma Assert (Nkind (N) in N_Entity);
6217 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag115
:= Val
;
6220 procedure Set_Flag116
(N
: Node_Id
; Val
: Boolean) is
6222 pragma Assert
(Nkind
(N
) in N_Entity
);
6225 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag116 := Val;
6228 procedure Set_Flag117 (N : Node_Id; Val : Boolean) is
6230 pragma Assert (Nkind (N) in N_Entity);
6233 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag117
:= Val
;
6236 procedure Set_Flag118
(N
: Node_Id
; Val
: Boolean) is
6238 pragma Assert
(Nkind
(N
) in N_Entity
);
6241 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag118 := Val;
6244 procedure Set_Flag119 (N : Node_Id; Val : Boolean) is
6246 pragma Assert (Nkind (N) in N_Entity);
6249 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag119
:= Val
;
6252 procedure Set_Flag120
(N
: Node_Id
; Val
: Boolean) is
6254 pragma Assert
(Nkind
(N
) in N_Entity
);
6257 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag120 := Val;
6260 procedure Set_Flag121 (N : Node_Id; Val : Boolean) is
6262 pragma Assert (Nkind (N) in N_Entity);
6265 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag121
:= Val
;
6268 procedure Set_Flag122
(N
: Node_Id
; Val
: Boolean) is
6270 pragma Assert
(Nkind
(N
) in N_Entity
);
6273 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag122 := Val;
6276 procedure Set_Flag123 (N : Node_Id; Val : Boolean) is
6278 pragma Assert (Nkind (N) in N_Entity);
6281 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag123
:= Val
;
6284 procedure Set_Flag124
(N
: Node_Id
; Val
: Boolean) is
6286 pragma Assert
(Nkind
(N
) in N_Entity
);
6289 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag124 := Val;
6292 procedure Set_Flag125 (N : Node_Id; Val : Boolean) is
6294 pragma Assert (Nkind (N) in N_Entity);
6297 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag125
:= Val
;
6300 procedure Set_Flag126
(N
: Node_Id
; Val
: Boolean) is
6302 pragma Assert
(Nkind
(N
) in N_Entity
);
6305 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag126 := Val;
6308 procedure Set_Flag127 (N : Node_Id; Val : Boolean) is
6310 pragma Assert (Nkind (N) in N_Entity);
6313 (Nodes
.Table
(N
+ 3).Field12
'Unrestricted_Access)).Flag127
:= Val
;
6316 procedure Set_Flag128
(N
: Node_Id
; Val
: Boolean) is
6318 pragma Assert
(Nkind
(N
) in N_Entity
);
6321 (Nodes.Table (N + 3).Field12'Unrestricted_Access)).Flag128 := Val;
6324 procedure Set_Flag129 (N : Node_Id; Val : Boolean) is
6326 pragma Assert (Nkind (N) in N_Entity);
6327 Nodes.Table (N + 3).In_List := Val;
6330 procedure Set_Flag130 (N : Node_Id; Val : Boolean) is
6332 pragma Assert (Nkind (N) in N_Entity);
6333 Nodes.Table (N + 3).Unused_1 := Val;
6336 procedure Set_Flag131 (N : Node_Id; Val : Boolean) is
6338 pragma Assert (Nkind (N) in N_Entity);
6339 Nodes.Table (N + 3).Rewrite_Ins := Val;
6342 procedure Set_Flag132 (N : Node_Id; Val : Boolean) is
6344 pragma Assert (Nkind (N) in N_Entity);
6345 Nodes.Table (N + 3).Analyzed := Val;
6348 procedure Set_Flag133 (N : Node_Id; Val : Boolean) is
6350 pragma Assert (Nkind (N) in N_Entity);
6351 Nodes.Table (N + 3).Comes_From_Source := Val;
6354 procedure Set_Flag134 (N : Node_Id; Val : Boolean) is
6356 pragma Assert (Nkind (N) in N_Entity);
6357 Nodes.Table (N + 3).Error_Posted := Val;
6360 procedure Set_Flag135 (N : Node_Id; Val : Boolean) is
6362 pragma Assert (Nkind (N) in N_Entity);
6363 Nodes.Table (N + 3).Flag4 := Val;
6366 procedure Set_Flag136 (N : Node_Id; Val : Boolean) is
6368 pragma Assert (Nkind (N) in N_Entity);
6369 Nodes.Table (N + 3).Flag5 := Val;
6372 procedure Set_Flag137 (N : Node_Id; Val : Boolean) is
6374 pragma Assert (Nkind (N) in N_Entity);
6375 Nodes.Table (N + 3).Flag6 := Val;
6378 procedure Set_Flag138 (N : Node_Id; Val : Boolean) is
6380 pragma Assert (Nkind (N) in N_Entity);
6381 Nodes.Table (N + 3).Flag7 := Val;
6384 procedure Set_Flag139 (N : Node_Id; Val : Boolean) is
6386 pragma Assert (Nkind (N) in N_Entity);
6387 Nodes.Table (N + 3).Flag8 := Val;
6390 procedure Set_Flag140 (N : Node_Id; Val : Boolean) is
6392 pragma Assert (Nkind (N) in N_Entity);
6393 Nodes.Table (N + 3).Flag9 := Val;
6396 procedure Set_Flag141 (N : Node_Id; Val : Boolean) is
6398 pragma Assert (Nkind (N) in N_Entity);
6399 Nodes.Table (N + 3).Flag10 := Val;
6402 procedure Set_Flag142 (N : Node_Id; Val : Boolean) is
6404 pragma Assert (Nkind (N) in N_Entity);
6405 Nodes.Table (N + 3).Flag11 := Val;
6408 procedure Set_Flag143 (N : Node_Id; Val : Boolean) is
6410 pragma Assert (Nkind (N) in N_Entity);
6411 Nodes.Table (N + 3).Flag12 := Val;
6414 procedure Set_Flag144 (N : Node_Id; Val : Boolean) is
6416 pragma Assert (Nkind (N) in N_Entity);
6417 Nodes.Table (N + 3).Flag13 := Val;
6420 procedure Set_Flag145 (N : Node_Id; Val : Boolean) is
6422 pragma Assert (Nkind (N) in N_Entity);
6423 Nodes.Table (N + 3).Flag14 := Val;
6426 procedure Set_Flag146 (N : Node_Id; Val : Boolean) is
6428 pragma Assert (Nkind (N) in N_Entity);
6429 Nodes.Table (N + 3).Flag15 := Val;
6432 procedure Set_Flag147 (N : Node_Id; Val : Boolean) is
6434 pragma Assert (Nkind (N) in N_Entity);
6435 Nodes.Table (N + 3).Flag16 := Val;
6438 procedure Set_Flag148 (N : Node_Id; Val : Boolean) is
6440 pragma Assert (Nkind (N) in N_Entity);
6441 Nodes.Table (N + 3).Flag17 := Val;
6444 procedure Set_Flag149 (N : Node_Id; Val : Boolean) is
6446 pragma Assert (Nkind (N) in N_Entity);
6447 Nodes.Table (N + 3).Flag18 := Val;
6450 procedure Set_Flag150 (N : Node_Id; Val : Boolean) is
6452 pragma Assert (Nkind (N) in N_Entity);
6453 Nodes.Table (N + 3).Pflag1 := Val;
6456 procedure Set_Flag151 (N : Node_Id; Val : Boolean) is
6458 pragma Assert (Nkind (N) in N_Entity);
6459 Nodes.Table (N + 3).Pflag2 := Val;
6462 procedure Set_Flag152 (N : Node_Id; Val : Boolean) is
6464 pragma Assert (Nkind (N) in N_Entity);
6467 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag152
:= Val
;
6470 procedure Set_Flag153
(N
: Node_Id
; Val
: Boolean) is
6472 pragma Assert
(Nkind
(N
) in N_Entity
);
6475 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag153 := Val;
6478 procedure Set_Flag154 (N : Node_Id; Val : Boolean) is
6480 pragma Assert (Nkind (N) in N_Entity);
6483 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag154
:= Val
;
6486 procedure Set_Flag155
(N
: Node_Id
; Val
: Boolean) is
6488 pragma Assert
(Nkind
(N
) in N_Entity
);
6491 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag155 := Val;
6494 procedure Set_Flag156 (N : Node_Id; Val : Boolean) is
6496 pragma Assert (Nkind (N) in N_Entity);
6499 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag156
:= Val
;
6502 procedure Set_Flag157
(N
: Node_Id
; Val
: Boolean) is
6504 pragma Assert
(Nkind
(N
) in N_Entity
);
6507 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag157 := Val;
6510 procedure Set_Flag158 (N : Node_Id; Val : Boolean) is
6512 pragma Assert (Nkind (N) in N_Entity);
6515 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag158
:= Val
;
6518 procedure Set_Flag159
(N
: Node_Id
; Val
: Boolean) is
6520 pragma Assert
(Nkind
(N
) in N_Entity
);
6523 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag159 := Val;
6526 procedure Set_Flag160 (N : Node_Id; Val : Boolean) is
6528 pragma Assert (Nkind (N) in N_Entity);
6531 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag160
:= Val
;
6534 procedure Set_Flag161
(N
: Node_Id
; Val
: Boolean) is
6536 pragma Assert
(Nkind
(N
) in N_Entity
);
6539 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag161 := Val;
6542 procedure Set_Flag162 (N : Node_Id; Val : Boolean) is
6544 pragma Assert (Nkind (N) in N_Entity);
6547 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag162
:= Val
;
6550 procedure Set_Flag163
(N
: Node_Id
; Val
: Boolean) is
6552 pragma Assert
(Nkind
(N
) in N_Entity
);
6555 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag163 := Val;
6558 procedure Set_Flag164 (N : Node_Id; Val : Boolean) is
6560 pragma Assert (Nkind (N) in N_Entity);
6563 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag164
:= Val
;
6566 procedure Set_Flag165
(N
: Node_Id
; Val
: Boolean) is
6568 pragma Assert
(Nkind
(N
) in N_Entity
);
6571 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag165 := Val;
6574 procedure Set_Flag166 (N : Node_Id; Val : Boolean) is
6576 pragma Assert (Nkind (N) in N_Entity);
6579 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag166
:= Val
;
6582 procedure Set_Flag167
(N
: Node_Id
; Val
: Boolean) is
6584 pragma Assert
(Nkind
(N
) in N_Entity
);
6587 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag167 := Val;
6590 procedure Set_Flag168 (N : Node_Id; Val : Boolean) is
6592 pragma Assert (Nkind (N) in N_Entity);
6595 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag168
:= Val
;
6598 procedure Set_Flag169
(N
: Node_Id
; Val
: Boolean) is
6600 pragma Assert
(Nkind
(N
) in N_Entity
);
6603 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag169 := Val;
6606 procedure Set_Flag170 (N : Node_Id; Val : Boolean) is
6608 pragma Assert (Nkind (N) in N_Entity);
6611 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag170
:= Val
;
6614 procedure Set_Flag171
(N
: Node_Id
; Val
: Boolean) is
6616 pragma Assert
(Nkind
(N
) in N_Entity
);
6619 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag171 := Val;
6622 procedure Set_Flag172 (N : Node_Id; Val : Boolean) is
6624 pragma Assert (Nkind (N) in N_Entity);
6627 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag172
:= Val
;
6630 procedure Set_Flag173
(N
: Node_Id
; Val
: Boolean) is
6632 pragma Assert
(Nkind
(N
) in N_Entity
);
6635 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag173 := Val;
6638 procedure Set_Flag174 (N : Node_Id; Val : Boolean) is
6640 pragma Assert (Nkind (N) in N_Entity);
6643 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag174
:= Val
;
6646 procedure Set_Flag175
(N
: Node_Id
; Val
: Boolean) is
6648 pragma Assert
(Nkind
(N
) in N_Entity
);
6651 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag175 := Val;
6654 procedure Set_Flag176 (N : Node_Id; Val : Boolean) is
6656 pragma Assert (Nkind (N) in N_Entity);
6659 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag176
:= Val
;
6662 procedure Set_Flag177
(N
: Node_Id
; Val
: Boolean) is
6664 pragma Assert
(Nkind
(N
) in N_Entity
);
6667 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag177 := Val;
6670 procedure Set_Flag178 (N : Node_Id; Val : Boolean) is
6672 pragma Assert (Nkind (N) in N_Entity);
6675 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag178
:= Val
;
6678 procedure Set_Flag179
(N
: Node_Id
; Val
: Boolean) is
6680 pragma Assert
(Nkind
(N
) in N_Entity
);
6683 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag179 := Val;
6686 procedure Set_Flag180 (N : Node_Id; Val : Boolean) is
6688 pragma Assert (Nkind (N) in N_Entity);
6691 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag180
:= Val
;
6694 procedure Set_Flag181
(N
: Node_Id
; Val
: Boolean) is
6696 pragma Assert
(Nkind
(N
) in N_Entity
);
6699 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag181 := Val;
6702 procedure Set_Flag182 (N : Node_Id; Val : Boolean) is
6704 pragma Assert (Nkind (N) in N_Entity);
6707 (Nodes
.Table
(N
+ 3).Field11
'Unrestricted_Access)).Flag182
:= Val
;
6710 procedure Set_Flag183
(N
: Node_Id
; Val
: Boolean) is
6712 pragma Assert
(Nkind
(N
) in N_Entity
);
6715 (Nodes.Table (N + 3).Field11'Unrestricted_Access)).Flag183 := Val;
6718 procedure Set_Flag184 (N : Node_Id; Val : Boolean) is
6720 pragma Assert (Nkind (N) in N_Entity);
6723 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag184
:= Val
;
6726 procedure Set_Flag185
(N
: Node_Id
; Val
: Boolean) is
6728 pragma Assert
(Nkind
(N
) in N_Entity
);
6731 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag185 := Val;
6734 procedure Set_Flag186 (N : Node_Id; Val : Boolean) is
6736 pragma Assert (Nkind (N) in N_Entity);
6739 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag186
:= Val
;
6742 procedure Set_Flag187
(N
: Node_Id
; Val
: Boolean) is
6744 pragma Assert
(Nkind
(N
) in N_Entity
);
6747 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag187 := Val;
6750 procedure Set_Flag188 (N : Node_Id; Val : Boolean) is
6752 pragma Assert (Nkind (N) in N_Entity);
6755 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag188
:= Val
;
6758 procedure Set_Flag189
(N
: Node_Id
; Val
: Boolean) is
6760 pragma Assert
(Nkind
(N
) in N_Entity
);
6763 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag189 := Val;
6766 procedure Set_Flag190 (N : Node_Id; Val : Boolean) is
6768 pragma Assert (Nkind (N) in N_Entity);
6771 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag190
:= Val
;
6774 procedure Set_Flag191
(N
: Node_Id
; Val
: Boolean) is
6776 pragma Assert
(Nkind
(N
) in N_Entity
);
6779 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag191 := Val;
6782 procedure Set_Flag192 (N : Node_Id; Val : Boolean) is
6784 pragma Assert (Nkind (N) in N_Entity);
6787 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag192
:= Val
;
6790 procedure Set_Flag193
(N
: Node_Id
; Val
: Boolean) is
6792 pragma Assert
(Nkind
(N
) in N_Entity
);
6795 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag193 := Val;
6798 procedure Set_Flag194 (N : Node_Id; Val : Boolean) is
6800 pragma Assert (Nkind (N) in N_Entity);
6803 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag194
:= Val
;
6806 procedure Set_Flag195
(N
: Node_Id
; Val
: Boolean) is
6808 pragma Assert
(Nkind
(N
) in N_Entity
);
6811 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag195 := Val;
6814 procedure Set_Flag196 (N : Node_Id; Val : Boolean) is
6816 pragma Assert (Nkind (N) in N_Entity);
6819 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag196
:= Val
;
6822 procedure Set_Flag197
(N
: Node_Id
; Val
: Boolean) is
6824 pragma Assert
(Nkind
(N
) in N_Entity
);
6827 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag197 := Val;
6830 procedure Set_Flag198 (N : Node_Id; Val : Boolean) is
6832 pragma Assert (Nkind (N) in N_Entity);
6835 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag198
:= Val
;
6838 procedure Set_Flag199
(N
: Node_Id
; Val
: Boolean) is
6840 pragma Assert
(Nkind
(N
) in N_Entity
);
6843 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag199 := Val;
6846 procedure Set_Flag200 (N : Node_Id; Val : Boolean) is
6848 pragma Assert (Nkind (N) in N_Entity);
6851 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag200
:= Val
;
6854 procedure Set_Flag201
(N
: Node_Id
; Val
: Boolean) is
6856 pragma Assert
(Nkind
(N
) in N_Entity
);
6859 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag201 := Val;
6862 procedure Set_Flag202 (N : Node_Id; Val : Boolean) is
6864 pragma Assert (Nkind (N) in N_Entity);
6867 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag202
:= Val
;
6870 procedure Set_Flag203
(N
: Node_Id
; Val
: Boolean) is
6872 pragma Assert
(Nkind
(N
) in N_Entity
);
6875 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag203 := Val;
6878 procedure Set_Flag204 (N : Node_Id; Val : Boolean) is
6880 pragma Assert (Nkind (N) in N_Entity);
6883 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag204
:= Val
;
6886 procedure Set_Flag205
(N
: Node_Id
; Val
: Boolean) is
6888 pragma Assert
(Nkind
(N
) in N_Entity
);
6891 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag205 := Val;
6894 procedure Set_Flag206 (N : Node_Id; Val : Boolean) is
6896 pragma Assert (Nkind (N) in N_Entity);
6899 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag206
:= Val
;
6902 procedure Set_Flag207
(N
: Node_Id
; Val
: Boolean) is
6904 pragma Assert
(Nkind
(N
) in N_Entity
);
6907 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag207 := Val;
6910 procedure Set_Flag208 (N : Node_Id; Val : Boolean) is
6912 pragma Assert (Nkind (N) in N_Entity);
6915 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag208
:= Val
;
6918 procedure Set_Flag209
(N
: Node_Id
; Val
: Boolean) is
6920 pragma Assert
(Nkind
(N
) in N_Entity
);
6923 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag209 := Val;
6926 procedure Set_Flag210 (N : Node_Id; Val : Boolean) is
6928 pragma Assert (Nkind (N) in N_Entity);
6931 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag210
:= Val
;
6934 procedure Set_Flag211
(N
: Node_Id
; Val
: Boolean) is
6936 pragma Assert
(Nkind
(N
) in N_Entity
);
6939 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag211 := Val;
6942 procedure Set_Flag212 (N : Node_Id; Val : Boolean) is
6944 pragma Assert (Nkind (N) in N_Entity);
6947 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag212
:= Val
;
6950 procedure Set_Flag213
(N
: Node_Id
; Val
: Boolean) is
6952 pragma Assert
(Nkind
(N
) in N_Entity
);
6955 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag213 := Val;
6958 procedure Set_Flag214 (N : Node_Id; Val : Boolean) is
6960 pragma Assert (Nkind (N) in N_Entity);
6963 (Nodes
.Table
(N
+ 4).Field11
'Unrestricted_Access)).Flag214
:= Val
;
6966 procedure Set_Flag215
(N
: Node_Id
; Val
: Boolean) is
6968 pragma Assert
(Nkind
(N
) in N_Entity
);
6971 (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag215 := Val;
6974 procedure Set_Flag216 (N : Node_Id; Val : Boolean) is
6976 pragma Assert (Nkind (N) in N_Entity);
6979 (Nodes
.Table
(N
+ 4).Field12
'Unrestricted_Access)).Flag216
:= Val
;
6982 procedure Set_Flag217
(N
: Node_Id
; Val
: Boolean) is
6984 pragma Assert
(Nkind
(N
) in N_Entity
);
6987 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag217 := Val;
6990 procedure Set_Flag218 (N : Node_Id; Val : Boolean) is
6992 pragma Assert (Nkind (N) in N_Entity);
6995 (Nodes
.Table
(N
+ 4).Field12
'Unrestricted_Access)).Flag218
:= Val
;
6998 procedure Set_Flag219
(N
: Node_Id
; Val
: Boolean) is
7000 pragma Assert
(Nkind
(N
) in N_Entity
);
7003 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag219 := Val;
7006 procedure Set_Flag220 (N : Node_Id; Val : Boolean) is
7008 pragma Assert (Nkind (N) in N_Entity);
7011 (Nodes
.Table
(N
+ 4).Field12
'Unrestricted_Access)).Flag220
:= Val
;
7014 procedure Set_Flag221
(N
: Node_Id
; Val
: Boolean) is
7016 pragma Assert
(Nkind
(N
) in N_Entity
);
7019 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag221 := Val;
7022 procedure Set_Flag222 (N : Node_Id; Val : Boolean) is
7024 pragma Assert (Nkind (N) in N_Entity);
7027 (Nodes
.Table
(N
+ 4).Field12
'Unrestricted_Access)).Flag222
:= Val
;
7030 procedure Set_Flag223
(N
: Node_Id
; Val
: Boolean) is
7032 pragma Assert
(Nkind
(N
) in N_Entity
);
7035 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag223 := Val;
7038 procedure Set_Flag224 (N : Node_Id; Val : Boolean) is
7040 pragma Assert (Nkind (N) in N_Entity);
7043 (Nodes
.Table
(N
+ 4).Field12
'Unrestricted_Access)).Flag224
:= Val
;
7046 procedure Set_Flag225
(N
: Node_Id
; Val
: Boolean) is
7048 pragma Assert
(Nkind
(N
) in N_Entity
);
7051 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag225 := Val;
7054 procedure Set_Flag226 (N : Node_Id; Val : Boolean) is
7056 pragma Assert (Nkind (N) in N_Entity);
7059 (Nodes
.Table
(N
+ 4).Field12
'Unrestricted_Access)).Flag226
:= Val
;
7062 procedure Set_Flag227
(N
: Node_Id
; Val
: Boolean) is
7064 pragma Assert
(Nkind
(N
) in N_Entity
);
7067 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag227 := Val;
7070 procedure Set_Flag228 (N : Node_Id; Val : Boolean) is
7072 pragma Assert (Nkind (N) in N_Entity);
7075 (Nodes
.Table
(N
+ 4).Field12
'Unrestricted_Access)).Flag228
:= Val
;
7078 procedure Set_Flag229
(N
: Node_Id
; Val
: Boolean) is
7080 pragma Assert
(Nkind
(N
) in N_Entity
);
7083 (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag229 := Val;
7086 procedure Set_Flag230 (N : Node_Id; Val : Boolean) is
7088 pragma Assert (Nkind (N) in N_Entity);
7091 (Nodes
.Table
(N
+ 4).Field12
'Unrestricted_Access)).Flag230
:= Val
;
7094 procedure Set_Node1_With_Parent
(N
: Node_Id
; Val
: Node_Id
) is
7096 pragma Assert
(N
<= Nodes
.Last
);
7099 Set_Parent
(Val
, N
);
7103 end Set_Node1_With_Parent
;
7105 procedure Set_Node2_With_Parent
(N
: Node_Id
; Val
: Node_Id
) is
7107 pragma Assert
(N
<= Nodes
.Last
);
7110 Set_Parent
(Val
, N
);
7114 end Set_Node2_With_Parent
;
7116 procedure Set_Node3_With_Parent
(N
: Node_Id
; Val
: Node_Id
) is
7118 pragma Assert
(N
<= Nodes
.Last
);
7121 Set_Parent
(Val
, N
);
7125 end Set_Node3_With_Parent
;
7127 procedure Set_Node4_With_Parent
(N
: Node_Id
; Val
: Node_Id
) is
7129 pragma Assert
(N
<= Nodes
.Last
);
7132 Set_Parent
(Val
, N
);
7136 end Set_Node4_With_Parent
;
7138 procedure Set_Node5_With_Parent
(N
: Node_Id
; Val
: Node_Id
) is
7140 pragma Assert
(N
<= Nodes
.Last
);
7143 Set_Parent
(Val
, N
);
7147 end Set_Node5_With_Parent
;
7149 procedure Set_List1_With_Parent
(N
: Node_Id
; Val
: List_Id
) is
7151 pragma Assert
(N
<= Nodes
.Last
);
7152 if Val
/= No_List
and then Val
/= Error_List
then
7153 Set_Parent
(Val
, N
);
7156 end Set_List1_With_Parent
;
7158 procedure Set_List2_With_Parent
(N
: Node_Id
; Val
: List_Id
) is
7160 pragma Assert
(N
<= Nodes
.Last
);
7161 if Val
/= No_List
and then Val
/= Error_List
then
7162 Set_Parent
(Val
, N
);
7165 end Set_List2_With_Parent
;
7167 procedure Set_List3_With_Parent
(N
: Node_Id
; Val
: List_Id
) is
7169 pragma Assert
(N
<= Nodes
.Last
);
7170 if Val
/= No_List
and then Val
/= Error_List
then
7171 Set_Parent
(Val
, N
);
7174 end Set_List3_With_Parent
;
7176 procedure Set_List4_With_Parent
(N
: Node_Id
; Val
: List_Id
) is
7178 pragma Assert
(N
<= Nodes
.Last
);
7179 if Val
/= No_List
and then Val
/= Error_List
then
7180 Set_Parent
(Val
, N
);
7183 end Set_List4_With_Parent
;
7185 procedure Set_List5_With_Parent
(N
: Node_Id
; Val
: List_Id
) is
7187 pragma Assert
(N
<= Nodes
.Last
);
7188 if Val
/= No_List
and then Val
/= Error_List
then
7189 Set_Parent
(Val
, N
);
7192 end Set_List5_With_Parent
;
7194 end Unchecked_Access
;
7202 Nodes
.Locked
:= False;
7203 Orig_Nodes
.Locked
:= False;