OSDN Git Service

2006-10-31 Robert Dewar <dewar@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / sinfo.adb
index f782b3d..dc53ec0 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2002, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2005, 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- --
@@ -16,8 +16,8 @@
 -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
 -- for  more details.  You should have  received  a copy of the GNU General --
 -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
--- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
--- MA 02111-1307, USA.                                                      --
+-- to  the  Free Software Foundation,  51  Franklin  Street,  Fifth  Floor, --
+-- Boston, MA 02110-1301, USA.                                              --
 --                                                                          --
 -- As a special exception,  if other files  instantiate  generics from this --
 -- unit, or you link  this unit with other files  to produce an executable, --
@@ -117,6 +117,23 @@ package body Sinfo is
       return Node2 (N);
    end Accept_Statement;
 
+   function Access_Definition
+     (N : Node_Id) return Node_Id is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Component_Definition
+        or else NT (N).Nkind = N_Object_Renaming_Declaration);
+      return Node3 (N);
+   end Access_Definition;
+
+   function Access_To_Subprogram_Definition
+     (N : Node_Id) return Node_Id is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Access_Definition);
+      return Node3 (N);
+   end Access_To_Subprogram_Definition;
+
    function Access_Types_To_Process
       (N : Node_Id) return Elist_Id is
    begin
@@ -158,6 +175,15 @@ package body Sinfo is
       return Flag4 (N);
    end Acts_As_Spec;
 
+   function Actual_Designated_Subtype
+     (N : Node_Id) return Node_Id is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Explicit_Dereference
+        or else NT (N).Nkind = N_Free_Statement);
+      return Node2 (N);
+   end Actual_Designated_Subtype;
+
    function Aggregate_Bounds
       (N : Node_Id) return Node_Id is
    begin
@@ -170,10 +196,8 @@ package body Sinfo is
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
-        or else NT (N).Nkind = N_Component_Declaration
-        or else NT (N).Nkind = N_Constrained_Array_Definition
-        or else NT (N).Nkind = N_Object_Declaration
-        or else NT (N).Nkind = N_Unconstrained_Array_Definition);
+        or else NT (N).Nkind = N_Component_Definition
+        or else NT (N).Nkind = N_Object_Declaration);
       return Flag4 (N);
    end Aliased_Present;
 
@@ -189,6 +213,7 @@ package body Sinfo is
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
+        or else NT (N).Nkind = N_Access_Definition
         or else NT (N).Nkind = N_Access_To_Object_Definition);
       return Flag15 (N);
    end All_Present;
@@ -222,7 +247,7 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Object_Declaration
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       return Flag15 (N);
    end Assignment_OK;
 
@@ -297,8 +322,10 @@ package body Sinfo is
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
-        or else NT (N).Nkind = N_Formal_Package_Declaration
-        or else NT (N).Nkind = N_Formal_Subprogram_Declaration);
+        or else NT (N).Nkind = N_Component_Association
+        or else NT (N).Nkind = N_Formal_Abstract_Subprogram_Declaration
+        or else NT (N).Nkind = N_Formal_Concrete_Subprogram_Declaration
+        or else NT (N).Nkind = N_Formal_Package_Declaration);
       return Flag15 (N);
    end Box_Present;
 
@@ -311,21 +338,29 @@ package body Sinfo is
    end By_Ref;
 
    function Char_Literal_Value
-      (N : Node_Id) return Char_Code is
+      (N : Node_Id) return Uint is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Character_Literal);
-      return Char_Code2 (N);
+      return Uint2 (N);
    end Char_Literal_Value;
 
    function Chars
       (N : Node_Id) return Name_Id is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Has_Chars);
+        or else NT (N).Nkind in N_Has_Chars);
       return Name1 (N);
    end Chars;
 
+   function Check_Address_Alignment
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+          or else NT (N).Nkind = N_Attribute_Definition_Clause);
+      return Flag11 (N);
+   end Check_Address_Alignment;
+
    function Choice_Parameter
       (N : Node_Id) return Node_Id is
    begin
@@ -367,6 +402,16 @@ package body Sinfo is
       return List3 (N);
    end Component_Clauses;
 
+   function Component_Definition
+      (N : Node_Id) return Node_Id is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Component_Declaration
+        or else NT (N).Nkind = N_Constrained_Array_Definition
+        or else NT (N).Nkind = N_Unconstrained_Array_Definition);
+      return Node4 (N);
+   end Component_Definition;
+
    function Component_Items
       (N : Node_Id) return List_Id is
    begin
@@ -419,10 +464,19 @@ package body Sinfo is
       return List3 (N);
    end Condition_Actions;
 
+   function Config_Pragmas
+      (N : Node_Id) return List_Id is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Compilation_Unit_Aux);
+      return List4 (N);
+   end Config_Pragmas;
+
    function Constant_Present
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
+        or else NT (N).Nkind = N_Access_Definition
         or else NT (N).Nkind = N_Access_To_Object_Definition
         or else NT (N).Nkind = N_Object_Declaration);
       return Flag17 (N);
@@ -481,6 +535,7 @@ package body Sinfo is
       (N : Node_Id) return Node_Id is
    begin
       pragma Assert (False
+        or else NT (N).Nkind = N_Entry_Declaration
         or else NT (N).Nkind = N_Generic_Package_Declaration
         or else NT (N).Nkind = N_Generic_Subprogram_Declaration
         or else NT (N).Nkind = N_Package_Body_Stub
@@ -494,6 +549,14 @@ package body Sinfo is
       return Node5 (N);
    end Corresponding_Body;
 
+   function Corresponding_Formal_Spec
+      (N : Node_Id) return Node_Id is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Subprogram_Renaming_Declaration);
+      return Node3 (N);
+   end Corresponding_Formal_Spec;
+
    function Corresponding_Generic_Association
       (N : Node_Id) return Node_Id is
    begin
@@ -575,7 +638,8 @@ package body Sinfo is
       (N : Node_Id) return Node_Id is
    begin
       pragma Assert (False
-        or else NT (N).Nkind = N_Formal_Subprogram_Declaration);
+        or else NT (N).Nkind = N_Formal_Abstract_Subprogram_Declaration
+        or else NT (N).Nkind = N_Formal_Concrete_Subprogram_Declaration);
       return Node2 (N);
    end Default_Name;
 
@@ -744,18 +808,6 @@ package body Sinfo is
       return Node5 (N);
    end Discriminant_Type;
 
-   function Do_Access_Check
-      (N : Node_Id) return Boolean is
-   begin
-      pragma Assert (False
-        or else NT (N).Nkind = N_Attribute_Reference
-        or else NT (N).Nkind = N_Explicit_Dereference
-        or else NT (N).Nkind = N_Indexed_Component
-        or else NT (N).Nkind = N_Selected_Component
-        or else NT (N).Nkind = N_Slice);
-      return Flag11 (N);
-   end Do_Access_Check;
-
    function Do_Accessibility_Check
       (N : Node_Id) return Boolean is
    begin
@@ -798,7 +850,7 @@ package body Sinfo is
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Op
+        or else NT (N).Nkind in N_Op
         or else NT (N).Nkind = N_Attribute_Reference
         or else NT (N).Nkind = N_Type_Conversion);
       return Flag17 (N);
@@ -808,7 +860,7 @@ package body Sinfo is
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       return Flag9 (N);
    end Do_Range_Check;
 
@@ -833,14 +885,30 @@ package body Sinfo is
       return Flag13 (N);
    end Do_Tag_Check;
 
+   function Elaborate_All_Desirable
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_With_Clause);
+      return Flag9 (N);
+   end Elaborate_All_Desirable;
+
    function Elaborate_All_Present
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_With_Clause);
-      return Flag15 (N);
+      return Flag14 (N);
    end Elaborate_All_Present;
 
+   function Elaborate_Desirable
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_With_Clause);
+      return Flag11 (N);
+   end Elaborate_Desirable;
+
    function Elaborate_Present
       (N : Node_Id) return Boolean is
    begin
@@ -920,11 +988,20 @@ package body Sinfo is
       (N : Node_Id) return Node_Id is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Has_Entity
+        or else NT (N).Nkind in N_Has_Entity
         or else NT (N).Nkind = N_Freeze_Entity);
       return Node4 (N);
    end Entity;
 
+   function Entity_Or_Associated_Node
+      (N : Node_Id) return Node_Id is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind in N_Has_Entity
+        or else NT (N).Nkind = N_Freeze_Entity);
+      return Node4 (N);
+   end Entity_Or_Associated_Node;
+
    function Entry_Body_Formal_Part
       (N : Node_Id) return Node_Id is
    begin
@@ -978,7 +1055,7 @@ package body Sinfo is
       (N : Node_Id) return Node_Id is
    begin
       pragma Assert (False
-         or else NT (N).Nkind in N_Has_Etype);
+        or else NT (N).Nkind in N_Has_Etype);
       return Node5 (N);
    end Etype;
 
@@ -1006,7 +1083,7 @@ package body Sinfo is
         or else NT (N).Nkind = N_Label
         or else NT (N).Nkind = N_Object_Declaration
         or else NT (N).Nkind = N_Subtype_Declaration);
-      return Flag11 (N);
+      return Flag7 (N);
    end Exception_Junk;
 
    function Expansion_Delayed
@@ -1060,6 +1137,7 @@ package body Sinfo is
         or else NT (N).Nkind = N_Parameter_Specification
         or else NT (N).Nkind = N_Pragma_Argument_Association
         or else NT (N).Nkind = N_Qualified_Expression
+        or else NT (N).Nkind = N_Raise_Statement
         or else NT (N).Nkind = N_Return_Statement
         or else NT (N).Nkind = N_Type_Conversion
         or else NT (N).Nkind = N_Unchecked_Expression
@@ -1161,6 +1239,14 @@ package body Sinfo is
       return Flag4 (N);
    end From_At_Mod;
 
+   function From_Default
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Subprogram_Renaming_Declaration);
+      return Flag6 (N);
+   end From_Default;
+
    function Generic_Associations
       (N : Node_Id) return List_Id is
    begin
@@ -1263,7 +1349,7 @@ package body Sinfo is
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
-         or else NT (N).Nkind in N_Op
+       or else NT (N).Nkind in N_Op
        or else NT (N).Nkind = N_Character_Literal
        or else NT (N).Nkind = N_Expanded_Name
        or else NT (N).Nkind = N_Identifier
@@ -1342,9 +1428,33 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_With_Clause);
-      return Flag17 (N);
+      return Flag16 (N);
    end Implicit_With;
 
+   function Interface_List
+      (N : Node_Id) return List_Id is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Formal_Derived_Type_Definition
+        or else NT (N).Nkind = N_Private_Extension_Declaration
+        or else NT (N).Nkind = N_Protected_Type_Declaration
+        or else NT (N).Nkind = N_Record_Definition
+        or else NT (N).Nkind = N_Single_Protected_Declaration
+        or else NT (N).Nkind = N_Single_Task_Declaration
+        or else NT (N).Nkind = N_Task_Type_Declaration);
+      return List2 (N);
+   end Interface_List;
+
+   function Interface_Present
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Record_Definition);
+      return Flag16 (N);
+   end Interface_Present;
+
    function In_Present
       (N : Node_Id) return Boolean is
    begin
@@ -1409,10 +1519,18 @@ package body Sinfo is
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       return Flag16 (N);
    end Is_Controlling_Actual;
 
+   function Is_In_Discriminant_Check
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Selected_Component);
+      return Flag11 (N);
+   end Is_In_Discriminant_Check;
+
    function Is_Machine_Number
       (N : Node_Id) return Boolean is
    begin
@@ -1421,11 +1539,19 @@ package body Sinfo is
       return Flag11 (N);
    end Is_Machine_Number;
 
+   function Is_Null_Loop
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Loop_Statement);
+      return Flag16 (N);
+   end Is_Null_Loop;
+
    function Is_Overloaded
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       return Flag5 (N);
    end Is_Overloaded;
 
@@ -1449,7 +1575,7 @@ package body Sinfo is
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       return Flag6 (N);
    end Is_Static_Expression;
 
@@ -1535,7 +1661,7 @@ package body Sinfo is
         or else NT (N).Nkind = N_In
         or else NT (N).Nkind = N_Not_In
         or else NT (N).Nkind = N_Or_Else
-          or else NT (N).Nkind in N_Binary_Op);
+        or else NT (N).Nkind in N_Binary_Op);
       return Node2 (N);
    end Left_Opnd;
 
@@ -1552,13 +1678,26 @@ package body Sinfo is
       return Node4 (N);
    end Library_Unit;
 
+   function Limited_View_Installed
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Package_Specification
+        or else NT (N).Nkind = N_With_Clause);
+      return Flag18 (N);
+   end Limited_View_Installed;
+
    function Limited_Present
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Formal_Derived_Type_Definition
         or else NT (N).Nkind = N_Formal_Private_Type_Definition
+        or else NT (N).Nkind = N_Private_Extension_Declaration
         or else NT (N).Nkind = N_Private_Type_Declaration
-        or else NT (N).Nkind = N_Record_Definition);
+        or else NT (N).Nkind = N_Record_Definition
+        or else NT (N).Nkind = N_With_Clause);
       return Flag17 (N);
    end Limited_Present;
 
@@ -1631,10 +1770,34 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Subtype_Indication
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       return Flag8 (N);
    end Must_Not_Freeze;
 
+   function Must_Not_Override
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Entry_Declaration
+        or else NT (N).Nkind = N_Function_Instantiation
+        or else NT (N).Nkind = N_Function_Specification
+        or else NT (N).Nkind = N_Procedure_Instantiation
+        or else NT (N).Nkind = N_Procedure_Specification);
+      return Flag15 (N);
+   end Must_Not_Override;
+
+   function Must_Override
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Entry_Declaration
+        or else NT (N).Nkind = N_Function_Instantiation
+        or else NT (N).Nkind = N_Function_Specification
+        or else NT (N).Nkind = N_Procedure_Instantiation
+        or else NT (N).Nkind = N_Procedure_Specification);
+      return Flag14 (N);
+   end Must_Override;
+
    function Name
       (N : Node_Id) return Node_Id is
    begin
@@ -1723,6 +1886,15 @@ package body Sinfo is
       return Flag7 (N);
    end No_Ctrl_Actions;
 
+   function No_Elaboration_Check
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Function_Call
+        or else NT (N).Nkind = N_Procedure_Call_Statement);
+      return Flag14 (N);
+   end No_Elaboration_Check;
+
    function No_Entities_Ref_In_Spec
       (N : Node_Id) return Boolean is
    begin
@@ -1740,15 +1912,43 @@ package body Sinfo is
       return Flag13 (N);
    end No_Initialization;
 
+   function No_Truncation
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Unchecked_Type_Conversion);
+      return Flag17 (N);
+   end No_Truncation;
+
    function Null_Present
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Component_List
+        or else NT (N).Nkind = N_Procedure_Specification
         or else NT (N).Nkind = N_Record_Definition);
       return Flag13 (N);
    end Null_Present;
 
+   function Null_Exclusion_Present
+      (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Access_Definition
+        or else NT (N).Nkind = N_Access_Function_Definition
+        or else NT (N).Nkind = N_Access_Procedure_Definition
+        or else NT (N).Nkind = N_Access_To_Object_Definition
+        or else NT (N).Nkind = N_Allocator
+        or else NT (N).Nkind = N_Component_Definition
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Discriminant_Specification
+        or else NT (N).Nkind = N_Function_Specification
+        or else NT (N).Nkind = N_Object_Declaration
+        or else NT (N).Nkind = N_Parameter_Specification
+        or else NT (N).Nkind = N_Subtype_Declaration);
+      return Flag11 (N);
+   end Null_Exclusion_Present;
+
    function Null_Record_Present
       (N : Node_Id) return Boolean is
    begin
@@ -1766,14 +1966,6 @@ package body Sinfo is
       return Node4 (N);
    end Object_Definition;
 
-   function OK_For_Stream
-      (N : Node_Id) return Boolean is
-   begin
-      pragma Assert (False
-        or else NT (N).Nkind = N_Attribute_Reference);
-      return Flag4 (N);
-   end OK_For_Stream;
-
    function Original_Discriminant
       (N : Node_Id) return Node_Id is
    begin
@@ -1782,6 +1974,15 @@ package body Sinfo is
       return Node2 (N);
    end Original_Discriminant;
 
+   function Original_Entity
+      (N : Node_Id) return Entity_Id is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Integer_Literal
+        or else NT (N).Nkind = N_Real_Literal);
+      return Node2 (N);
+   end Original_Entity;
+
    function Others_Discrete_Choices
       (N : Node_Id) return List_Id is
    begin
@@ -1956,7 +2157,8 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Compilation_Unit
-        or else NT (N).Nkind = N_Formal_Derived_Type_Definition);
+        or else NT (N).Nkind = N_Formal_Derived_Type_Definition
+        or else NT (N).Nkind = N_With_Clause);
       return Flag15 (N);
    end Private_Present;
 
@@ -1992,15 +2194,17 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Access_Function_Definition
-        or else NT (N).Nkind = N_Access_Procedure_Definition);
-      return Flag15 (N);
+        or else NT (N).Nkind = N_Access_Procedure_Definition
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Record_Definition);
+      return Flag6 (N);
    end Protected_Present;
 
    function Raises_Constraint_Error
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       return Flag7 (N);
    end Raises_Constraint_Error;
 
@@ -2067,6 +2271,15 @@ package body Sinfo is
       return Flag13 (N);
    end Redundant_Use;
 
+   function Result_Definition
+     (N : Node_Id) return Node_Id is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Access_Function_Definition
+        or else NT (N).Nkind = N_Function_Specification);
+      return Node4 (N);
+   end Result_Definition;
+
    function Return_Type
       (N : Node_Id) return Node_Id is
    begin
@@ -2087,7 +2300,7 @@ package body Sinfo is
       (N : Node_Id) return Node_Id is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Op
+        or else NT (N).Nkind in N_Op
         or else NT (N).Nkind = N_And_Then
         or else NT (N).Nkind = N_In
         or else NT (N).Nkind = N_Not_In
@@ -2167,7 +2380,8 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Abstract_Subprogram_Declaration
-        or else NT (N).Nkind = N_Formal_Subprogram_Declaration
+        or else NT (N).Nkind = N_Formal_Abstract_Subprogram_Declaration
+        or else NT (N).Nkind = N_Formal_Concrete_Subprogram_Declaration
         or else NT (N).Nkind = N_Generic_Package_Declaration
         or else NT (N).Nkind = N_Generic_Subprogram_Declaration
         or else NT (N).Nkind = N_Package_Declaration
@@ -2226,12 +2440,10 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Access_To_Object_Definition
-        or else NT (N).Nkind = N_Component_Declaration
-        or else NT (N).Nkind = N_Constrained_Array_Definition
+        or else NT (N).Nkind = N_Component_Definition
         or else NT (N).Nkind = N_Derived_Type_Definition
         or else NT (N).Nkind = N_Private_Extension_Declaration
-        or else NT (N).Nkind = N_Subtype_Declaration
-        or else NT (N).Nkind = N_Unconstrained_Array_Definition);
+        or else NT (N).Nkind = N_Subtype_Declaration);
       return Node5 (N);
    end Subtype_Indication;
 
@@ -2240,10 +2452,8 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Access_Definition
-        or else NT (N).Nkind = N_Access_Function_Definition
         or else NT (N).Nkind = N_Formal_Derived_Type_Definition
         or else NT (N).Nkind = N_Formal_Object_Declaration
-        or else NT (N).Nkind = N_Function_Specification
         or else NT (N).Nkind = N_Object_Renaming_Declaration
         or else NT (N).Nkind = N_Qualified_Expression
         or else NT (N).Nkind = N_Subtype_Indication
@@ -2261,11 +2471,21 @@ package body Sinfo is
       return List2 (N);
    end Subtype_Marks;
 
+   function Synchronized_Present
+     (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Record_Definition);
+      return Flag7 (N);
+   end Synchronized_Present;
+
    function Tagged_Present
       (N : Node_Id) return Boolean is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Formal_Private_Type_Definition
+        or else NT (N).Nkind = N_Incomplete_Type_Declaration
         or else NT (N).Nkind = N_Private_Type_Declaration
         or else NT (N).Nkind = N_Record_Definition
         or else NT (N).Nkind = N_With_Type_Clause);
@@ -2280,14 +2500,6 @@ package body Sinfo is
       return Node2 (N);
    end Target_Type;
 
-   function Task_Body_Procedure
-      (N : Node_Id) return Entity_Id is
-   begin
-      pragma Assert (False
-        or else NT (N).Nkind = N_Task_Type_Declaration);
-      return Node2 (N);
-   end Task_Body_Procedure;
-
    function Task_Definition
       (N : Node_Id) return Node_Id is
    begin
@@ -2297,6 +2509,15 @@ package body Sinfo is
       return Node3 (N);
    end Task_Definition;
 
+   function Task_Present
+     (N : Node_Id) return Boolean is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Record_Definition);
+      return Flag5 (N);
+   end Task_Present;
+
    function Then_Actions
       (N : Node_Id) return List_Id is
    begin
@@ -2492,6 +2713,23 @@ package body Sinfo is
       Set_Node2_With_Parent (N, Val);
    end Set_Accept_Statement;
 
+   procedure Set_Access_Definition
+     (N : Node_Id; Val : Node_Id) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Component_Definition
+        or else NT (N).Nkind = N_Object_Renaming_Declaration);
+      Set_Node3_With_Parent (N, Val);
+   end Set_Access_Definition;
+
+   procedure Set_Access_To_Subprogram_Definition
+     (N : Node_Id; Val : Node_Id) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Access_Definition);
+      Set_Node3_With_Parent (N, Val);
+   end Set_Access_To_Subprogram_Definition;
+
    procedure Set_Access_Types_To_Process
       (N : Node_Id; Val : Elist_Id) is
    begin
@@ -2533,6 +2771,15 @@ package body Sinfo is
       Set_Flag4 (N, Val);
    end Set_Acts_As_Spec;
 
+   procedure Set_Actual_Designated_Subtype
+     (N : Node_Id; Val : Node_Id) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Explicit_Dereference
+        or else NT (N).Nkind = N_Free_Statement);
+      Set_Node2 (N, Val);
+   end Set_Actual_Designated_Subtype;
+
    procedure Set_Aggregate_Bounds
       (N : Node_Id; Val : Node_Id) is
    begin
@@ -2545,10 +2792,8 @@ package body Sinfo is
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
-        or else NT (N).Nkind = N_Component_Declaration
-        or else NT (N).Nkind = N_Constrained_Array_Definition
-        or else NT (N).Nkind = N_Object_Declaration
-        or else NT (N).Nkind = N_Unconstrained_Array_Definition);
+        or else NT (N).Nkind = N_Component_Definition
+        or else NT (N).Nkind = N_Object_Declaration);
       Set_Flag4 (N, Val);
    end Set_Aliased_Present;
 
@@ -2564,6 +2809,7 @@ package body Sinfo is
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
+        or else NT (N).Nkind = N_Access_Definition
         or else NT (N).Nkind = N_Access_To_Object_Definition);
       Set_Flag15 (N, Val);
    end Set_All_Present;
@@ -2597,7 +2843,7 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Object_Declaration
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       Set_Flag15 (N, Val);
    end Set_Assignment_OK;
 
@@ -2672,8 +2918,10 @@ package body Sinfo is
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
-        or else NT (N).Nkind = N_Formal_Package_Declaration
-        or else NT (N).Nkind = N_Formal_Subprogram_Declaration);
+        or else NT (N).Nkind = N_Component_Association
+        or else NT (N).Nkind = N_Formal_Abstract_Subprogram_Declaration
+        or else NT (N).Nkind = N_Formal_Concrete_Subprogram_Declaration
+        or else NT (N).Nkind = N_Formal_Package_Declaration);
       Set_Flag15 (N, Val);
    end Set_Box_Present;
 
@@ -2686,21 +2934,29 @@ package body Sinfo is
    end Set_By_Ref;
 
    procedure Set_Char_Literal_Value
-      (N : Node_Id; Val : Char_Code) is
+      (N : Node_Id; Val : Uint) is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Character_Literal);
-      Set_Char_Code2 (N, Val);
+      Set_Uint2 (N, Val);
    end Set_Char_Literal_Value;
 
    procedure Set_Chars
       (N : Node_Id; Val : Name_Id) is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Has_Chars);
+        or else NT (N).Nkind in N_Has_Chars);
       Set_Name1 (N, Val);
    end Set_Chars;
 
+   procedure Set_Check_Address_Alignment
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+          or else NT (N).Nkind = N_Attribute_Definition_Clause);
+      Set_Flag11 (N, Val);
+   end Set_Check_Address_Alignment;
+
    procedure Set_Choice_Parameter
       (N : Node_Id; Val : Node_Id) is
    begin
@@ -2742,6 +2998,16 @@ package body Sinfo is
       Set_List3_With_Parent (N, Val);
    end Set_Component_Clauses;
 
+   procedure Set_Component_Definition
+      (N : Node_Id; Val : Node_Id) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Component_Declaration
+        or else NT (N).Nkind = N_Constrained_Array_Definition
+        or else NT (N).Nkind = N_Unconstrained_Array_Definition);
+      Set_Node4_With_Parent (N, Val);
+   end Set_Component_Definition;
+
    procedure Set_Component_Items
       (N : Node_Id; Val : List_Id) is
    begin
@@ -2794,10 +3060,19 @@ package body Sinfo is
       Set_List3 (N, Val); -- semantic field, no parent set
    end Set_Condition_Actions;
 
+   procedure Set_Config_Pragmas
+      (N : Node_Id; Val : List_Id) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Compilation_Unit_Aux);
+      Set_List4_With_Parent (N, Val);
+   end Set_Config_Pragmas;
+
    procedure Set_Constant_Present
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
+        or else NT (N).Nkind = N_Access_Definition
         or else NT (N).Nkind = N_Access_To_Object_Definition
         or else NT (N).Nkind = N_Object_Declaration);
       Set_Flag17 (N, Val);
@@ -2856,6 +3131,7 @@ package body Sinfo is
       (N : Node_Id; Val : Node_Id) is
    begin
       pragma Assert (False
+        or else NT (N).Nkind = N_Entry_Declaration
         or else NT (N).Nkind = N_Generic_Package_Declaration
         or else NT (N).Nkind = N_Generic_Subprogram_Declaration
         or else NT (N).Nkind = N_Package_Body_Stub
@@ -2869,6 +3145,14 @@ package body Sinfo is
       Set_Node5 (N, Val); -- semantic field, no parent set
    end Set_Corresponding_Body;
 
+   procedure Set_Corresponding_Formal_Spec
+      (N : Node_Id; Val : Node_Id) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Subprogram_Renaming_Declaration);
+      Set_Node3 (N, Val); -- semantic field, no parent set
+   end Set_Corresponding_Formal_Spec;
+
    procedure Set_Corresponding_Generic_Association
       (N : Node_Id; Val : Node_Id) is
    begin
@@ -2877,6 +3161,7 @@ package body Sinfo is
         or else NT (N).Nkind = N_Object_Renaming_Declaration);
       Set_Node5 (N, Val); -- semantic field, no parent set
    end Set_Corresponding_Generic_Association;
+
    procedure Set_Corresponding_Integer_Value
       (N : Node_Id; Val : Uint) is
    begin
@@ -2949,7 +3234,8 @@ package body Sinfo is
       (N : Node_Id; Val : Node_Id) is
    begin
       pragma Assert (False
-        or else NT (N).Nkind = N_Formal_Subprogram_Declaration);
+        or else NT (N).Nkind = N_Formal_Abstract_Subprogram_Declaration
+        or else NT (N).Nkind = N_Formal_Concrete_Subprogram_Declaration);
       Set_Node2_With_Parent (N, Val);
    end Set_Default_Name;
 
@@ -3118,18 +3404,6 @@ package body Sinfo is
       Set_Node5_With_Parent (N, Val);
    end Set_Discriminant_Type;
 
-   procedure Set_Do_Access_Check
-      (N : Node_Id; Val : Boolean := True) is
-   begin
-      pragma Assert (False
-        or else NT (N).Nkind = N_Attribute_Reference
-        or else NT (N).Nkind = N_Explicit_Dereference
-        or else NT (N).Nkind = N_Indexed_Component
-        or else NT (N).Nkind = N_Selected_Component
-        or else NT (N).Nkind = N_Slice);
-      Set_Flag11 (N, Val);
-   end Set_Do_Access_Check;
-
    procedure Set_Do_Accessibility_Check
       (N : Node_Id; Val : Boolean := True) is
    begin
@@ -3172,7 +3446,7 @@ package body Sinfo is
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Op
+        or else NT (N).Nkind in N_Op
         or else NT (N).Nkind = N_Attribute_Reference
         or else NT (N).Nkind = N_Type_Conversion);
       Set_Flag17 (N, Val);
@@ -3182,7 +3456,7 @@ package body Sinfo is
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       Set_Flag9 (N, Val);
    end Set_Do_Range_Check;
 
@@ -3207,14 +3481,30 @@ package body Sinfo is
       Set_Flag13 (N, Val);
    end Set_Do_Tag_Check;
 
+   procedure Set_Elaborate_All_Desirable
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_With_Clause);
+      Set_Flag9 (N, Val);
+   end Set_Elaborate_All_Desirable;
+
    procedure Set_Elaborate_All_Present
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_With_Clause);
-      Set_Flag15 (N, Val);
+      Set_Flag14 (N, Val);
    end Set_Elaborate_All_Present;
 
+   procedure Set_Elaborate_Desirable
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_With_Clause);
+      Set_Flag11 (N, Val);
+   end Set_Elaborate_Desirable;
+
    procedure Set_Elaborate_Present
       (N : Node_Id; Val : Boolean := True) is
    begin
@@ -3294,7 +3584,7 @@ package body Sinfo is
       (N : Node_Id; Val : Node_Id) is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Has_Entity
+        or else NT (N).Nkind in N_Has_Entity
         or else NT (N).Nkind = N_Freeze_Entity);
       Set_Node4 (N, Val); -- semantic field, no parent set
    end Set_Entity;
@@ -3352,7 +3642,7 @@ package body Sinfo is
       (N : Node_Id; Val : Node_Id) is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Has_Etype);
+        or else NT (N).Nkind in N_Has_Etype);
       Set_Node5 (N, Val); -- semantic field, no parent set
    end Set_Etype;
 
@@ -3380,7 +3670,7 @@ package body Sinfo is
         or else NT (N).Nkind = N_Label
         or else NT (N).Nkind = N_Object_Declaration
         or else NT (N).Nkind = N_Subtype_Declaration);
-      Set_Flag11 (N, Val);
+      Set_Flag7 (N, Val);
    end Set_Exception_Junk;
 
    procedure Set_Expansion_Delayed
@@ -3434,6 +3724,7 @@ package body Sinfo is
         or else NT (N).Nkind = N_Parameter_Specification
         or else NT (N).Nkind = N_Pragma_Argument_Association
         or else NT (N).Nkind = N_Qualified_Expression
+        or else NT (N).Nkind = N_Raise_Statement
         or else NT (N).Nkind = N_Return_Statement
         or else NT (N).Nkind = N_Type_Conversion
         or else NT (N).Nkind = N_Unchecked_Expression
@@ -3535,6 +3826,14 @@ package body Sinfo is
       Set_Flag4 (N, Val);
    end Set_From_At_Mod;
 
+   procedure Set_From_Default
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Subprogram_Renaming_Declaration);
+      Set_Flag6 (N, Val);
+   end Set_From_Default;
+
    procedure Set_Generic_Associations
       (N : Node_Id; Val : List_Id) is
    begin
@@ -3637,7 +3936,7 @@ package body Sinfo is
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
-         or else NT (N).Nkind in N_Op
+       or else NT (N).Nkind in N_Op
        or else NT (N).Nkind = N_Character_Literal
        or else NT (N).Nkind = N_Expanded_Name
        or else NT (N).Nkind = N_Identifier
@@ -3716,9 +4015,33 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_With_Clause);
-      Set_Flag17 (N, Val);
+      Set_Flag16 (N, Val);
    end Set_Implicit_With;
 
+   procedure Set_Interface_List
+      (N : Node_Id; Val : List_Id) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Formal_Derived_Type_Definition
+        or else NT (N).Nkind = N_Private_Extension_Declaration
+        or else NT (N).Nkind = N_Protected_Type_Declaration
+        or else NT (N).Nkind = N_Record_Definition
+        or else NT (N).Nkind = N_Single_Protected_Declaration
+        or else NT (N).Nkind = N_Single_Task_Declaration
+        or else NT (N).Nkind = N_Task_Type_Declaration);
+      Set_List2_With_Parent (N, Val);
+   end Set_Interface_List;
+
+   procedure Set_Interface_Present
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Record_Definition);
+      Set_Flag16 (N, Val);
+   end Set_Interface_Present;
+
    procedure Set_In_Present
       (N : Node_Id; Val : Boolean := True) is
    begin
@@ -3783,10 +4106,18 @@ package body Sinfo is
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       Set_Flag16 (N, Val);
    end Set_Is_Controlling_Actual;
 
+   procedure Set_Is_In_Discriminant_Check
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Selected_Component);
+      Set_Flag11 (N, Val);
+   end Set_Is_In_Discriminant_Check;
+
    procedure Set_Is_Machine_Number
       (N : Node_Id; Val : Boolean := True) is
    begin
@@ -3795,11 +4126,19 @@ package body Sinfo is
       Set_Flag11 (N, Val);
    end Set_Is_Machine_Number;
 
+   procedure Set_Is_Null_Loop
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Loop_Statement);
+      Set_Flag16 (N, Val);
+   end Set_Is_Null_Loop;
+
    procedure Set_Is_Overloaded
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       Set_Flag5 (N, Val);
    end Set_Is_Overloaded;
 
@@ -3823,7 +4162,7 @@ package body Sinfo is
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       Set_Flag6 (N, Val);
    end Set_Is_Static_Expression;
 
@@ -3909,7 +4248,7 @@ package body Sinfo is
         or else NT (N).Nkind = N_In
         or else NT (N).Nkind = N_Not_In
         or else NT (N).Nkind = N_Or_Else
-          or else NT (N).Nkind in N_Binary_Op);
+        or else NT (N).Nkind in N_Binary_Op);
       Set_Node2_With_Parent (N, Val);
    end Set_Left_Opnd;
 
@@ -3926,13 +4265,26 @@ package body Sinfo is
       Set_Node4 (N, Val); -- semantic field, no parent set
    end Set_Library_Unit;
 
+   procedure Set_Limited_View_Installed
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Package_Specification
+        or else NT (N).Nkind = N_With_Clause);
+      Set_Flag18 (N, Val);
+   end Set_Limited_View_Installed;
+
    procedure Set_Limited_Present
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Formal_Derived_Type_Definition
         or else NT (N).Nkind = N_Formal_Private_Type_Definition
+        or else NT (N).Nkind = N_Private_Extension_Declaration
         or else NT (N).Nkind = N_Private_Type_Declaration
-        or else NT (N).Nkind = N_Record_Definition);
+        or else NT (N).Nkind = N_Record_Definition
+        or else NT (N).Nkind = N_With_Clause);
       Set_Flag17 (N, Val);
    end Set_Limited_Present;
 
@@ -4005,10 +4357,34 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Subtype_Indication
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       Set_Flag8 (N, Val);
    end Set_Must_Not_Freeze;
 
+   procedure Set_Must_Not_Override
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Entry_Declaration
+        or else NT (N).Nkind = N_Function_Instantiation
+        or else NT (N).Nkind = N_Function_Specification
+        or else NT (N).Nkind = N_Procedure_Instantiation
+        or else NT (N).Nkind = N_Procedure_Specification);
+      Set_Flag15 (N, Val);
+   end Set_Must_Not_Override;
+
+   procedure Set_Must_Override
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Entry_Declaration
+        or else NT (N).Nkind = N_Function_Instantiation
+        or else NT (N).Nkind = N_Function_Specification
+        or else NT (N).Nkind = N_Procedure_Instantiation
+        or else NT (N).Nkind = N_Procedure_Specification);
+      Set_Flag14 (N, Val);
+   end Set_Must_Override;
+
    procedure Set_Name
       (N : Node_Id; Val : Node_Id) is
    begin
@@ -4097,6 +4473,15 @@ package body Sinfo is
       Set_Flag7 (N, Val);
    end Set_No_Ctrl_Actions;
 
+   procedure Set_No_Elaboration_Check
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Function_Call
+        or else NT (N).Nkind = N_Procedure_Call_Statement);
+      Set_Flag14 (N, Val);
+   end Set_No_Elaboration_Check;
+
    procedure Set_No_Entities_Ref_In_Spec
       (N : Node_Id; Val : Boolean := True) is
    begin
@@ -4114,15 +4499,43 @@ package body Sinfo is
       Set_Flag13 (N, Val);
    end Set_No_Initialization;
 
+   procedure Set_No_Truncation
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Unchecked_Type_Conversion);
+      Set_Flag17 (N, Val);
+   end Set_No_Truncation;
+
    procedure Set_Null_Present
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Component_List
+        or else NT (N).Nkind = N_Procedure_Specification
         or else NT (N).Nkind = N_Record_Definition);
       Set_Flag13 (N, Val);
    end Set_Null_Present;
 
+   procedure Set_Null_Exclusion_Present
+      (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Access_Definition
+        or else NT (N).Nkind = N_Access_Function_Definition
+        or else NT (N).Nkind = N_Access_Procedure_Definition
+        or else NT (N).Nkind = N_Access_To_Object_Definition
+        or else NT (N).Nkind = N_Allocator
+        or else NT (N).Nkind = N_Component_Definition
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Discriminant_Specification
+        or else NT (N).Nkind = N_Function_Specification
+        or else NT (N).Nkind = N_Object_Declaration
+        or else NT (N).Nkind = N_Parameter_Specification
+        or else NT (N).Nkind = N_Subtype_Declaration);
+      Set_Flag11 (N, Val);
+   end Set_Null_Exclusion_Present;
+
    procedure Set_Null_Record_Present
       (N : Node_Id; Val : Boolean := True) is
    begin
@@ -4140,14 +4553,6 @@ package body Sinfo is
       Set_Node4_With_Parent (N, Val);
    end Set_Object_Definition;
 
-   procedure Set_OK_For_Stream
-      (N : Node_Id; Val : Boolean := True) is
-   begin
-      pragma Assert (False
-        or else NT (N).Nkind = N_Attribute_Reference);
-      Set_Flag4 (N, Val);
-   end Set_OK_For_Stream;
-
    procedure Set_Original_Discriminant
       (N : Node_Id; Val : Node_Id) is
    begin
@@ -4156,6 +4561,15 @@ package body Sinfo is
       Set_Node2 (N, Val); -- semantic field, no parent set
    end Set_Original_Discriminant;
 
+   procedure Set_Original_Entity
+      (N : Node_Id; Val : Entity_Id) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Integer_Literal
+        or else NT (N).Nkind = N_Real_Literal);
+      Set_Node2 (N, Val); --  semantic field, no parent set
+   end Set_Original_Entity;
+
    procedure Set_Others_Discrete_Choices
       (N : Node_Id; Val : List_Id) is
    begin
@@ -4330,7 +4744,8 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Compilation_Unit
-        or else NT (N).Nkind = N_Formal_Derived_Type_Definition);
+        or else NT (N).Nkind = N_Formal_Derived_Type_Definition
+        or else NT (N).Nkind = N_With_Clause);
       Set_Flag15 (N, Val);
    end Set_Private_Present;
 
@@ -4366,15 +4781,17 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Access_Function_Definition
-        or else NT (N).Nkind = N_Access_Procedure_Definition);
-      Set_Flag15 (N, Val);
+        or else NT (N).Nkind = N_Access_Procedure_Definition
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Record_Definition);
+      Set_Flag6 (N, Val);
    end Set_Protected_Present;
 
    procedure Set_Raises_Constraint_Error
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Subexpr);
+        or else NT (N).Nkind in N_Subexpr);
       Set_Flag7 (N, Val);
    end Set_Raises_Constraint_Error;
 
@@ -4441,6 +4858,15 @@ package body Sinfo is
       Set_Flag13 (N, Val);
    end Set_Redundant_Use;
 
+   procedure Set_Result_Definition
+     (N : Node_Id; Val : Node_Id) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Access_Function_Definition
+        or else NT (N).Nkind = N_Function_Specification);
+      Set_Node4_With_Parent (N, Val);
+   end Set_Result_Definition;
+
    procedure Set_Return_Type
       (N : Node_Id; Val : Node_Id) is
    begin
@@ -4461,7 +4887,7 @@ package body Sinfo is
       (N : Node_Id; Val : Node_Id) is
    begin
       pragma Assert (False
-          or else NT (N).Nkind in N_Op
+        or else NT (N).Nkind in N_Op
         or else NT (N).Nkind = N_And_Then
         or else NT (N).Nkind = N_In
         or else NT (N).Nkind = N_Not_In
@@ -4541,7 +4967,8 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Abstract_Subprogram_Declaration
-        or else NT (N).Nkind = N_Formal_Subprogram_Declaration
+        or else NT (N).Nkind = N_Formal_Abstract_Subprogram_Declaration
+        or else NT (N).Nkind = N_Formal_Concrete_Subprogram_Declaration
         or else NT (N).Nkind = N_Generic_Package_Declaration
         or else NT (N).Nkind = N_Generic_Subprogram_Declaration
         or else NT (N).Nkind = N_Package_Declaration
@@ -4600,12 +5027,10 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Access_To_Object_Definition
-        or else NT (N).Nkind = N_Component_Declaration
-        or else NT (N).Nkind = N_Constrained_Array_Definition
+        or else NT (N).Nkind = N_Component_Definition
         or else NT (N).Nkind = N_Derived_Type_Definition
         or else NT (N).Nkind = N_Private_Extension_Declaration
-        or else NT (N).Nkind = N_Subtype_Declaration
-        or else NT (N).Nkind = N_Unconstrained_Array_Definition);
+        or else NT (N).Nkind = N_Subtype_Declaration);
       Set_Node5_With_Parent (N, Val);
    end Set_Subtype_Indication;
 
@@ -4614,10 +5039,8 @@ package body Sinfo is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Access_Definition
-        or else NT (N).Nkind = N_Access_Function_Definition
         or else NT (N).Nkind = N_Formal_Derived_Type_Definition
         or else NT (N).Nkind = N_Formal_Object_Declaration
-        or else NT (N).Nkind = N_Function_Specification
         or else NT (N).Nkind = N_Object_Renaming_Declaration
         or else NT (N).Nkind = N_Qualified_Expression
         or else NT (N).Nkind = N_Subtype_Indication
@@ -4635,11 +5058,21 @@ package body Sinfo is
       Set_List2_With_Parent (N, Val);
    end Set_Subtype_Marks;
 
+   procedure Set_Synchronized_Present
+     (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Record_Definition);
+      Set_Flag7 (N, Val);
+   end Set_Synchronized_Present;
+
    procedure Set_Tagged_Present
       (N : Node_Id; Val : Boolean := True) is
    begin
       pragma Assert (False
         or else NT (N).Nkind = N_Formal_Private_Type_Definition
+        or else NT (N).Nkind = N_Incomplete_Type_Declaration
         or else NT (N).Nkind = N_Private_Type_Declaration
         or else NT (N).Nkind = N_Record_Definition
         or else NT (N).Nkind = N_With_Type_Clause);
@@ -4654,14 +5087,6 @@ package body Sinfo is
       Set_Node2 (N, Val); -- semantic field, no parent set
    end Set_Target_Type;
 
-   procedure Set_Task_Body_Procedure
-      (N : Node_Id; Val : Entity_Id) is
-   begin
-      pragma Assert (False
-        or else NT (N).Nkind = N_Task_Type_Declaration);
-      Set_Node2 (N, Val); -- semantic field, no parent set
-   end Set_Task_Body_Procedure;
-
    procedure Set_Task_Definition
       (N : Node_Id; Val : Node_Id) is
    begin
@@ -4671,6 +5096,15 @@ package body Sinfo is
       Set_Node3_With_Parent (N, Val);
    end Set_Task_Definition;
 
+   procedure Set_Task_Present
+     (N : Node_Id; Val : Boolean := True) is
+   begin
+      pragma Assert (False
+        or else NT (N).Nkind = N_Derived_Type_Definition
+        or else NT (N).Nkind = N_Record_Definition);
+      Set_Flag5 (N, Val);
+   end Set_Task_Present;
+
    procedure Set_Then_Actions
       (N : Node_Id; Val : List_Id) is
    begin