Patchwork [Ada] Add new flags and entities

login
register
mail settings
Submitter Arnaud Charlet
Date Oct. 11, 2010, 7 a.m.
Message ID <20101011070052.GA11145@adacore.com>
Download mbox | patch
Permalink /patch/67381/
State New
Headers show

Comments

Arnaud Charlet - Oct. 11, 2010, 7 a.m.
By reorganizing the use of fields in an extended node, this patch
provides 7 additional flags and one additional node field in
entities, without needing to extend entities beyond the current
five components.

No test is required, since there is no functional change, just a
preparation for future expansion in the compiler.

Tested on x86_64-pc-linux-gnu, committed on trunk

2010-10-11  Robert Dewar  <dewar@adacore.com>

	* einfo.adb, atree.h, atree.ads, atree.adb: Define seven new flags
	Flag248-Flag254.  Define new field Field29.

Patch

Index: einfo.adb
===================================================================
--- einfo.adb	(revision 165256)
+++ einfo.adb	(working copy)
@@ -230,6 +230,8 @@  package body Einfo is
    --    Extra_Formals                   Node28
    --    Underlying_Record_View          Node28
 
+   --    (unused)                        Node29
+
    ---------------------------------------------
    -- Usage of Flags in Defining Entity Nodes --
    ---------------------------------------------
@@ -513,6 +515,14 @@  package body Einfo is
    --    (unused)                        Flag200
    --    (unused)                        Flag232
 
+   --    (unused)                        Flag248
+   --    (unused)                        Flag249
+   --    (unused)                        Flag250
+   --    (unused)                        Flag251
+   --    (unused)                        Flag252
+   --    (unused)                        Flag253
+   --    (unused)                        Flag254
+
    -----------------------
    -- Local subprograms --
    -----------------------
Index: atree.adb
===================================================================
--- atree.adb	(revision 165256)
+++ atree.adb	(working copy)
@@ -154,6 +154,56 @@  package body Atree is
    function To_Flag_Byte_Ptr is new
      Unchecked_Conversion (Node_Kind_Ptr, Flag_Byte_Ptr);
 
+   --  The following declarations are used to store flags 239-246 in the
+   --  Nkind field of the fourth component of an extended (entity) node.
+
+   type Flag_Byte2 is record
+      Flag239 : Boolean;
+      Flag240 : Boolean;
+      Flag241 : Boolean;
+      Flag242 : Boolean;
+      Flag243 : Boolean;
+      Flag244 : Boolean;
+      Flag245 : Boolean;
+      Flag246 : Boolean;
+   end record;
+
+   pragma Pack (Flag_Byte2);
+   for Flag_Byte2'Size use 8;
+
+   type Flag_Byte2_Ptr is access all Flag_Byte2;
+
+   function To_Flag_Byte2 is new
+     Unchecked_Conversion (Node_Kind, Flag_Byte2);
+
+   function To_Flag_Byte2_Ptr is new
+     Unchecked_Conversion (Node_Kind_Ptr, Flag_Byte2_Ptr);
+
+   --  The following declarations are used to store flags 247-254 in the
+   --  Nkind field of the fifth component of an extended (entity) node.
+
+   type Flag_Byte3 is record
+      Flag247 : Boolean;
+      Flag248 : Boolean;
+      Flag249 : Boolean;
+      Flag250 : Boolean;
+      Flag251 : Boolean;
+      Flag252 : Boolean;
+      Flag253 : Boolean;
+      Flag254 : Boolean;
+   end record;
+
+   pragma Pack (Flag_Byte3);
+   for Flag_Byte3'Size use 8;
+
+   type Flag_Byte3_Ptr is access all Flag_Byte3;
+
+   function To_Flag_Byte3 is new
+     Unchecked_Conversion (Node_Kind, Flag_Byte3);
+
+   function To_Flag_Byte3_Ptr is new
+     Unchecked_Conversion (Node_Kind_Ptr, Flag_Byte3_Ptr);
+
    --  The following declarations are used to store flags 73-96 and the
    --  Convention field in the Field12 field of the third component of an
    --  extended (Entity) node.
@@ -309,7 +359,7 @@  package body Atree is
      Unchecked_Conversion (Union_Id_Ptr, Flag_Word3_Ptr);
 
    --  The following declarations are used to store flags 184-215 in the
-   --  Field11 field of the fifth component of an extended (entity) node.
+   --  Field12 field of the fifth component of an extended (entity) node.
 
    type Flag_Word4 is record
       Flag184 : Boolean;
@@ -361,59 +411,6 @@  package body Atree is
    function To_Flag_Word4_Ptr is new
      Unchecked_Conversion (Union_Id_Ptr, Flag_Word4_Ptr);
 
-   --  The following declarations are used to store flags 216-247 in the
-   --  Field12 field of the fifth component of an extended (entity) node.
-
-   type Flag_Word5 is record
-      Flag216 : Boolean;
-      Flag217 : Boolean;
-      Flag218 : Boolean;
-      Flag219 : Boolean;
-      Flag220 : Boolean;
-      Flag221 : Boolean;
-      Flag222 : Boolean;
-      Flag223 : Boolean;
-
-      Flag224 : Boolean;
-      Flag225 : Boolean;
-      Flag226 : Boolean;
-      Flag227 : Boolean;
-      Flag228 : Boolean;
-      Flag229 : Boolean;
-      Flag230 : Boolean;
-      Flag231 : Boolean;
-
-      Flag232 : Boolean;
-      Flag233 : Boolean;
-      Flag234 : Boolean;
-      Flag235 : Boolean;
-      Flag236 : Boolean;
-      Flag237 : Boolean;
-      Flag238 : Boolean;
-      Flag239 : Boolean;
-
-      Flag240 : Boolean;
-      Flag241 : Boolean;
-      Flag242 : Boolean;
-      Flag243 : Boolean;
-      Flag244 : Boolean;
-      Flag245 : Boolean;
-      Flag246 : Boolean;
-      Flag247 : Boolean;
-   end record;
-
-   pragma Pack (Flag_Word5);
-   for Flag_Word5'Size use 32;
-   for Flag_Word5'Alignment use 4;
-
-   type Flag_Word5_Ptr is access all Flag_Word5;
-
-   function To_Flag_Word5 is new
-     Unchecked_Conversion (Union_Id, Flag_Word5);
-
-   function To_Flag_Word5_Ptr is new
-     Unchecked_Conversion (Union_Id_Ptr, Flag_Word5_Ptr);
-
    --------------------------------------------------
    -- Implementation of Tree Substitution Routines --
    --------------------------------------------------
@@ -2141,6 +2138,12 @@  package body Atree is
          return Nodes.Table (N + 4).Field10;
       end Field28;
 
+      function Field29 (N : Node_Id) return Union_Id is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         return Nodes.Table (N + 4).Field11;
+      end Field29;
+
       function Node1 (N : Node_Id) return Node_Id is
       begin
          pragma Assert (N <= Nodes.Last);
@@ -2309,6 +2312,12 @@  package body Atree is
          return Node_Id (Nodes.Table (N + 4).Field10);
       end Node28;
 
+      function Node29 (N : Node_Id) return Node_Id is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         return Node_Id (Nodes.Table (N + 4).Field11);
+      end Node29;
+
       function List1 (N : Node_Id) return List_Id is
       begin
          pragma Assert (N <= Nodes.Last);
@@ -3778,387 +3787,429 @@  package body Atree is
       function Flag184 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag184;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag184;
       end Flag184;
 
       function Flag185 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag185;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag185;
       end Flag185;
 
       function Flag186 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag186;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag186;
       end Flag186;
 
       function Flag187 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag187;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag187;
       end Flag187;
 
       function Flag188 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag188;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag188;
       end Flag188;
 
       function Flag189 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag189;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag189;
       end Flag189;
 
       function Flag190 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag190;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag190;
       end Flag190;
 
       function Flag191 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag191;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag191;
       end Flag191;
 
       function Flag192 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag192;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag192;
       end Flag192;
 
       function Flag193 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag193;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag193;
       end Flag193;
 
       function Flag194 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag194;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag194;
       end Flag194;
 
       function Flag195 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag195;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag195;
       end Flag195;
 
       function Flag196 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag196;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag196;
       end Flag196;
 
       function Flag197 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag197;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag197;
       end Flag197;
 
       function Flag198 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag198;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag198;
       end Flag198;
 
       function Flag199 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag199;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag199;
       end Flag199;
 
       function Flag200 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag200;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag200;
       end Flag200;
 
       function Flag201 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag201;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag201;
       end Flag201;
 
       function Flag202 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag202;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag202;
       end Flag202;
 
       function Flag203 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag203;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag203;
       end Flag203;
 
       function Flag204 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag204;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag204;
       end Flag204;
 
       function Flag205 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag205;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag205;
       end Flag205;
 
       function Flag206 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag206;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag206;
       end Flag206;
 
       function Flag207 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag207;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag207;
       end Flag207;
 
       function Flag208 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag208;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag208;
       end Flag208;
 
       function Flag209 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag209;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag209;
       end Flag209;
 
       function Flag210 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag210;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag210;
       end Flag210;
 
       function Flag211 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag211;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag211;
       end Flag211;
 
       function Flag212 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag212;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag212;
       end Flag212;
 
       function Flag213 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag213;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag213;
       end Flag213;
 
       function Flag214 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag214;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag214;
       end Flag214;
 
       function Flag215 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word4 (Nodes.Table (N + 4).Field11).Flag215;
+         return To_Flag_Word4 (Nodes.Table (N + 4).Field12).Flag215;
       end Flag215;
 
       function Flag216 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag216;
+         return Nodes.Table (N + 4).In_List;
       end Flag216;
 
       function Flag217 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag217;
+         return Nodes.Table (N + 4).Unused_1;
       end Flag217;
 
       function Flag218 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag218;
+         return Nodes.Table (N + 4).Rewrite_Ins;
       end Flag218;
 
       function Flag219 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag219;
+         return Nodes.Table (N + 4).Analyzed;
       end Flag219;
 
       function Flag220 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag220;
+         return Nodes.Table (N + 4).Comes_From_Source;
       end Flag220;
 
       function Flag221 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag221;
+         return Nodes.Table (N + 4).Error_Posted;
       end Flag221;
 
       function Flag222 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag222;
+         return Nodes.Table (N + 4).Flag4;
       end Flag222;
 
       function Flag223 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag223;
+         return Nodes.Table (N + 4).Flag5;
       end Flag223;
 
       function Flag224 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag224;
+         return Nodes.Table (N + 4).Flag6;
       end Flag224;
 
       function Flag225 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag225;
+         return Nodes.Table (N + 4).Flag7;
       end Flag225;
 
       function Flag226 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag226;
+         return Nodes.Table (N + 4).Flag8;
       end Flag226;
 
       function Flag227 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag227;
+         return Nodes.Table (N + 4).Flag9;
       end Flag227;
 
       function Flag228 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag228;
+         return Nodes.Table (N + 4).Flag10;
       end Flag228;
 
       function Flag229 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag229;
+         return Nodes.Table (N + 4).Flag11;
       end Flag229;
 
       function Flag230 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag230;
+         return Nodes.Table (N + 4).Flag12;
       end Flag230;
 
       function Flag231 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag231;
+         return Nodes.Table (N + 4).Flag13;
       end Flag231;
 
       function Flag232 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag232;
+         return Nodes.Table (N + 4).Flag14;
       end Flag232;
 
       function Flag233 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag233;
+         return Nodes.Table (N + 4).Flag15;
       end Flag233;
 
       function Flag234 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag234;
+         return Nodes.Table (N + 4).Flag16;
       end Flag234;
 
       function Flag235 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag235;
+         return Nodes.Table (N + 4).Flag17;
       end Flag235;
 
       function Flag236 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag236;
+         return Nodes.Table (N + 4).Flag18;
       end Flag236;
 
       function Flag237 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag237;
+         return Nodes.Table (N + 4).Pflag1;
       end Flag237;
 
       function Flag238 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag238;
+         return Nodes.Table (N + 4).Pflag2;
       end Flag238;
 
       function Flag239 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag239;
+         return To_Flag_Byte2 (Nodes.Table (N + 3).Nkind).Flag239;
       end Flag239;
 
       function Flag240 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag240;
+         return To_Flag_Byte2 (Nodes.Table (N + 3).Nkind).Flag240;
       end Flag240;
 
       function Flag241 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag241;
+         return To_Flag_Byte2 (Nodes.Table (N + 3).Nkind).Flag241;
       end Flag241;
 
       function Flag242 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag242;
+         return To_Flag_Byte2 (Nodes.Table (N + 3).Nkind).Flag242;
       end Flag242;
 
       function Flag243 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag243;
+         return To_Flag_Byte2 (Nodes.Table (N + 3).Nkind).Flag243;
       end Flag243;
 
       function Flag244 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag244;
+         return To_Flag_Byte2 (Nodes.Table (N + 3).Nkind).Flag244;
       end Flag244;
 
       function Flag245 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag245;
+         return To_Flag_Byte2 (Nodes.Table (N + 3).Nkind).Flag245;
       end Flag245;
 
       function Flag246 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag246;
+         return To_Flag_Byte2 (Nodes.Table (N + 3).Nkind).Flag246;
       end Flag246;
 
       function Flag247 (N : Node_Id) return Boolean is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         return To_Flag_Word5 (Nodes.Table (N + 4).Field12).Flag247;
+         return To_Flag_Byte3 (Nodes.Table (N + 4).Nkind).Flag247;
       end Flag247;
 
+      function Flag248 (N : Node_Id) return Boolean is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         return To_Flag_Byte3 (Nodes.Table (N + 4).Nkind).Flag248;
+      end Flag248;
+
+      function Flag249 (N : Node_Id) return Boolean is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         return To_Flag_Byte3 (Nodes.Table (N + 4).Nkind).Flag249;
+      end Flag249;
+
+      function Flag250 (N : Node_Id) return Boolean is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         return To_Flag_Byte3 (Nodes.Table (N + 4).Nkind).Flag250;
+      end Flag250;
+
+      function Flag251 (N : Node_Id) return Boolean is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         return To_Flag_Byte3 (Nodes.Table (N + 4).Nkind).Flag251;
+      end Flag251;
+
+      function Flag252 (N : Node_Id) return Boolean is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         return To_Flag_Byte3 (Nodes.Table (N + 4).Nkind).Flag252;
+      end Flag252;
+
+      function Flag253 (N : Node_Id) return Boolean is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         return To_Flag_Byte3 (Nodes.Table (N + 4).Nkind).Flag253;
+      end Flag253;
+
+      function Flag254 (N : Node_Id) return Boolean is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         return To_Flag_Byte3 (Nodes.Table (N + 4).Nkind).Flag254;
+      end Flag254;
+
       procedure Set_Nkind (N : Node_Id; Val : Node_Kind) is
       begin
          pragma Assert (N <= Nodes.Last);
@@ -4333,6 +4384,12 @@  package body Atree is
          Nodes.Table (N + 4).Field10 := Val;
       end Set_Field28;
 
+      procedure Set_Field29 (N : Node_Id; Val : Union_Id) is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         Nodes.Table (N + 4).Field11 := Val;
+      end Set_Field29;
+
       procedure Set_Node1 (N : Node_Id; Val : Node_Id) is
       begin
          pragma Assert (N <= Nodes.Last);
@@ -4501,6 +4558,12 @@  package body Atree is
          Nodes.Table (N + 4).Field10 := Union_Id (Val);
       end Set_Node28;
 
+      procedure Set_Node29 (N : Node_Id; Val : Node_Id) is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         Nodes.Table (N + 4).Field11 := Union_Id (Val);
+      end Set_Node29;
+
       procedure Set_List1 (N : Node_Id; Val : List_Id) is
       begin
          pragma Assert (N <= Nodes.Last);
@@ -6020,7 +6083,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag184 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag184 := Val;
       end Set_Flag184;
 
       procedure Set_Flag185 (N : Node_Id; Val : Boolean) is
@@ -6028,7 +6091,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag185 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag185 := Val;
       end Set_Flag185;
 
       procedure Set_Flag186 (N : Node_Id; Val : Boolean) is
@@ -6036,7 +6099,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag186 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag186 := Val;
       end Set_Flag186;
 
       procedure Set_Flag187 (N : Node_Id; Val : Boolean) is
@@ -6044,7 +6107,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag187 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag187 := Val;
       end Set_Flag187;
 
       procedure Set_Flag188 (N : Node_Id; Val : Boolean) is
@@ -6052,7 +6115,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag188 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag188 := Val;
       end Set_Flag188;
 
       procedure Set_Flag189 (N : Node_Id; Val : Boolean) is
@@ -6060,7 +6123,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag189 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag189 := Val;
       end Set_Flag189;
 
       procedure Set_Flag190 (N : Node_Id; Val : Boolean) is
@@ -6068,7 +6131,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag190 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag190 := Val;
       end Set_Flag190;
 
       procedure Set_Flag191 (N : Node_Id; Val : Boolean) is
@@ -6076,7 +6139,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag191 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag191 := Val;
       end Set_Flag191;
 
       procedure Set_Flag192 (N : Node_Id; Val : Boolean) is
@@ -6084,7 +6147,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag192 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag192 := Val;
       end Set_Flag192;
 
       procedure Set_Flag193 (N : Node_Id; Val : Boolean) is
@@ -6092,7 +6155,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag193 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag193 := Val;
       end Set_Flag193;
 
       procedure Set_Flag194 (N : Node_Id; Val : Boolean) is
@@ -6100,7 +6163,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag194 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag194 := Val;
       end Set_Flag194;
 
       procedure Set_Flag195 (N : Node_Id; Val : Boolean) is
@@ -6108,7 +6171,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag195 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag195 := Val;
       end Set_Flag195;
 
       procedure Set_Flag196 (N : Node_Id; Val : Boolean) is
@@ -6116,7 +6179,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag196 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag196 := Val;
       end Set_Flag196;
 
       procedure Set_Flag197 (N : Node_Id; Val : Boolean) is
@@ -6124,7 +6187,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag197 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag197 := Val;
       end Set_Flag197;
 
       procedure Set_Flag198 (N : Node_Id; Val : Boolean) is
@@ -6132,7 +6195,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag198 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag198 := Val;
       end Set_Flag198;
 
       procedure Set_Flag199 (N : Node_Id; Val : Boolean) is
@@ -6140,7 +6203,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag199 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag199 := Val;
       end Set_Flag199;
 
       procedure Set_Flag200 (N : Node_Id; Val : Boolean) is
@@ -6148,7 +6211,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag200 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag200 := Val;
       end Set_Flag200;
 
       procedure Set_Flag201 (N : Node_Id; Val : Boolean) is
@@ -6156,7 +6219,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag201 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag201 := Val;
       end Set_Flag201;
 
       procedure Set_Flag202 (N : Node_Id; Val : Boolean) is
@@ -6164,7 +6227,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag202 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag202 := Val;
       end Set_Flag202;
 
       procedure Set_Flag203 (N : Node_Id; Val : Boolean) is
@@ -6172,7 +6235,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag203 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag203 := Val;
       end Set_Flag203;
 
       procedure Set_Flag204 (N : Node_Id; Val : Boolean) is
@@ -6180,7 +6243,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag204 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag204 := Val;
       end Set_Flag204;
 
       procedure Set_Flag205 (N : Node_Id; Val : Boolean) is
@@ -6188,7 +6251,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag205 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag205 := Val;
       end Set_Flag205;
 
       procedure Set_Flag206 (N : Node_Id; Val : Boolean) is
@@ -6196,7 +6259,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag206 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag206 := Val;
       end Set_Flag206;
 
       procedure Set_Flag207 (N : Node_Id; Val : Boolean) is
@@ -6204,7 +6267,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag207 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag207 := Val;
       end Set_Flag207;
 
       procedure Set_Flag208 (N : Node_Id; Val : Boolean) is
@@ -6212,7 +6275,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag208 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag208 := Val;
       end Set_Flag208;
 
       procedure Set_Flag209 (N : Node_Id; Val : Boolean) is
@@ -6220,7 +6283,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag209 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag209 := Val;
       end Set_Flag209;
 
       procedure Set_Flag210 (N : Node_Id; Val : Boolean) is
@@ -6228,7 +6291,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag210 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag210 := Val;
       end Set_Flag210;
 
       procedure Set_Flag211 (N : Node_Id; Val : Boolean) is
@@ -6236,7 +6299,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag211 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag211 := Val;
       end Set_Flag211;
 
       procedure Set_Flag212 (N : Node_Id; Val : Boolean) is
@@ -6244,7 +6307,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag212 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag212 := Val;
       end Set_Flag212;
 
       procedure Set_Flag213 (N : Node_Id; Val : Boolean) is
@@ -6252,7 +6315,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag213 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag213 := Val;
       end Set_Flag213;
 
       procedure Set_Flag214 (N : Node_Id; Val : Boolean) is
@@ -6260,7 +6323,7 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag214 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag214 := Val;
       end Set_Flag214;
 
       procedure Set_Flag215 (N : Node_Id; Val : Boolean) is
@@ -6268,265 +6331,275 @@  package body Atree is
          pragma Assert (Nkind (N) in N_Entity);
          To_Flag_Word4_Ptr
            (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field11'Unrestricted_Access)).Flag215 := Val;
+             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag215 := Val;
       end Set_Flag215;
 
       procedure Set_Flag216 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag216 := Val;
+         Nodes.Table (N + 4).In_List := Val;
       end Set_Flag216;
 
       procedure Set_Flag217 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag217 := Val;
+         Nodes.Table (N + 4).Unused_1 := Val;
       end Set_Flag217;
 
       procedure Set_Flag218 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag218 := Val;
+         Nodes.Table (N + 4).Rewrite_Ins := Val;
       end Set_Flag218;
 
       procedure Set_Flag219 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag219 := Val;
+         Nodes.Table (N + 4).Analyzed := Val;
       end Set_Flag219;
 
       procedure Set_Flag220 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag220 := Val;
+         Nodes.Table (N + 4).Comes_From_Source := Val;
       end Set_Flag220;
 
       procedure Set_Flag221 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag221 := Val;
+         Nodes.Table (N + 4).Error_Posted := Val;
       end Set_Flag221;
 
       procedure Set_Flag222 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag222 := Val;
+         Nodes.Table (N + 4).Flag4 := Val;
       end Set_Flag222;
 
       procedure Set_Flag223 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag223 := Val;
+         Nodes.Table (N + 4).Flag5 := Val;
       end Set_Flag223;
 
       procedure Set_Flag224 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag224 := Val;
+         Nodes.Table (N + 4).Flag6 := Val;
       end Set_Flag224;
 
       procedure Set_Flag225 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag225 := Val;
+         Nodes.Table (N + 4).Flag7 := Val;
       end Set_Flag225;
 
       procedure Set_Flag226 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag226 := Val;
+         Nodes.Table (N + 4).Flag8 := Val;
       end Set_Flag226;
 
       procedure Set_Flag227 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag227 := Val;
+         Nodes.Table (N + 4).Flag9 := Val;
       end Set_Flag227;
 
       procedure Set_Flag228 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag228 := Val;
+         Nodes.Table (N + 4).Flag10 := Val;
       end Set_Flag228;
 
       procedure Set_Flag229 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag229 := Val;
+         Nodes.Table (N + 4).Flag11 := Val;
       end Set_Flag229;
 
       procedure Set_Flag230 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag230 := Val;
+         Nodes.Table (N + 4).Flag12 := Val;
       end Set_Flag230;
 
       procedure Set_Flag231 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag231 := Val;
+         Nodes.Table (N + 4).Flag13 := Val;
       end Set_Flag231;
 
       procedure Set_Flag232 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag232 := Val;
+         Nodes.Table (N + 4).Flag14 := Val;
       end Set_Flag232;
 
       procedure Set_Flag233 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag233 := Val;
+         Nodes.Table (N + 4).Flag15 := Val;
       end Set_Flag233;
 
       procedure Set_Flag234 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag234 := Val;
+         Nodes.Table (N + 4).Flag16 := Val;
       end Set_Flag234;
 
       procedure Set_Flag235 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag235 := Val;
+         Nodes.Table (N + 4).Flag17 := Val;
       end Set_Flag235;
 
       procedure Set_Flag236 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag236 := Val;
+         Nodes.Table (N + 4).Flag18 := Val;
       end Set_Flag236;
 
       procedure Set_Flag237 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag237 := Val;
+         Nodes.Table (N + 4).Pflag1 := Val;
       end Set_Flag237;
 
       procedure Set_Flag238 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag238 := Val;
+         Nodes.Table (N + 4).Pflag2 := Val;
       end Set_Flag238;
 
       procedure Set_Flag239 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag239 := Val;
+         To_Flag_Byte2_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 3).Nkind'Unrestricted_Access)).Flag239 := Val;
       end Set_Flag239;
 
       procedure Set_Flag240 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag240 := Val;
+         To_Flag_Byte2_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 3).Nkind'Unrestricted_Access)).Flag240 := Val;
       end Set_Flag240;
 
       procedure Set_Flag241 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag241 := Val;
+         To_Flag_Byte2_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 3).Nkind'Unrestricted_Access)).Flag241 := Val;
       end Set_Flag241;
 
       procedure Set_Flag242 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag242 := Val;
+         To_Flag_Byte2_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 3).Nkind'Unrestricted_Access)).Flag242 := Val;
       end Set_Flag242;
 
       procedure Set_Flag243 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag243 := Val;
+         To_Flag_Byte2_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 3).Nkind'Unrestricted_Access)).Flag243 := Val;
       end Set_Flag243;
 
       procedure Set_Flag244 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag244 := Val;
+         To_Flag_Byte2_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 3).Nkind'Unrestricted_Access)).Flag244 := Val;
       end Set_Flag244;
 
       procedure Set_Flag245 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag245 := Val;
+         To_Flag_Byte2_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 3).Nkind'Unrestricted_Access)).Flag245 := Val;
       end Set_Flag245;
 
       procedure Set_Flag246 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag246 := Val;
+         To_Flag_Byte2_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 3).Nkind'Unrestricted_Access)).Flag246 := Val;
       end Set_Flag246;
 
       procedure Set_Flag247 (N : Node_Id; Val : Boolean) is
       begin
          pragma Assert (Nkind (N) in N_Entity);
-         To_Flag_Word5_Ptr
-           (Union_Id_Ptr'
-             (Nodes.Table (N + 4).Field12'Unrestricted_Access)).Flag247 := Val;
+         To_Flag_Byte3_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 4).Nkind'Unrestricted_Access)).Flag247 := Val;
       end Set_Flag247;
 
+      procedure Set_Flag248 (N : Node_Id; Val : Boolean) is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         To_Flag_Byte3_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 4).Nkind'Unrestricted_Access)).Flag248 := Val;
+      end Set_Flag248;
+
+      procedure Set_Flag249 (N : Node_Id; Val : Boolean) is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         To_Flag_Byte3_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 4).Nkind'Unrestricted_Access)).Flag249 := Val;
+      end Set_Flag249;
+
+      procedure Set_Flag250 (N : Node_Id; Val : Boolean) is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         To_Flag_Byte3_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 4).Nkind'Unrestricted_Access)).Flag250 := Val;
+      end Set_Flag250;
+
+      procedure Set_Flag251 (N : Node_Id; Val : Boolean) is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         To_Flag_Byte3_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 4).Nkind'Unrestricted_Access)).Flag251 := Val;
+      end Set_Flag251;
+
+      procedure Set_Flag252 (N : Node_Id; Val : Boolean) is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         To_Flag_Byte3_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 4).Nkind'Unrestricted_Access)).Flag252 := Val;
+      end Set_Flag252;
+
+      procedure Set_Flag253 (N : Node_Id; Val : Boolean) is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         To_Flag_Byte3_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 4).Nkind'Unrestricted_Access)).Flag253 := Val;
+      end Set_Flag253;
+
+      procedure Set_Flag254 (N : Node_Id; Val : Boolean) is
+      begin
+         pragma Assert (Nkind (N) in N_Entity);
+         To_Flag_Byte3_Ptr
+           (Node_Kind_Ptr'
+             (Nodes.Table (N + 4).Nkind'Unrestricted_Access)).Flag254 := Val;
+      end Set_Flag254;
+
       procedure Set_Node1_With_Parent (N : Node_Id; Val : Node_Id) is
       begin
          pragma Assert (N <= Nodes.Last);
Index: atree.ads
===================================================================
--- atree.ads	(revision 165256)
+++ atree.ads	(working copy)
@@ -981,6 +981,9 @@  package Atree is
       function Field28 (N : Node_Id) return Union_Id;
       pragma Inline (Field28);
 
+      function Field29 (N : Node_Id) return Union_Id;
+      pragma Inline (Field29);
+
       function Node1 (N : Node_Id) return Node_Id;
       pragma Inline (Node1);
 
@@ -1065,6 +1068,9 @@  package Atree is
       function Node28 (N : Node_Id) return Node_Id;
       pragma Inline (Node28);
 
+      function Node29 (N : Node_Id) return Node_Id;
+      pragma Inline (Node29);
+
       function List1 (N : Node_Id) return List_Id;
       pragma Inline (List1);
 
@@ -1925,6 +1931,27 @@  package Atree is
       function Flag247 (N : Node_Id) return Boolean;
       pragma Inline (Flag247);
 
+      function Flag248 (N : Node_Id) return Boolean;
+      pragma Inline (Flag248);
+
+      function Flag249 (N : Node_Id) return Boolean;
+      pragma Inline (Flag249);
+
+      function Flag250 (N : Node_Id) return Boolean;
+      pragma Inline (Flag250);
+
+      function Flag251 (N : Node_Id) return Boolean;
+      pragma Inline (Flag251);
+
+      function Flag252 (N : Node_Id) return Boolean;
+      pragma Inline (Flag252);
+
+      function Flag253 (N : Node_Id) return Boolean;
+      pragma Inline (Flag253);
+
+      function Flag254 (N : Node_Id) return Boolean;
+      pragma Inline (Flag254);
+
       --  Procedures to set value of indicated field
 
       procedure Set_Nkind (N : Node_Id; Val : Node_Kind);
@@ -2014,6 +2041,9 @@  package Atree is
       procedure Set_Field28 (N : Node_Id; Val : Union_Id);
       pragma Inline (Set_Field28);
 
+      procedure Set_Field29 (N : Node_Id; Val : Union_Id);
+      pragma Inline (Set_Field29);
+
       procedure Set_Node1 (N : Node_Id; Val : Node_Id);
       pragma Inline (Set_Node1);
 
@@ -2098,6 +2128,9 @@  package Atree is
       procedure Set_Node28 (N : Node_Id; Val : Node_Id);
       pragma Inline (Set_Node28);
 
+      procedure Set_Node29 (N : Node_Id; Val : Node_Id);
+      pragma Inline (Set_Node29);
+
       procedure Set_List1 (N : Node_Id; Val : List_Id);
       pragma Inline (Set_List1);
 
@@ -2953,6 +2986,27 @@  package Atree is
       procedure Set_Flag247 (N : Node_Id; Val : Boolean);
       pragma Inline (Set_Flag247);
 
+      procedure Set_Flag248 (N : Node_Id; Val : Boolean);
+      pragma Inline (Set_Flag248);
+
+      procedure Set_Flag249 (N : Node_Id; Val : Boolean);
+      pragma Inline (Set_Flag249);
+
+      procedure Set_Flag250 (N : Node_Id; Val : Boolean);
+      pragma Inline (Set_Flag250);
+
+      procedure Set_Flag251 (N : Node_Id; Val : Boolean);
+      pragma Inline (Set_Flag251);
+
+      procedure Set_Flag252 (N : Node_Id; Val : Boolean);
+      pragma Inline (Set_Flag252);
+
+      procedure Set_Flag253 (N : Node_Id; Val : Boolean);
+      pragma Inline (Set_Flag253);
+
+      procedure Set_Flag254 (N : Node_Id; Val : Boolean);
+      pragma Inline (Set_Flag254);
+
       --  The following versions of Set_Noden also set the parent
       --  pointer of the referenced node if it is non_Empty
 
@@ -3069,33 +3123,33 @@  package Atree is
          Flag18 : Boolean;
          --  The eighteen flags for a normal node
 
-         --  The above fields are used as follows in components 2-4 of
+         --  The above fields are used as follows in components 2-5 of
          --  an extended node entry. These fields are not currently
          --  used in component 5 (where we still have lots of room!)
 
-         --    In_List            used as  Flag19, Flag40, Flag129
-         --    Unused_1           used as  Flag20, Flag41, Flag130
-         --    Rewrite_Ins        used as  Flag21, Flag42, Flag131
-         --    Analyzed           used as  Flag22, Flag43, Flag132
-         --    Comes_From_Source  used as  Flag23, Flag44, Flag133
-         --    Error_Posted       used as  Flag24, Flag45, Flag134
-         --    Flag4              used as  Flag25, Flag46, Flag135
-         --    Flag5              used as  Flag26, Flag47, Flag136
-         --    Flag6              used as  Flag27, Flag48, Flag137
-         --    Flag7              used as  Flag28, Flag49, Flag138
-         --    Flag8              used as  Flag29, Flag50, Flag139
-         --    Flag9              used as  Flag30, Flag51, Flag140
-         --    Flag10             used as  Flag31, Flag52, Flag141
-         --    Flag11             used as  Flag32, Flag53, Flag142
-         --    Flag12             used as  Flag33, Flag54, Flag143
-         --    Flag13             used as  Flag34, Flag55, Flag144
-         --    Flag14             used as  Flag35, Flag56, Flag145
-         --    Flag15             used as  Flag36, Flag57, Flag146
-         --    Flag16             used as  Flag37, Flag58, Flag147
-         --    Flag17             used as  Flag38, Flag59, Flag148
-         --    Flag18             used as  Flag39, Flag60, Flag149
-         --    Pflag1             used as  Flag61, Flag62, Flag150
-         --    Pflag2             used as  Flag63, Flag64, Flag151
+         --    In_List            used as  Flag19, Flag40, Flag129, Flag216
+         --    Unused_1           used as  Flag20, Flag41, Flag130, Flag217
+         --    Rewrite_Ins        used as  Flag21, Flag42, Flag131, Flag218
+         --    Analyzed           used as  Flag22, Flag43, Flag132, Flag219
+         --    Comes_From_Source  used as  Flag23, Flag44, Flag133, Flag220
+         --    Error_Posted       used as  Flag24, Flag45, Flag134, Flag221
+         --    Flag4              used as  Flag25, Flag46, Flag135, Flag222
+         --    Flag5              used as  Flag26, Flag47, Flag136, Flag223
+         --    Flag6              used as  Flag27, Flag48, Flag137, Flag224
+         --    Flag7              used as  Flag28, Flag49, Flag138, Flag225
+         --    Flag8              used as  Flag29, Flag50, Flag139, Flag226
+         --    Flag9              used as  Flag30, Flag51, Flag140, Flag227
+         --    Flag10             used as  Flag31, Flag52, Flag141, Flag228
+         --    Flag11             used as  Flag32, Flag53, Flag142, Flag229
+         --    Flag12             used as  Flag33, Flag54, Flag143, Flag230
+         --    Flag13             used as  Flag34, Flag55, Flag144, Flag231
+         --    Flag14             used as  Flag35, Flag56, Flag145, Flag232
+         --    Flag15             used as  Flag36, Flag57, Flag146, Flag233
+         --    Flag16             used as  Flag37, Flag58, Flag147, Flag234
+         --    Flag17             used as  Flag38, Flag59, Flag148, Flag235
+         --    Flag18             used as  Flag39, Flag60, Flag149, Flag236
+         --    Pflag1             used as  Flag61, Flag62, Flag150, Flag237
+         --    Pflag2             used as  Flag63, Flag64, Flag151, Flag238
 
          Nkind : Node_Kind;
          --  For a non-extended node, or the initial section of an extended
@@ -3104,7 +3158,8 @@  package Atree is
          --
          --     Second entry: holds the Ekind field of the entity
          --     Third entry:  holds 8 additional flags (Flag65-Flag72)
-         --     Fourth entry: not currently used
+         --     Fourth entry: holds 8 additional flags (Flag239-246)
+         --     Fifth entry:  holds 8 additional flags (Flag247-254)
 
          --  Now finally (on an 32-bit boundary!) comes the variant part
 
@@ -3167,9 +3222,8 @@  package Atree is
             --  above is used to hold additional general fields and flags
             --  as follows:
 
-            --    Field6-10      Holds Field24-Field28
-            --    Field11        Holds Flag184-Flag215
-            --    Field12        Holds Flag216-Flag247
+            --    Field6-11      Holds Field24-Field29
+            --    Field12        Holds Flag184-Flag215
 
          end case;
       end record;
Index: atree.h
===================================================================
--- atree.h	(revision 165256)
+++ atree.h	(working copy)
@@ -6,7 +6,7 @@ 
  *                                                                          *
  *                              C Header File                               *
  *                                                                          *
- *          Copyright (C) 1992-2008, Free Software Foundation, Inc.         *
+ *          Copyright (C) 1992-2010, Free Software Foundation, Inc.         *
  *                                                                          *
  * GNAT is free software;  you can  redistribute it  and/or modify it under *
  * terms of the  GNU General Public License as published  by the Free Soft- *
@@ -215,7 +215,7 @@  struct Flag_Word3
   Boolean      flag183	    :  1;
 };
 
-/* Structure used for extra flags in fifth component overlaying Field11 */
+/* Structure used for extra flags in fifth component overlaying Field12 */
 struct Flag_Word4
 {
   Boolean      flag184	    :  1;
@@ -255,46 +255,6 @@  struct Flag_Word4
   Boolean      flag215	    :  1;
 };
 
-/* Structure used for extra flags in fifth component overlaying Field12 */
-struct Flag_Word5
-{
-  Boolean      flag216	    :  1;
-  Boolean      flag217	    :  1;
-  Boolean      flag218	    :  1;
-  Boolean      flag219	    :  1;
-  Boolean      flag220	    :  1;
-  Boolean      flag221	    :  1;
-  Boolean      flag222	    :  1;
-  Boolean      flag223	    :  1;
-
-  Boolean      flag224	    :  1;
-  Boolean      flag225	    :  1;
-  Boolean      flag226	    :  1;
-  Boolean      flag227	    :  1;
-  Boolean      flag228	    :  1;
-  Boolean      flag229	    :  1;
-  Boolean      flag230	    :  1;
-  Boolean      flag231	    :  1;
-
-  Boolean      flag232	    :  1;
-  Boolean      flag233	    :  1;
-  Boolean      flag234	    :  1;
-  Boolean      flag235	    :  1;
-  Boolean      flag236	    :  1;
-  Boolean      flag237	    :  1;
-  Boolean      flag238	    :  1;
-  Boolean      flag239	    :  1;
-
-  Boolean      flag240      :  1;
-  Boolean      flag241	    :  1;
-  Boolean      flag242	    :  1;
-  Boolean      flag243	    :  1;
-  Boolean      flag244	    :  1;
-  Boolean      flag245	    :  1;
-  Boolean      flag246	    :  1;
-  Boolean      flag247	    :  1;
-};
-
 struct Non_Extended
 {
   Source_Ptr   sloc;
@@ -318,7 +278,6 @@  struct Extended
     {
       Int      field11;
       struct   Flag_Word3 fw3;
-      struct   Flag_Word4 fw4;
     } X;
 
   union
@@ -326,7 +285,7 @@  struct Extended
       Int      field12;
       struct   Flag_Word fw;
       struct   Flag_Word2 fw2;
-      struct   Flag_Word5 fw5;
+      struct   Flag_Word4 fw4;
     } U;
 };
 
@@ -423,6 +382,7 @@  extern Node_Id Current_Error_Node;
 #define Field26(N)    (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field8)
 #define Field27(N)    (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field9)
 #define Field28(N)    (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field10)
+#define Field29(N)    (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field11)
 
 #define Node1(N)      Field1  (N)
 #define Node2(N)      Field2  (N)
@@ -452,6 +412,7 @@  extern Node_Id Current_Error_Node;
 #define Node26(N)     Field26 (N)
 #define Node27(N)     Field27 (N)
 #define Node28(N)     Field28 (N)
+#define Node29(N)     Field29 (N)
 
 #define List1(N)      Field1  (N)
 #define List2(N)      Field2  (N)
@@ -695,68 +656,78 @@  extern Node_Id Current_Error_Node;
 #define Flag182(N)     (Nodes_Ptr[(N) - First_Node_Id + 3].V.EX.X.fw3.flag182)
 #define Flag183(N)     (Nodes_Ptr[(N) - First_Node_Id + 3].V.EX.X.fw3.flag183)
 
-#define Flag184(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag184)
-#define Flag185(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag185)
-#define Flag186(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag186)
-#define Flag187(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag187)
-#define Flag188(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag188)
-#define Flag189(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag189)
-#define Flag190(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag190)
-#define Flag191(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag191)
-#define Flag192(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag192)
-#define Flag193(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag193)
-#define Flag194(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag194)
-#define Flag195(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag195)
-#define Flag196(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag196)
-#define Flag197(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag197)
-#define Flag198(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag198)
-#define Flag199(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag199)
-#define Flag200(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag200)
-#define Flag201(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag201)
-#define Flag202(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag202)
-#define Flag203(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag203)
-#define Flag204(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag204)
-#define Flag205(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag205)
-#define Flag206(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag206)
-#define Flag207(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag207)
-#define Flag208(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag208)
-#define Flag209(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag209)
-#define Flag210(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag210)
-#define Flag211(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag211)
-#define Flag212(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag212)
-#define Flag213(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag213)
-#define Flag214(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag214)
-#define Flag215(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag215)
-
-#define Flag216(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag216)
-#define Flag217(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag217)
-#define Flag218(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag218)
-#define Flag219(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag219)
-#define Flag220(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag220)
-#define Flag221(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag221)
-#define Flag222(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag222)
-#define Flag223(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag223)
-#define Flag224(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag224)
-#define Flag225(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag225)
-#define Flag226(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag226)
-#define Flag227(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag227)
-#define Flag228(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag228)
-#define Flag229(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag229)
-#define Flag230(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag230)
-#define Flag231(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag231)
-#define Flag232(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag232)
-#define Flag233(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag233)
-#define Flag234(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag234)
-#define Flag235(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag235)
-#define Flag236(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag236)
-#define Flag237(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag237)
-#define Flag238(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag238)
-#define Flag239(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag239)
-#define Flag240(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag240)
-#define Flag241(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag241)
-#define Flag242(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag242)
-#define Flag243(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag243)
-#define Flag244(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag244)
-#define Flag245(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag245)
-#define Flag246(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag246)
-#define Flag247(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag247)
+#define Flag184(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag184)
+#define Flag185(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag185)
+#define Flag186(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag186)
+#define Flag187(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag187)
+#define Flag188(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag188)
+#define Flag189(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag189)
+#define Flag190(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag190)
+#define Flag191(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag191)
+#define Flag192(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag192)
+#define Flag193(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag193)
+#define Flag194(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag194)
+#define Flag195(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag195)
+#define Flag196(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag196)
+#define Flag197(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag197)
+#define Flag198(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag198)
+#define Flag199(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag199)
+#define Flag200(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag200)
+#define Flag201(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag201)
+#define Flag202(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag202)
+#define Flag203(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag203)
+#define Flag204(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag204)
+#define Flag205(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag205)
+#define Flag206(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag206)
+#define Flag207(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag207)
+#define Flag208(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag208)
+#define Flag209(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag209)
+#define Flag210(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag210)
+#define Flag211(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag211)
+#define Flag212(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag212)
+#define Flag213(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag213)
+#define Flag214(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag214)
+#define Flag215(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag215)
+
+#define Flag216(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.in_list)
+#define Flag217(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.rewrite_sub)
+#define Flag218(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.rewrite_ins)
+#define Flag219(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.analyzed)
+#define Flag220(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.c_f_s)
+#define Flag221(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.error_posted)
+#define Flag222(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag4)
+#define Flag223(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag5)
+#define Flag224(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag6)
+#define Flag225(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag7)
+#define Flag226(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag8)
+#define Flag227(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag9)
+#define Flag228(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag10)
+#define Flag229(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag11)
+#define Flag230(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag12)
+#define Flag231(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag13)
+#define Flag232(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag14)
+#define Flag233(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag15)
+#define Flag234(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag16)
+#define Flag235(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag17)
+#define Flag236(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag18)
+#define Flag237(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.pflag1)
+#define Flag238(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.pflag2)
+
+#define Flag239(N)     (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag65)
+#define Flag240(N)     (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag66)
+#define Flag241(N)     (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag67)
+#define Flag242(N)     (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag68)
+#define Flag243(N)     (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag69)
+#define Flag244(N)     (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag70)
+#define Flag245(N)     (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag71)
+#define Flag246(N)     (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag72)
+
+#define Flag247(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag65)
+#define Flag248(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag66)
+#define Flag249(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag67)
+#define Flag250(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag68)
+#define Flag251(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag69)
+#define Flag252(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag70)
+#define Flag253(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag71)
+#define Flag254(N)     (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag72)
+