/*--------------------------------------------------------------------------*/
/*                                                                          */
/*                         GNAT COMPILER COMPONENTS                         */
/*                                                                          */
/*                                E I N F O                                 */
/*                                                                          */
/*                              C Header File                               */
/*                                                                          */
/*                 Generated by xeinfo revision 1.2 using                  */
/*                         einfo.ads revision 1.7                         */
/*                         einfo.adb revision 1.4                         */
/*                                                                          */
/*          Copyright (C) 1992-2001 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- */
/* ware  Foundation;  either version 2,  or (at your option) any later ver- */
/* sion.  GNAT is distributed in the hope that it will be useful, but WITH- */
/* OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY */
/* 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.                                                      */
/*                                                                          */
/* As a special exception,  if other files  instantiate  generics from this */
/* unit, or you link  this unit with other files  to produce an executable, */
/* this  unit  does not  by itself cause  the resulting  executable  to  be */
/* covered  by the  GNU  General  Public  License.  This exception does not */
/* however invalidate  any other reasons why  the executable file  might be */
/* covered by the  GNU Public License.                                      */
/*                                                                          */
/* GNAT was originally developed  by the GNAT team at  New York University. */
/* Extensive contributions were provided by Ada Core Technologies Inc.      */
/*                                                                          */
/*--------------------------------------------------------------------------*/

   #define E_Void                           0
   #define E_Variable                       1
   #define E_Component                      2
   #define E_Constant                       3
   #define E_Discriminant                   4
   #define E_Loop_Parameter                 5
   #define E_In_Parameter                   6
   #define E_Out_Parameter                  7
   #define E_In_Out_Parameter               8
   #define E_Generic_In_Out_Parameter       9
   #define E_Generic_In_Parameter           10
   #define E_Named_Integer                  11
   #define E_Named_Real                     12
   #define E_Enumeration_Type               13
   #define E_Enumeration_Subtype            14
   #define E_Signed_Integer_Type            15
   #define E_Signed_Integer_Subtype         16
   #define E_Modular_Integer_Type           17
   #define E_Modular_Integer_Subtype        18
   #define E_Ordinary_Fixed_Point_Type      19
   #define E_Ordinary_Fixed_Point_Subtype   20
   #define E_Decimal_Fixed_Point_Type       21
   #define E_Decimal_Fixed_Point_Subtype    22
   #define E_Floating_Point_Type            23
   #define E_Floating_Point_Subtype         24
   #define E_Access_Type                    25
   #define E_Access_Subtype                 26
   #define E_Access_Attribute_Type          27
   #define E_Allocator_Type                 28
   #define E_General_Access_Type            29
   #define E_Access_Subprogram_Type         30
   #define E_Access_Protected_Subprogram_Type 31
   #define E_Anonymous_Access_Type          32
   #define E_Array_Type                     33
   #define E_Array_Subtype                  34
   #define E_String_Type                    35
   #define E_String_Subtype                 36
   #define E_String_Literal_Subtype         37
   #define E_Class_Wide_Type                38
   #define E_Class_Wide_Subtype             39
   #define E_Record_Type                    40
   #define E_Record_Subtype                 41
   #define E_Record_Type_With_Private       42
   #define E_Record_Subtype_With_Private    43
   #define E_Private_Type                   44
   #define E_Private_Subtype                45
   #define E_Limited_Private_Type           46
   #define E_Limited_Private_Subtype        47
   #define E_Incomplete_Type                48
   #define E_Task_Type                      49
   #define E_Task_Subtype                   50
   #define E_Protected_Type                 51
   #define E_Protected_Subtype              52
   #define E_Exception_Type                 53
   #define E_Subprogram_Type                54
   #define E_Enumeration_Literal            55
   #define E_Function                       56
   #define E_Operator                       57
   #define E_Procedure                      58
   #define E_Entry                          59
   #define E_Entry_Family                   60
   #define E_Block                          61
   #define E_Entry_Index_Parameter          62
   #define E_Exception                      63
   #define E_Generic_Function               64
   #define E_Generic_Package                65
   #define E_Generic_Procedure              66
   #define E_Label                          67
   #define E_Loop                           68
   #define E_Package                        69
   #define E_Package_Body                   70
   #define E_Protected_Object               71
   #define E_Protected_Body                 72
   #define E_Task_Body                      73
   #define E_Subprogram_Body                74

   SUBTYPE (Access_Kind, Entity_Kind, 
      E_Access_Type, E_Anonymous_Access_Type)

   SUBTYPE (Array_Kind, Entity_Kind, 
      E_Array_Type, E_String_Literal_Subtype)

   SUBTYPE (Class_Wide_Kind, Entity_Kind, 
      E_Class_Wide_Type, E_Class_Wide_Subtype)

   SUBTYPE (Composite_Kind, Entity_Kind, 
      E_Array_Type, E_Protected_Subtype)

   SUBTYPE (Concurrent_Kind, Entity_Kind, 
      E_Task_Type, E_Protected_Subtype)

   SUBTYPE (Concurrent_Body_Kind, Entity_Kind, 
      E_Protected_Body, E_Task_Body)

   SUBTYPE (Decimal_Fixed_Point_Kind, Entity_Kind, 
      E_Decimal_Fixed_Point_Type, E_Decimal_Fixed_Point_Subtype)

   SUBTYPE (Digits_Kind, Entity_Kind, 
      E_Decimal_Fixed_Point_Type, E_Floating_Point_Subtype)

   SUBTYPE (Discrete_Kind, Entity_Kind, 
      E_Enumeration_Type, E_Modular_Integer_Subtype)

   SUBTYPE (Discrete_Or_Fixed_Point_Kind, Entity_Kind, 
      E_Enumeration_Type, E_Decimal_Fixed_Point_Subtype)

   SUBTYPE (Elementary_Kind, Entity_Kind, 
      E_Enumeration_Type, E_Anonymous_Access_Type)

   SUBTYPE (Enumeration_Kind, Entity_Kind, 
      E_Enumeration_Type, E_Enumeration_Subtype)

   SUBTYPE (Entry_Kind, Entity_Kind, 
      E_Entry, E_Entry_Family)

   SUBTYPE (Fixed_Point_Kind, Entity_Kind, 
      E_Ordinary_Fixed_Point_Type, E_Decimal_Fixed_Point_Subtype)

   SUBTYPE (Float_Kind, Entity_Kind, 
      E_Floating_Point_Type, E_Floating_Point_Subtype)

   SUBTYPE (Formal_Kind, Entity_Kind, 
      E_In_Parameter, E_In_Out_Parameter)

   SUBTYPE (Generic_Unit_Kind, Entity_Kind, 
      E_Generic_Function, E_Generic_Procedure)

   SUBTYPE (Incomplete_Or_Private_Kind, Entity_Kind, 
      E_Record_Type_With_Private, E_Incomplete_Type)

   SUBTYPE (Integer_Kind, Entity_Kind, 
      E_Signed_Integer_Type, E_Modular_Integer_Subtype)

   SUBTYPE (Modular_Integer_Kind, Entity_Kind, 
      E_Modular_Integer_Type, E_Modular_Integer_Subtype)

   SUBTYPE (Named_Kind, Entity_Kind, 
      E_Named_Integer, E_Named_Real)

   SUBTYPE (Numeric_Kind, Entity_Kind, 
      E_Signed_Integer_Type, E_Floating_Point_Subtype)

   SUBTYPE (Object_Kind, Entity_Kind, 
      E_Variable, E_Generic_In_Parameter)

   SUBTYPE (Ordinary_Fixed_Point_Kind, Entity_Kind, 
      E_Ordinary_Fixed_Point_Type, E_Ordinary_Fixed_Point_Subtype)

   SUBTYPE (Overloadable_Kind, Entity_Kind, 
      E_Enumeration_Literal, E_Entry)

   SUBTYPE (Private_Kind, Entity_Kind, 
      E_Record_Type_With_Private, E_Limited_Private_Subtype)

   SUBTYPE (Protected_Kind, Entity_Kind, 
      E_Protected_Type, E_Protected_Subtype)

   SUBTYPE (Real_Kind, Entity_Kind, 
      E_Ordinary_Fixed_Point_Type, E_Floating_Point_Subtype)

   SUBTYPE (Record_Kind, Entity_Kind, 
      E_Class_Wide_Type, E_Record_Subtype_With_Private)

   SUBTYPE (Scalar_Kind, Entity_Kind, 
      E_Enumeration_Type, E_Floating_Point_Subtype)

   SUBTYPE (String_Kind, Entity_Kind, 
      E_String_Type, E_String_Literal_Subtype)

   SUBTYPE (Subprogram_Kind, Entity_Kind, 
      E_Function, E_Procedure)

   SUBTYPE (Signed_Integer_Kind, Entity_Kind, 
      E_Signed_Integer_Type, E_Signed_Integer_Subtype)

   SUBTYPE (Task_Kind, Entity_Kind, 
      E_Task_Type, E_Task_Subtype)

   SUBTYPE (Type_Kind, Entity_Kind, 
      E_Enumeration_Type, E_Subprogram_Type)

   typedef char Component_Alignment_Kind;
      #define Calign_Default           0
      #define Calign_Component_Size    1
      #define Calign_Component_Size_4  2
      #define Calign_Storage_Unit      3

   typedef Boolean B;
   typedef Component_Alignment_Kind C;
   typedef Entity_Id E;
   typedef Mechanism_Type M;
   typedef Node_Id N;
   typedef Uint U;
   typedef Ureal R;
   typedef Elist_Id L;
   typedef List_Id S;

   INLINE L Accept_Address                     (E Id);
   INLINE E Access_Disp_Table                  (E Id);
   INLINE E Actual_Subtype                     (E Id);
   INLINE B Address_Taken                      (E Id);
   INLINE E Alias                              (E Id);
   INLINE U Alignment                          (E Id);
   INLINE E Associated_Final_Chain             (E Id);
   INLINE E Associated_Formal_Package          (E Id);
   INLINE N Associated_Node_For_Itype          (E Id);
   INLINE E Associated_Storage_Pool            (E Id);
   INLINE N Barrier_Function                   (E Id);
   INLINE N Block_Node                         (E Id);
   INLINE E Body_Entity                        (E Id);
   INLINE E CR_Discriminant                    (E Id);
   INLINE B C_Pass_By_Copy                     (E Id);
   INLINE E Class_Wide_Type                    (E Id);
   INLINE E Cloned_Subtype                     (E Id);

   #define Component_Alignment einfo__component_alignment
   C Component_Alignment                (E Id);

   INLINE N Component_Clause                   (E Id);
   INLINE U Component_Bit_Offset               (E Id);
   INLINE U Component_Size                     (E Id);
   INLINE E Component_Type                     (E Id);
   INLINE E Corresponding_Concurrent_Type      (E Id);
   INLINE E Corresponding_Discriminant         (E Id);
   INLINE E Corresponding_Equality             (E Id);
   INLINE E Corresponding_Record_Type          (E Id);
   INLINE E Corresponding_Remote_Type          (E Id);
   INLINE B Debug_Info_Off                     (E Id);
   INLINE E Debug_Renaming_Link                (E Id);
   INLINE E DTC_Entity                         (E Id);
   INLINE U DT_Entry_Count                     (E Id);
   INLINE U DT_Position                        (E Id);
   INLINE E Default_Expr_Function              (E Id);
   INLINE B Default_Expressions_Processed      (E Id);
   INLINE N Default_Value                      (E Id);
   INLINE B Delay_Cleanups                     (E Id);
   INLINE B Delay_Subprogram_Descriptors       (E Id);
   INLINE R Delta_Value                        (E Id);
   INLINE L Dependent_Instances                (E Id);
   INLINE B Depends_On_Private                 (E Id);
   INLINE U Digits_Value                       (E Id);
   INLINE E Directly_Designated_Type           (E Id);
   INLINE B Discard_Names                      (E Id);
   INLINE E Discriminal                        (E Id);
   INLINE E Discriminal_Link                   (E Id);
   INLINE E Discriminant_Checking_Func         (E Id);
   INLINE L Discriminant_Constraint            (E Id);
   INLINE N Discriminant_Default_Value         (E Id);
   INLINE U Discriminant_Number                (E Id);
   INLINE B Elaborate_All_Desirable            (E Id);
   INLINE E Elaboration_Entity                 (E Id);
   INLINE B Elaboration_Entity_Required        (E Id);
   INLINE E Enclosing_Scope                    (E Id);
   INLINE B Entry_Accepted                     (E Id);
   INLINE E Entry_Bodies_Array                 (E Id);
   INLINE E Entry_Cancel_Parameter             (E Id);
   INLINE E Entry_Component                    (E Id);
   INLINE E Entry_Formal                       (E Id);
   INLINE E Entry_Index_Constant               (E Id);
   INLINE E Entry_Index_Type                   (E Id);
   INLINE E Entry_Parameters_Type              (E Id);
   INLINE E Enum_Pos_To_Rep                    (E Id);
   INLINE U Enumeration_Pos                    (E Id);
   INLINE U Enumeration_Rep                    (E Id);
   INLINE N Enumeration_Rep_Expr               (E Id);
   INLINE E Equivalent_Type                    (E Id);
   INLINE U Esize                              (E Id);
   INLINE U Exception_Code                     (E Id);
   INLINE E Extra_Accessibility                (E Id);
   INLINE E Extra_Constrained                  (E Id);
   INLINE E Extra_Formal                       (E Id);
   INLINE E Finalization_Chain_Entity          (E Id);

   #define Finalize_Storage_Only einfo__finalize_storage_only
   B Finalize_Storage_Only              (E Id);

   INLINE E First_Entity                       (E Id);
   INLINE N First_Index                        (E Id);
   INLINE E First_Literal                      (E Id);
   INLINE E First_Optional_Parameter           (E Id);
   INLINE E First_Private_Entity               (E Id);
   INLINE N First_Rep_Item                     (E Id);
   INLINE N Freeze_Node                        (E Id);
   INLINE B From_With_Type                     (E Id);
   INLINE E Full_View                          (E Id);
   INLINE B Function_Returns_With_DSP          (E Id);
   INLINE L Generic_Renamings                  (E Id);
   INLINE L Girder_Constraint                  (E Id);
   INLINE S Handler_Records                    (E Id);
   INLINE B Has_Aliased_Components             (E Id);
   INLINE B Has_Alignment_Clause               (E Id);
   INLINE B Has_All_Calls_Remote               (E Id);
   INLINE B Has_Atomic_Components              (E Id);
   INLINE B Has_Biased_Representation          (E Id);
   INLINE B Has_Completion                     (E Id);
   INLINE B Has_Completion_In_Body             (E Id);
   INLINE B Has_Complex_Representation         (E Id);
   INLINE B Has_Component_Size_Clause          (E Id);
   INLINE B Has_Controlled_Component           (E Id);
   INLINE B Has_Controlling_Result             (E Id);
   INLINE B Has_Convention_Pragma              (E Id);
   INLINE B Has_Delayed_Freeze                 (E Id);
   INLINE B Has_Discriminants                  (E Id);
   INLINE B Has_Enumeration_Rep_Clause         (E Id);
   INLINE B Has_Exit                           (E Id);
   INLINE B Has_External_Tag_Rep_Clause        (E Id);
   INLINE B Has_Fully_Qualified_Name           (E Id);
   INLINE B Has_Gigi_Rep_Item                  (E Id);
   INLINE B Has_Homonym                        (E Id);

   #define Has_Interrupt_Handler einfo__has_interrupt_handler
   B Has_Interrupt_Handler              (E Id);

   INLINE B Has_Machine_Radix_Clause           (E Id);
   INLINE B Has_Master_Entity                  (E Id);
   INLINE B Has_Missing_Return                 (E Id);
   INLINE B Has_Nested_Block_With_Handler      (E Id);
   INLINE B Has_Forward_Instantiation          (E Id);
   INLINE B Has_Non_Standard_Rep               (E Id);
   INLINE B Has_Object_Size_Clause             (E Id);
   INLINE B Has_Per_Object_Constraint          (E Id);
   INLINE B Has_Pragma_Controlled              (E Id);
   INLINE B Has_Pragma_Elaborate_Body          (E Id);
   INLINE B Has_Pragma_Inline                  (E Id);
   INLINE B Has_Pragma_Pack                    (E Id);
   INLINE B Has_Pragma_Pure_Function           (E Id);
   INLINE B Has_Primitive_Operations           (E Id);
   INLINE B Has_Qualified_Name                 (E Id);
   INLINE B Has_Record_Rep_Clause              (E Id);
   INLINE B Has_Recursive_Call                 (E Id);
   INLINE B Has_Size_Clause                    (E Id);
   INLINE B Has_Small_Clause                   (E Id);
   INLINE B Has_Specified_Layout               (E Id);
   INLINE B Has_Storage_Size_Clause            (E Id);
   INLINE B Has_Subprogram_Descriptor          (E Id);
   INLINE B Has_Task                           (E Id);
   INLINE B Has_Unchecked_Union                (E Id);
   INLINE B Has_Unknown_Discriminants          (E Id);
   INLINE B Has_Volatile_Components            (E Id);
   INLINE E Homonym                            (E Id);
   INLINE E Hiding_Loop_Variable               (E Id);
   INLINE B In_Package_Body                    (E Id);
   INLINE B In_Private_Part                    (E Id);
   INLINE B In_Use                             (E Id);
   INLINE L Inner_Instances                    (E Id);
   INLINE N Interface_Name                     (E Id);
   INLINE B Is_AST_Entry                       (E Id);
   INLINE B Is_Abstract                        (E Id);
   INLINE B Is_Access_Constant                 (E Id);
   INLINE B Is_Aliased                         (E Id);
   INLINE B Is_Asynchronous                    (E Id);
   INLINE B Is_Atomic                          (E Id);
   INLINE B Is_Bit_Packed_Array                (E Id);
   INLINE B Is_CPP_Class                       (E Id);
   INLINE B Is_Called                          (E Id);
   INLINE B Is_Character_Type                  (E Id);
   INLINE B Is_Child_Unit                      (E Id);
   INLINE B Is_Compilation_Unit                (E Id);
   INLINE B Is_Completely_Hidden               (E Id);
   INLINE B Is_Constr_Subt_For_UN_Aliased      (E Id);
   INLINE B Is_Constr_Subt_For_U_Nominal       (E Id);
   INLINE B Is_Constrained                     (E Id);
   INLINE B Is_Constructor                     (E Id);
   INLINE B Is_Controlled                      (E Id);
   INLINE B Is_Controlling_Formal              (E Id);
   INLINE B Is_Destructor                      (E Id);
   INLINE B Is_Discrim_SO_Function             (E Id);
   INLINE B Is_Dispatching_Operation           (E Id);
   INLINE B Is_Eliminated                      (E Id);
   INLINE B Is_Entry_Formal                    (E Id);
   INLINE B Is_Exported                        (E Id);
   INLINE B Is_First_Subtype                   (E Id);
   INLINE B Is_For_Access_Subtype              (E Id);
   INLINE B Is_Frozen                          (E Id);
   INLINE B Is_Generic_Instance                (E Id);
   INLINE B Is_Hidden                          (E Id);
   INLINE B Is_Hidden_Open_Scope               (E Id);
   INLINE B Is_Immediately_Visible             (E Id);
   INLINE B Is_Imported                        (E Id);
   INLINE B Is_Inlined                         (E Id);
   INLINE B Is_Instantiated                    (E Id);
   INLINE B Is_Internal                        (E Id);
   INLINE B Is_Interrupt_Handler               (E Id);
   INLINE B Is_Intrinsic_Subprogram            (E Id);
   INLINE B Is_Itype                           (E Id);
   INLINE B Is_Known_Valid                     (E Id);
   INLINE B Is_Limited_Composite               (E Id);
   INLINE B Is_Machine_Code_Subprogram         (E Id);
   INLINE B Is_Non_Static_Subtype              (E Id);
   INLINE B Is_Null_Init_Proc                  (E Id);
   INLINE B Is_Optional_Parameter              (E Id);
   INLINE B Is_Package_Body_Entity             (E Id);
   INLINE B Is_Packed                          (E Id);
   INLINE B Is_Packed_Array_Type               (E Id);
   INLINE B Is_Potentially_Use_Visible         (E Id);
   INLINE B Is_Preelaborated                   (E Id);
   INLINE B Is_Private_Composite               (E Id);
   INLINE B Is_Private_Descendant              (E Id);
   INLINE B Is_Psected                         (E Id);
   INLINE B Is_Public                          (E Id);
   INLINE B Is_Pure                            (E Id);
   INLINE B Is_Remote_Call_Interface           (E Id);
   INLINE B Is_Remote_Types                    (E Id);
   INLINE B Is_Renaming_Of_Object              (E Id);
   INLINE B Is_Shared_Passive                  (E Id);
   INLINE B Is_Statically_Allocated            (E Id);
   INLINE B Is_Tag                             (E Id);
   INLINE B Is_Tagged_Type                     (E Id);
   INLINE B Is_True_Constant                   (E Id);
   INLINE B Is_Unchecked_Union                 (E Id);
   INLINE B Is_Unsigned_Type                   (E Id);
   INLINE B Is_VMS_Exception                   (E Id);
   INLINE B Is_Valued_Procedure                (E Id);
   INLINE B Is_Visible_Child_Unit              (E Id);
   INLINE B Is_Volatile                        (E Id);

   #define Is_Wrapper_Package einfo__is_wrapper_package
   B Is_Wrapper_Package                 (E Id);

   INLINE E Last_Entity                        (E Id);
   INLINE E Lit_Indexes                        (E Id);
   INLINE E Lit_Strings                        (E Id);
   INLINE B Machine_Radix_10                   (E Id);
   INLINE E Master_Id                          (E Id);
   INLINE B Materialize_Entity                 (E Id);
   INLINE M Mechanism                          (E Id);
   INLINE U Modulus                            (E Id);
   INLINE B Needs_Debug_Info                   (E Id);
   INLINE B Needs_No_Actuals                   (E Id);
   INLINE E Next_Inlined_Subprogram            (E Id);
   INLINE B No_Pool_Assigned                   (E Id);
   INLINE B No_Return                          (E Id);
   INLINE B Non_Binary_Modulus                 (E Id);
   INLINE B Nonzero_Is_True                    (E Id);
   INLINE U Normalized_First_Bit               (E Id);
   INLINE U Normalized_Position                (E Id);
   INLINE U Normalized_Position_Max            (E Id);
   INLINE B Not_Source_Assigned                (E Id);
   INLINE E Object_Ref                         (E Id);
   INLINE E Original_Record_Component          (E Id);
   INLINE E Packed_Array_Type                  (E Id);
   INLINE E Parent_Subtype                     (E Id);
   INLINE L Primitive_Operations               (E Id);
   INLINE E Prival                             (E Id);
   INLINE L Privals_Chain                      (E Id);
   INLINE L Private_Dependents                 (E Id);
   INLINE N Private_View                       (E Id);
   INLINE E Protected_Body_Subprogram          (E Id);
   INLINE E Protected_Formal                   (E Id);
   INLINE E Protected_Operation                (E Id);
   INLINE U RM_Size                            (E Id);
   INLINE B Reachable                          (E Id);
   INLINE B Referenced                         (E Id);
   INLINE N Referenced_Object                  (E Id);
   INLINE N Register_Exception_Call            (E Id);
   INLINE E Related_Array_Object               (E Id);
   INLINE E Related_Instance                   (E Id);
   INLINE N Renamed_Entity                     (E Id);
   INLINE N Renamed_Object                     (E Id);
   INLINE U Renaming_Map                       (E Id);
   INLINE B Return_Present                     (E Id);
   INLINE B Returns_By_Ref                     (E Id);
   INLINE B Reverse_Bit_Order                  (E Id);
   INLINE N Scalar_Range                       (E Id);
   INLINE U Scale_Value                        (E Id);
   INLINE U Scope_Depth_Value                  (E Id);
   INLINE B Sec_Stack_Needed_For_Return        (E Id);
   INLINE S Shadow_Entities                    (E Id);
   INLINE E Shared_Var_Assign_Proc             (E Id);
   INLINE E Shared_Var_Read_Proc               (E Id);
   INLINE N Size_Check_Code                    (E Id);
   INLINE B Size_Known_At_Compile_Time         (E Id);
   INLINE B Size_Depends_On_Discriminant       (E Id);
   INLINE R Small_Value                        (E Id);
   INLINE E Spec_Entity                        (E Id);
   INLINE E Storage_Size_Variable              (E Id);
   INLINE B Strict_Alignment                   (E Id);
   INLINE U String_Literal_Length              (E Id);
   INLINE N String_Literal_Low_Bound           (E Id);
   INLINE B Suppress_Access_Checks             (E Id);
   INLINE B Suppress_Accessibility_Checks      (E Id);
   INLINE B Suppress_Discriminant_Checks       (E Id);
   INLINE B Suppress_Division_Checks           (E Id);
   INLINE B Suppress_Elaboration_Checks        (E Id);
   INLINE B Suppress_Elaboration_Warnings      (E Id);
   INLINE B Suppress_Index_Checks              (E Id);
   INLINE B Suppress_Init_Proc                 (E Id);
   INLINE B Suppress_Length_Checks             (E Id);
   INLINE B Suppress_Overflow_Checks           (E Id);
   INLINE B Suppress_Range_Checks              (E Id);
   INLINE B Suppress_Storage_Checks            (E Id);
   INLINE B Suppress_Style_Checks              (E Id);
   INLINE B Suppress_Tag_Checks                (E Id);
   INLINE E Underlying_Full_View               (E Id);
   INLINE N Unset_Reference                    (E Id);
   INLINE B Uses_Sec_Stack                     (E Id);
   INLINE B Vax_Float                          (E Id);
   INLINE B Warnings_Off                       (E Id);
   INLINE B Is_Access_Type                     (E Id);
   INLINE B Is_Array_Type                      (E Id);
   INLINE B Is_Class_Wide_Type                 (E Id);
   INLINE B Is_Composite_Type                  (E Id);
   INLINE B Is_Concurrent_Body                 (E Id);
   INLINE B Is_Concurrent_Record_Type          (E Id);
   INLINE B Is_Concurrent_Type                 (E Id);
   INLINE B Is_Decimal_Fixed_Point_Type        (E Id);
   INLINE B Is_Digits_Type                     (E Id);
   INLINE B Is_Discrete_Or_Fixed_Point_Type    (E Id);
   INLINE B Is_Discrete_Type                   (E Id);
   INLINE B Is_Elementary_Type                 (E Id);
   INLINE B Is_Entry                           (E Id);
   INLINE B Is_Enumeration_Type                (E Id);
   INLINE B Is_Fixed_Point_Type                (E Id);
   INLINE B Is_Floating_Point_Type             (E Id);
   INLINE B Is_Formal                          (E Id);
   INLINE B Is_Formal_Subprogram               (E Id);
   INLINE B Is_Generic_Actual_Type             (E Id);
   INLINE B Is_Generic_Type                    (E Id);
   INLINE B Is_Generic_Unit                    (E Id);
   INLINE B Is_Incomplete_Or_Private_Type      (E Id);
   INLINE B Is_Integer_Type                    (E Id);
   INLINE B Is_Limited_Record                  (E Id);
   INLINE B Is_Modular_Integer_Type            (E Id);
   INLINE B Is_Named_Number                    (E Id);
   INLINE B Is_Numeric_Type                    (E Id);
   INLINE B Is_Object                          (E Id);
   INLINE B Is_Ordinary_Fixed_Point_Type       (E Id);
   INLINE B Is_Overloadable                    (E Id);
   INLINE B Is_Private_Type                    (E Id);
   INLINE B Is_Protected_Type                  (E Id);
   INLINE B Is_Real_Type                       (E Id);
   INLINE B Is_Record_Type                     (E Id);
   INLINE B Is_Scalar_Type                     (E Id);
   INLINE B Is_Signed_Integer_Type             (E Id);
   INLINE B Is_Subprogram                      (E Id);
   INLINE B Is_Task_Type                       (E Id);
   INLINE B Is_Type                            (E Id);

   #define Address_Clause einfo__address_clause
   N Address_Clause                     (E Id);

   #define Alignment_Clause einfo__alignment_clause
   N Alignment_Clause                   (E Id);

   #define Ancestor_Subtype einfo__ancestor_subtype
   E Ancestor_Subtype                   (E Id);

   #define Base_Type einfo__base_type
   E Base_Type                          (E Id);

   #define Constant_Value einfo__constant_value
   N Constant_Value                     (E Id);

   #define Declaration_Node einfo__declaration_node
   N Declaration_Node                   (E Id);

   #define Designated_Type einfo__designated_type
   E Designated_Type                    (E Id);

   #define Enclosing_Dynamic_Scope einfo__enclosing_dynamic_scope
   E Enclosing_Dynamic_Scope            (E Id);

   #define First_Component einfo__first_component
   E First_Component                    (E Id);

   #define First_Discriminant einfo__first_discriminant
   E First_Discriminant                 (E Id);

   #define First_Formal einfo__first_formal
   E First_Formal                       (E Id);

   #define First_Girder_Discriminant einfo__first_girder_discriminant
   E First_Girder_Discriminant          (E Id);

   #define First_Subtype einfo__first_subtype
   E First_Subtype                      (E Id);

   #define Has_Attach_Handler einfo__has_attach_handler
   B Has_Attach_Handler                 (E Id);

   #define Has_Entries einfo__has_entries
   B Has_Entries                        (E Id);

   #define Has_Foreign_Convention einfo__has_foreign_convention
   B Has_Foreign_Convention             (E Id);

   #define Has_Private_Ancestor einfo__has_private_ancestor
   B Has_Private_Ancestor               (E Id);

   INLINE B Has_Private_Declaration            (E Id);

   #define Implementation_Base_Type einfo__implementation_base_type
   E Implementation_Base_Type           (E Id);

   #define Is_Always_Inlined einfo__is_always_inlined
   B Is_Always_Inlined                  (E Id);

   #define Is_Boolean_Type einfo__is_boolean_type
   B Is_Boolean_Type                    (E Id);

   #define Is_By_Copy_Type einfo__is_by_copy_type
   B Is_By_Copy_Type                    (E Id);

   #define Is_By_Reference_Type einfo__is_by_reference_type
   B Is_By_Reference_Type               (E Id);

   #define Is_Derived_Type einfo__is_derived_type
   B Is_Derived_Type                    (E Id);

   #define Is_Dynamic_Scope einfo__is_dynamic_scope
   B Is_Dynamic_Scope                   (E Id);

   #define Is_Indefinite_Subtype einfo__is_indefinite_subtype
   B Is_Indefinite_Subtype              (E Id);

   #define Is_Limited_Type einfo__is_limited_type
   B Is_Limited_Type                    (E Id);

   #define Is_Package einfo__is_package
   B Is_Package                         (E Id);

   #define Is_Protected_Private einfo__is_protected_private
   B Is_Protected_Private               (E Id);

   #define Is_Protected_Record_Type einfo__is_protected_record_type
   B Is_Protected_Record_Type           (E Id);

   #define Is_Return_By_Reference_Type einfo__is_return_by_reference_type
   B Is_Return_By_Reference_Type        (E Id);

   #define Is_String_Type einfo__is_string_type
   B Is_String_Type                     (E Id);

   #define Is_Task_Record_Type einfo__is_task_record_type
   B Is_Task_Record_Type                (E Id);

   #define Next_Component einfo__next_component
   E Next_Component                     (E Id);

   #define Next_Discriminant einfo__next_discriminant
   E Next_Discriminant                  (E Id);

   #define Next_Formal einfo__next_formal
   E Next_Formal                        (E Id);

   #define Next_Formal_With_Extras einfo__next_formal_with_extras
   E Next_Formal_With_Extras            (E Id);

   #define Next_Girder_Discriminant einfo__next_girder_discriminant
   E Next_Girder_Discriminant           (E Id);

   INLINE E Next_Literal                       (E Id);

   #define Number_Dimensions einfo__number_dimensions
   Pos Number_Dimensions                  (E Id);

   #define Number_Discriminants einfo__number_discriminants
   Pos Number_Discriminants               (E Id);

   #define Number_Entries einfo__number_entries
   Nat Number_Entries                     (E Id);

   #define Number_Formals einfo__number_formals
   Pos Number_Formals                     (E Id);

   INLINE Formal_Kind Parameter_Mode                     (E Id);

   #define Root_Type einfo__root_type
   E Root_Type                          (E Id);

   #define Scope_Depth_Set einfo__scope_depth_set
   B Scope_Depth_Set                    (E Id);

   #define Size_Clause einfo__size_clause
   N Size_Clause                        (E Id);

   #define Tag_Component einfo__tag_component
   E Tag_Component                      (E Id);

   #define Type_High_Bound einfo__type_high_bound
   N Type_High_Bound                    (E Id);

   #define Type_Low_Bound einfo__type_low_bound
   N Type_Low_Bound                     (E Id);

   #define Underlying_Type einfo__underlying_type
   E Underlying_Type                    (E Id);

   INLINE B Known_Alignment                       (Entity_Id E);
   INLINE B Known_Component_Bit_Offset            (Entity_Id E);
   INLINE B Known_Component_Size                  (Entity_Id E);
   INLINE B Known_Esize                           (Entity_Id E);

   #define Known_Normalized_First_Bit einfo__known_normalized_first_bit
   B Known_Normalized_First_Bit            (Entity_Id E);

   #define Known_Normalized_Position einfo__known_normalized_position
   B Known_Normalized_Position             (Entity_Id E);

   #define Known_Normalized_Position_Max einfo__known_normalized_position_max
   B Known_Normalized_Position_Max         (Entity_Id E);

   #define Known_RM_Size einfo__known_rm_size
   B Known_RM_Size                         (Entity_Id E);

   #define Known_Static_Component_Bit_Offset einfo__known_static_component_bit_offset
   B Known_Static_Component_Bit_Offset     (Entity_Id E);

   INLINE B Known_Static_Component_Size           (Entity_Id E);
   INLINE B Known_Static_Esize                    (Entity_Id E);

   #define Known_Static_Normalized_Position einfo__known_static_normalized_position
   B Known_Static_Normalized_Position      (Entity_Id E);

   #define Known_Static_Normalized_Position_Max einfo__known_static_normalized_position_max
   B Known_Static_Normalized_Position_Max  (Entity_Id E);

   #define Known_Static_RM_Size einfo__known_static_rm_size
   B Known_Static_RM_Size                  (Entity_Id E);

   INLINE B Unknown_Alignment                     (Entity_Id E);
   INLINE B Unknown_Component_Bit_Offset          (Entity_Id E);
   INLINE B Unknown_Component_Size                (Entity_Id E);
   INLINE B Unknown_Esize                         (Entity_Id E);

   #define Unknown_Normalized_First_Bit einfo__unknown_normalized_first_bit
   B Unknown_Normalized_First_Bit          (Entity_Id E);

   #define Unknown_Normalized_Position einfo__unknown_normalized_position
   B Unknown_Normalized_Position           (Entity_Id E);

   #define Unknown_Normalized_Position_Max einfo__unknown_normalized_position_max
   B Unknown_Normalized_Position_Max       (Entity_Id E);

   #define Unknown_RM_Size einfo__unknown_rm_size
   B Unknown_RM_Size                       (Entity_Id E);


   INLINE L Accept_Address (E Id)
      { return Elist21 (Id); }

   INLINE E Access_Disp_Table (E Id)
      { return Node16 (Base_Type (Underlying_Type (Base_Type (Id)))); }

   INLINE E Actual_Subtype (E Id)
      { return Node17 (Id); }

   INLINE B Address_Taken (E Id)
      { return Flag104 (Id); }

   INLINE E Alias (E Id)
      { return Node18 (Id); }

   INLINE U Alignment (E Id)
      { return Uint14 (Id); }

   INLINE E Associated_Final_Chain (E Id)
      { return Node23 (Id); }

   INLINE E Associated_Formal_Package (E Id)
      { return Node12 (Id); }

   INLINE N Associated_Node_For_Itype (E Id)
      { return Node8 (Id); }

   INLINE E Associated_Storage_Pool (E Id)
      { return Node22 (Id); }

   INLINE N Barrier_Function (E Id)
      { return Node12 (Id); }

   INLINE N Block_Node (E Id)
      { return Node11 (Id); }

   INLINE E Body_Entity (E Id)
      { return Node19 (Id); }

   INLINE B C_Pass_By_Copy (E Id)
      { return Flag125 (Implementation_Base_Type (Id)); }

   INLINE E Class_Wide_Type (E Id)
      { return Node9 (Id); }

   INLINE E Cloned_Subtype (E Id)
      { return Node16 (Id); }

   INLINE U Component_Bit_Offset (E Id)
      { return Uint11 (Id); }

   INLINE N Component_Clause (E Id)
      { return Node13 (Id); }

   INLINE U Component_Size (E Id)
      { return Uint22 (Implementation_Base_Type (Id)); }

   INLINE E Component_Type (E Id)
      { return Node20 (Implementation_Base_Type (Id)); }

   INLINE E Corresponding_Concurrent_Type (E Id)
      { return Node18 (Id); }

   INLINE E Corresponding_Discriminant (E Id)
      { return Node19 (Id); }

   INLINE E Corresponding_Equality (E Id)
      { return Node13 (Id); }

   INLINE E Corresponding_Record_Type (E Id)
      { return Node18 (Id); }

   INLINE E Corresponding_Remote_Type (E Id)
      { return Node22 (Id); }

   INLINE E CR_Discriminant (E Id)
      { return Node23 (Id); }

   INLINE B Debug_Info_Off (E Id)
      { return Flag166 (Id); }

   INLINE E Debug_Renaming_Link (E Id)
      { return Node13 (Id); }

   INLINE E Default_Expr_Function (E Id)
      { return Node21 (Id); }

   INLINE B Default_Expressions_Processed (E Id)
      { return Flag108 (Id); }

   INLINE N Default_Value (E Id)
      { return Node20 (Id); }

   INLINE B Delay_Cleanups (E Id)
      { return Flag114 (Id); }

   INLINE B Delay_Subprogram_Descriptors (E Id)
      { return Flag50 (Id); }

   INLINE R Delta_Value (E Id)
      { return Ureal18 (Id); }

   INLINE L Dependent_Instances (E Id)
      { return Elist8 (Id); }

   INLINE B Depends_On_Private (E Id)
      { return Flag14 (Id); }

   INLINE U Digits_Value (E Id)
      { return Uint17 (Id); }

   INLINE E Directly_Designated_Type (E Id)
      { return Node20 (Id); }

   INLINE B Discard_Names (E Id)
      { return Flag88 (Id); }

   INLINE E Discriminal (E Id)
      { return Node17 (Id); }

   INLINE N Discriminal_Link (E Id)
      { return Node10 (Id); }

   INLINE E Discriminant_Checking_Func (E Id)
      { return Node20 (Id); }

   INLINE L Discriminant_Constraint (E Id)
      { return Elist21 (Id); }

   INLINE N Discriminant_Default_Value (E Id)
      { return Node20 (Id); }

   INLINE U Discriminant_Number (E Id)
      { return Uint15 (Id); }

   INLINE U DT_Entry_Count (E Id)
      { return Uint15 (Id); }

   INLINE U DT_Position (E Id)
      { return Uint15 (Id); }

   INLINE E DTC_Entity (E Id)
      { return Node16 (Id); }

   INLINE B Elaborate_All_Desirable (E Id)
      { return Flag146 (Id); }

   INLINE E Elaboration_Entity (E Id)
      { return Node13 (Id); }

   INLINE B Elaboration_Entity_Required (E Id)
      { return Flag174 (Id); }

   INLINE E Enclosing_Scope (E Id)
      { return Node18 (Id); }

   INLINE B Entry_Accepted (E Id)
      { return Flag152 (Id); }

   INLINE E Entry_Bodies_Array (E Id)
      { return Node15 (Id); }

   INLINE E Entry_Cancel_Parameter (E Id)
      { return Node23 (Id); }

   INLINE E Entry_Component (E Id)
      { return Node11 (Id); }

   INLINE E Entry_Formal (E Id)
      { return Node16 (Id); }

   INLINE N Entry_Index_Constant (E Id)
      { return Node18 (Id); }

   INLINE E Entry_Parameters_Type (E Id)
      { return Node15 (Id); }

   INLINE E Enum_Pos_To_Rep (E Id)
      { return Node23 (Id); }

   INLINE Uint Enumeration_Pos (E Id)
      { return Uint11 (Id); }

   INLINE U Enumeration_Rep (E Id)
      { return Uint12 (Id); }

   INLINE N Enumeration_Rep_Expr (E Id)
      { return Node22 (Id); }

   INLINE E Equivalent_Type (E Id)
      { return Node18 (Id); }

   INLINE Uint Esize (E Id)
      { return Uint12 (Id); }

   INLINE Uint Exception_Code (E Id)
      { return Uint22 (Id); }

   INLINE E Extra_Accessibility (E Id)
      { return Node13 (Id); }

   INLINE E Extra_Constrained (E Id)
      { return Node23 (Id); }

   INLINE E Extra_Formal (E Id)
      { return Node15 (Id); }

   INLINE E Finalization_Chain_Entity (E Id)
      { return Node19 (Id); }

   INLINE E First_Entity (E Id)
      { return Node17 (Id); }

   INLINE N First_Index (E Id)
      { return Node17 (Id); }

   INLINE E First_Literal (E Id)
      { return Node17 (Id); }

   INLINE E First_Optional_Parameter (E Id)
      { return Node14 (Id); }

   INLINE E First_Private_Entity (E Id)
      { return Node16 (Id); }

   INLINE E First_Rep_Item (E Id)
      { return Node6 (Id); }

   INLINE N Freeze_Node (E Id)
      { return Node7 (Id); }

   INLINE B From_With_Type (E Id)
      { return Flag159 (Id); }

   INLINE E Full_View (E Id)
      { return Node11 (Id); }

   INLINE B Function_Returns_With_DSP (E Id)
      { return Flag169 (Id); }

   INLINE L Generic_Renamings (E Id)
      { return Elist23 (Id); }

   INLINE L Girder_Constraint (E Id)
      { return Elist23 (Id); }

   INLINE S Handler_Records (E Id)
      { return List10 (Id); }

   INLINE B Has_Aliased_Components (E Id)
      { return Flag135 (Implementation_Base_Type (Id)); }

   INLINE B Has_Alignment_Clause (E Id)
      { return Flag46 (Id); }

   INLINE B Has_All_Calls_Remote (E Id)
      { return Flag79 (Id); }

   INLINE B Has_Atomic_Components (E Id)
      { return Flag86 (Implementation_Base_Type (Id)); }

   INLINE B Has_Biased_Representation (E Id)
      { return Flag139 (Id); }

   INLINE B Has_Completion (E Id)
      { return Flag26 (Id); }

   INLINE B Has_Completion_In_Body (E Id)
      { return Flag71 (Id); }

   INLINE B Has_Complex_Representation (E Id)
      { return Flag140 (Implementation_Base_Type (Id)); }

   INLINE B Has_Component_Size_Clause (E Id)
      { return Flag68 (Implementation_Base_Type (Id)); }

   INLINE B Has_Controlled_Component (E Id)
      { return Flag43 (Base_Type (Id)); }

   INLINE B Has_Controlling_Result (E Id)
      { return Flag98 (Id); }

   INLINE B Has_Convention_Pragma (E Id)
      { return Flag119 (Id); }

   INLINE B Has_Delayed_Freeze (E Id)
      { return Flag18 (Id); }

   INLINE B Has_Discriminants (E Id)
      { return Flag5 (Id); }

   INLINE B Has_Enumeration_Rep_Clause (E Id)
      { return Flag66 (Id); }

   INLINE B Has_Exit (E Id)
      { return Flag47 (Id); }

   INLINE B Has_External_Tag_Rep_Clause (E Id)
      { return Flag110 (Id); }

   INLINE B Has_Forward_Instantiation (E Id)
      { return Flag175 (Id); }

   INLINE B Has_Fully_Qualified_Name (E Id)
      { return Flag173 (Id); }

   INLINE B Has_Gigi_Rep_Item (E Id)
      { return Flag82 (Id); }

   INLINE B Has_Homonym (E Id)
      { return Flag56 (Id); }

   INLINE B Has_Machine_Radix_Clause (E Id)
      { return Flag83 (Id); }

   INLINE B Has_Master_Entity (E Id)
      { return Flag21 (Id); }

   INLINE B Has_Missing_Return (E Id)
      { return Flag142 (Id); }

   INLINE B Has_Nested_Block_With_Handler (E Id)
      { return Flag101 (Id); }

   INLINE B Has_Non_Standard_Rep (E Id)
      { return Flag75 (Implementation_Base_Type (Id)); }

   INLINE B Has_Object_Size_Clause (E Id)
      { return Flag172 (Id); }

   INLINE B Has_Per_Object_Constraint (E Id)
      { return Flag154 (Id); }

   INLINE B Has_Pragma_Controlled (E Id)
      { return Flag27 (Implementation_Base_Type (Id)); }

   INLINE B Has_Pragma_Elaborate_Body (E Id)
      { return Flag150 (Id); }

   INLINE B Has_Pragma_Inline (E Id)
      { return Flag157 (Id); }

   INLINE B Has_Pragma_Pack (E Id)
      { return Flag121 (Implementation_Base_Type (Id)); }

   INLINE B Has_Pragma_Pure_Function (E Id)
      { return Flag179 (Id); }

   INLINE B Has_Primitive_Operations (E Id)
      { return Flag120 (Base_Type (Id)); }

   INLINE B Has_Private_Declaration (E Id)
      { return Flag155 (Id); }

   INLINE B Has_Qualified_Name (E Id)
      { return Flag161 (Id); }

   INLINE B Has_Record_Rep_Clause (E Id)
      { return Flag65 (Id); }

   INLINE B Has_Recursive_Call (E Id)
      { return Flag143 (Id); }

   INLINE B Has_Size_Clause (E Id)
      { return Flag29 (Id); }

   INLINE B Has_Small_Clause (E Id)
      { return Flag67 (Id); }

   INLINE B Has_Specified_Layout (E Id)
      { return Flag100 (Id); }

   INLINE B Has_Storage_Size_Clause (E Id)
      { return Flag23 (Implementation_Base_Type (Id)); }

   INLINE B Has_Subprogram_Descriptor (E Id)
      { return Flag93 (Id); }

   INLINE B Has_Task (E Id)
      { return Flag30 (Base_Type (Id)); }

   INLINE B Has_Unchecked_Union (E Id)
      { return Flag123 (Base_Type (Id)); }

   INLINE B Has_Unknown_Discriminants (E Id)
      { return Flag72 (Id); }

   INLINE B Has_Volatile_Components (E Id)
      { return Flag87 (Implementation_Base_Type (Id)); }

   INLINE E Hiding_Loop_Variable (E Id)
      { return Node8 (Id); }

   INLINE E Homonym (E Id)
      { return Node4 (Id); }

   INLINE B In_Package_Body (E Id)
      { return Flag48 (Id); }

   INLINE B In_Private_Part (E Id)
      { return Flag45 (Id); }

   INLINE B In_Use (E Id)
      { return Flag8 (Id); }

   INLINE L Inner_Instances (E Id)
      { return Elist23 (Id); }

   INLINE N Interface_Name (E Id)
      { return Node21 (Id); }

   INLINE B Is_Abstract (E Id)
      { return Flag19 (Id); }

   INLINE B Is_Access_Constant (E Id)
      { return Flag69 (Id); }

   INLINE B Is_Aliased (E Id)
      { return Flag15 (Id); }

   INLINE B Is_AST_Entry (E Id)
      { return Flag132 (Id); }

   INLINE B Is_Asynchronous (E Id)
      { return Flag81 (Id); }

   INLINE B Is_Atomic (E Id)
      { return Flag85 (Id); }

   INLINE B Is_Bit_Packed_Array (E Id)
      { return Flag122 (Implementation_Base_Type (Id)); }

   INLINE B Is_Called (E Id)
      { return Flag102 (Id); }

   INLINE B Is_Character_Type (E Id)
      { return Flag63 (Id); }

   INLINE B Is_Child_Unit (E Id)
      { return Flag73 (Id); }

   INLINE B Is_Compilation_Unit (E Id)
      { return Flag149 (Id); }

   INLINE B Is_Completely_Hidden (E Id)
      { return Flag103 (Id); }

   INLINE B Is_Constr_Subt_For_U_Nominal (E Id)
      { return Flag80 (Id); }

   INLINE B Is_Constr_Subt_For_UN_Aliased (E Id)
      { return Flag141 (Id); }

   INLINE B Is_Constrained (E Id)
      { return Flag12 (Id); }

   INLINE B Is_Constructor (E Id)
      { return Flag76 (Id); }

   INLINE B Is_Controlled (E Id)
      { return Flag42 (Base_Type (Id)); }

   INLINE B Is_Controlling_Formal (E Id)
      { return Flag97 (Id); }

   INLINE B Is_CPP_Class (E Id)
      { return Flag74 (Id); }

   INLINE B Is_Destructor (E Id)
      { return Flag77 (Id); }

   INLINE B Is_Discrim_SO_Function (E Id)
      { return Flag176 (Id); }

   INLINE B Is_Dispatching_Operation (E Id)
      { return Flag6 (Id); }

   INLINE B Is_Eliminated (E Id)
      { return Flag124 (Id); }

   INLINE B Is_Entry_Formal (E Id)
      { return Flag52 (Id); }

   INLINE B Is_Exported (E Id)
      { return Flag99 (Id); }

   INLINE B Is_First_Subtype (E Id)
      { return Flag70 (Id); }

   INLINE B Is_For_Access_Subtype (E Id)
      { return Flag118 (Id); }

   INLINE B Is_Formal_Subprogram (E Id)
      { return Flag111 (Id); }

   INLINE B Is_Frozen (E Id)
      { return Flag4 (Id); }

   INLINE B Is_Generic_Actual_Type (E Id)
      { return Flag94 (Id); }

   INLINE B Is_Generic_Instance (E Id)
      { return Flag130 (Id); }

   INLINE B Is_Generic_Type (E Id)
      { return Flag13 (Id); }

   INLINE B Is_Hidden (E Id)
      { return Flag57 (Id); }

   INLINE B Is_Hidden_Open_Scope (E Id)
      { return Flag171 (Id); }

   INLINE B Is_Immediately_Visible (E Id)
      { return Flag7 (Id); }

   INLINE B Is_Imported (E Id)
      { return Flag24 (Id); }

   INLINE B Is_Inlined (E Id)
      { return Flag11 (Id); }

   INLINE B Is_Instantiated (E Id)
      { return Flag126 (Id); }

   INLINE B Is_Internal (E Id)
      { return Flag17 (Id); }

   INLINE B Is_Interrupt_Handler (E Id)
      { return Flag89 (Id); }

   INLINE B Is_Intrinsic_Subprogram (E Id)
      { return Flag64 (Id); }

   INLINE B Is_Itype (E Id)
      { return Flag91 (Id); }

   INLINE B Is_Known_Valid (E Id)
      { return Flag170 (Id); }

   INLINE B Is_Limited_Composite (E Id)
      { return Flag106 (Id); }

   INLINE B Is_Limited_Record (E Id)
      { return Flag25 (Id); }

   INLINE B Is_Machine_Code_Subprogram (E Id)
      { return Flag137 (Id); }

   INLINE B Is_Non_Static_Subtype (E Id)
      { return Flag109 (Id); }

   INLINE B Is_Null_Init_Proc (E Id)
      { return Flag178 (Id); }

   INLINE B Is_Optional_Parameter (E Id)
      { return Flag134 (Id); }

   INLINE B Is_Package_Body_Entity (E Id)
      { return Flag160 (Id); }

   INLINE B Is_Packed (E Id)
      { return Flag51 (Implementation_Base_Type (Id)); }

   INLINE B Is_Packed_Array_Type (E Id)
      { return Flag138 (Id); }

   INLINE B Is_Potentially_Use_Visible (E Id)
      { return Flag9 (Id); }

   INLINE B Is_Preelaborated (E Id)
      { return Flag59 (Id); }

   INLINE B Is_Private_Composite (E Id)
      { return Flag107 (Id); }

   INLINE B Is_Private_Descendant (E Id)
      { return Flag53 (Id); }

   INLINE B Is_Psected (E Id)
      { return Flag153 (Id); }

   INLINE B Is_Public (E Id)
      { return Flag10 (Id); }

   INLINE B Is_Pure (E Id)
      { return Flag44 (Id); }

   INLINE B Is_Remote_Call_Interface (E Id)
      { return Flag62 (Id); }

   INLINE B Is_Remote_Types (E Id)
      { return Flag61 (Id); }

   INLINE B Is_Renaming_Of_Object (E Id)
      { return Flag112 (Id); }

   INLINE B Is_Shared_Passive (E Id)
      { return Flag60 (Id); }

   INLINE B Is_Statically_Allocated (E Id)
      { return Flag28 (Id); }

   INLINE B Is_Tag (E Id)
      { return Flag78 (Id); }

   INLINE B Is_Tagged_Type (E Id)
      { return Flag55 (Id); }

   INLINE B Is_True_Constant (E Id)
      { return Flag163 (Id); }

   INLINE B Is_Unchecked_Union (E Id)
      { return Flag117 (Id); }

   INLINE B Is_Unsigned_Type (E Id)
      { return Flag144 (Id); }

   INLINE B Is_Valued_Procedure (E Id)
      { return Flag127 (Id); }

   INLINE B Is_Visible_Child_Unit (E Id)
      { return Flag116 (Id); }

   INLINE B Is_VMS_Exception (E Id)
      { return Flag133 (Id); }

   INLINE B Is_Volatile (E Id)
      { return Flag16 (Id); }

   INLINE E Last_Entity (E Id)
      { return Node20 (Id); }

   INLINE E Lit_Indexes (E Id)
      { return Node15 (Id); }

   INLINE E Lit_Strings (E Id)
      { return Node16 (Id); }

   INLINE B Machine_Radix_10 (E Id)
      { return Flag84 (Id); }

   INLINE E Master_Id (E Id)
      { return Node17 (Id); }

   INLINE B Materialize_Entity (E Id)
      { return Flag168 (Id); }

   INLINE M Mechanism (E Id)
      { return UI_To_Int (Uint8 (Id)); }

   INLINE Uint Modulus (E Id)
      { return Uint17 (Base_Type (Id)); }

   INLINE B Needs_Debug_Info (E Id)
      { return Flag147 (Id); }

   INLINE B Needs_No_Actuals (E Id)
      { return Flag22 (Id); }

   INLINE E Next_Inlined_Subprogram (E Id)
      { return Node12 (Id); }

   INLINE B No_Pool_Assigned (E Id)
      { return Flag131 (Root_Type (Id)); }

   INLINE B No_Return (E Id)
      { return Flag113 (Id); }

   INLINE B Non_Binary_Modulus (E Id)
      { return Flag58 (Base_Type (Id)); }

   INLINE B Nonzero_Is_True (E Id)
      { return Flag162 (Base_Type (Id)); }

   INLINE U Normalized_First_Bit (E Id)
      { return Uint8 (Id); }

   INLINE U Normalized_Position (E Id)
      { return Uint9 (Id); }

   INLINE U Normalized_Position_Max (E Id)
      { return Uint10 (Id); }

   INLINE B Not_Source_Assigned (E Id)
      { return Flag115 (Id); }

   INLINE E Object_Ref (E Id)
      { return Node17 (Id); }

   INLINE E Original_Record_Component (E Id)
      { return Node22 (Id); }

   INLINE E Packed_Array_Type (E Id)
      { return Node23 (Id); }

   INLINE E Parent_Subtype (E Id)
      { return Node19 (Id); }

   INLINE L Primitive_Operations (E Id)
      { return Elist15 (Id); }

   INLINE E Prival (E Id)
      { return Node17 (Id); }

   INLINE L Privals_Chain (E Id)
      { return Elist23 (Id); }

   INLINE L Private_Dependents (E Id)
      { return Elist18 (Id); }

   INLINE N Private_View (E Id)
      { return Node22 (Id); }

   INLINE E Protected_Body_Subprogram (E Id)
      { return Node11 (Id); }

   INLINE E Protected_Formal (E Id)
      { return Node22 (Id); }

   INLINE N Protected_Operation (E Id)
      { return Node23 (Id); }

   INLINE B Reachable (E Id)
      { return Flag49 (Id); }

   INLINE B Referenced (E Id)
      { return Flag156 (Id); }

   INLINE N Referenced_Object (E Id)
      { return Node10 (Id); }

   INLINE N Register_Exception_Call (E Id)
      { return Node20 (Id); }

   INLINE E Related_Array_Object (E Id)
      { return Node19 (Id); }

   INLINE E Related_Instance (E Id)
      { return Node15 (Id); }

   INLINE N Renamed_Entity (E Id)
      { return Node18 (Id); }

   INLINE N Renamed_Object (E Id)
      { return Node18 (Id); }

   INLINE U Renaming_Map (E Id)
      { return Uint9 (Id); }

   INLINE B Return_Present (E Id)
      { return Flag54 (Id); }

   INLINE B Returns_By_Ref (E Id)
      { return Flag90 (Id); }

   INLINE B Reverse_Bit_Order (E Id)
      { return Flag164 (Base_Type (Id)); }

   INLINE U RM_Size (E Id)
      { return Uint13 (Id); }

   INLINE N Scalar_Range (E Id)
      { return Node20 (Id); }

   INLINE U Scale_Value (E Id)
      { return Uint15 (Id); }

   INLINE U Scope_Depth_Value (E Id)
      { return Uint22 (Id); }

   INLINE B Sec_Stack_Needed_For_Return (E Id)
      { return Flag167 (Id); }

   INLINE S Shadow_Entities (E Id)
      { return List14 (Id); }

   INLINE E Shared_Var_Assign_Proc (E Id)
      { return Node22 (Id); }

   INLINE E Shared_Var_Read_Proc (E Id)
      { return Node15 (Id); }

   INLINE N Size_Check_Code (E Id)
      { return Node9 (Id); }

   INLINE B Size_Depends_On_Discriminant (E Id)
      { return Flag177 (Id); }

   INLINE B Size_Known_At_Compile_Time (E Id)
      { return Flag92 (Id); }

   INLINE R Small_Value (E Id)
      { return Ureal21 (Id); }

   INLINE E Spec_Entity (E Id)
      { return Node19 (Id); }

   INLINE E Storage_Size_Variable (E Id)
      { return Node15 (Implementation_Base_Type (Id)); }

   INLINE B Strict_Alignment (E Id)
      { return Flag145 (Implementation_Base_Type (Id)); }

   INLINE U String_Literal_Length (E Id)
      { return Uint16 (Id); }

   INLINE N String_Literal_Low_Bound (E Id)
      { return Node15 (Id); }

   INLINE B Suppress_Access_Checks (E Id)
      { return Flag31 (Id); }

   INLINE B Suppress_Accessibility_Checks (E Id)
      { return Flag32 (Id); }

   INLINE B Suppress_Discriminant_Checks (E Id)
      { return Flag33 (Id); }

   INLINE B Suppress_Division_Checks (E Id)
      { return Flag34 (Id); }

   INLINE B Suppress_Elaboration_Checks (E Id)
      { return Flag35 (Id); }

   INLINE B Suppress_Elaboration_Warnings (E Id)
      { return Flag148 (Id); }

   INLINE B Suppress_Index_Checks (E Id)
      { return Flag36 (Id); }

   INLINE B Suppress_Init_Proc (E Id)
      { return Flag105 (Base_Type (Id)); }

   INLINE B Suppress_Length_Checks (E Id)
      { return Flag37 (Id); }

   INLINE B Suppress_Overflow_Checks (E Id)
      { return Flag38 (Id); }

   INLINE B Suppress_Range_Checks (E Id)
      { return Flag39 (Id); }

   INLINE B Suppress_Storage_Checks (E Id)
      { return Flag40 (Id); }

   INLINE B Suppress_Style_Checks (E Id)
      { return Flag165 (Id); }

   INLINE B Suppress_Tag_Checks (E Id)
      { return Flag41 (Id); }

   INLINE E Underlying_Full_View (E Id)
      { return Node19 (Id); }

   INLINE N Unset_Reference (E Id)
      { return Node16 (Id); }

   INLINE B Uses_Sec_Stack (E Id)
      { return Flag95 (Id); }

   INLINE B Vax_Float (E Id)
      { return Flag151 (Base_Type (Id)); }

   INLINE B Warnings_Off (E Id)
      { return Flag96 (Id); }

   INLINE B Is_Access_Type                      (E Id)
      { return IN (Ekind (Id), Access_Kind); }

   INLINE B Is_Array_Type                       (E Id)
      { return IN (Ekind (Id), Array_Kind); }

   INLINE B Is_Class_Wide_Type                  (E Id)
      { return IN (Ekind (Id), Class_Wide_Kind); }

   INLINE B Is_Composite_Type                   (E Id)
      { return IN (Ekind (Id), Composite_Kind); }

   INLINE B Is_Concurrent_Body                  (E Id)
      { return IN (Ekind (Id), Concurrent_Body_Kind); }

   INLINE B Is_Concurrent_Record_Type           (E Id)
      { return Flag20 (Id); }

   INLINE B Is_Concurrent_Type                  (E Id)
      { return IN (Ekind (Id), Concurrent_Kind); }

   INLINE B Is_Decimal_Fixed_Point_Type         (E Id)
      { return IN (Ekind (Id), Decimal_Fixed_Point_Kind); }

   INLINE B Is_Digits_Type                      (E Id)
      { return IN (Ekind (Id), Digits_Kind); }

   INLINE B Is_Discrete_Or_Fixed_Point_Type     (E Id)
      { return IN (Ekind (Id), Discrete_Or_Fixed_Point_Kind); }

   INLINE B Is_Discrete_Type                    (E Id)
      { return IN (Ekind (Id), Discrete_Kind); }

   INLINE B Is_Elementary_Type                  (E Id)
      { return IN (Ekind (Id), Elementary_Kind); }

   INLINE B Is_Entry                            (E Id)
      { return IN (Ekind (Id), Entry_Kind); }

   INLINE B Is_Enumeration_Type                 (E Id)
      { return IN (Ekind (Id), Enumeration_Kind); }

   INLINE B Is_Fixed_Point_Type                 (E Id)
      { return IN (Ekind (Id), Fixed_Point_Kind); }

   INLINE B Is_Floating_Point_Type              (E Id)
      { return IN (Ekind (Id), Float_Kind); }

   INLINE B Is_Formal                           (E Id)
      { return IN (Ekind (Id), Formal_Kind); }

   INLINE B Is_Generic_Unit                     (E Id)
      { return IN (Ekind (Id), Generic_Unit_Kind); }

   INLINE B Is_Incomplete_Or_Private_Type       (E Id)
      { return IN (Ekind (Id), Incomplete_Or_Private_Kind); }

   INLINE B Is_Integer_Type                     (E Id)
      { return IN (Ekind (Id), Integer_Kind); }

   INLINE B Is_Modular_Integer_Type             (E Id)
      { return IN (Ekind (Id), Modular_Integer_Kind); }

   INLINE B Is_Named_Number                     (E Id)
      { return IN (Ekind (Id), Named_Kind); }

   INLINE B Is_Numeric_Type                     (E Id)
      { return IN (Ekind (Id), Numeric_Kind); }

   INLINE B Is_Object                           (E Id)
      { return IN (Ekind (Id), Object_Kind); }

   INLINE B Is_Ordinary_Fixed_Point_Type        (E Id)
      { return IN (Ekind (Id), Ordinary_Fixed_Point_Kind); }

   INLINE B Is_Overloadable                     (E Id)
      { return IN (Ekind (Id), Overloadable_Kind); }

   INLINE B Is_Private_Type                     (E Id)
      { return IN (Ekind (Id), Private_Kind); }

   INLINE B Is_Protected_Type                   (E Id)
      { return IN (Ekind (Id), Protected_Kind); }

   INLINE B Is_Real_Type                        (E Id)
      { return IN (Ekind (Id), Real_Kind); }

   INLINE B Is_Record_Type                      (E Id)
      { return IN (Ekind (Id), Record_Kind); }

   INLINE B Is_Scalar_Type                      (E Id)
      { return IN (Ekind (Id), Scalar_Kind); }

   INLINE B Is_Signed_Integer_Type              (E Id)
      { return IN (Ekind (Id), Signed_Integer_Kind); }

   INLINE B Is_Subprogram                       (E Id)
      { return IN (Ekind (Id), Subprogram_Kind); }

   INLINE B Is_Task_Type                        (E Id)
      { return IN (Ekind (Id), Task_Kind); }

   INLINE B Is_Type                             (E Id)
      { return IN (Ekind (Id), Type_Kind); }

   INLINE B Known_Alignment                       (Entity_Id E)
      { return Uint14 (E) != Uint_0; }

   INLINE B Known_Component_Bit_Offset            (Entity_Id E)
      { return Uint11 (E) != No_Uint; }

   INLINE B Known_Component_Size                  (Entity_Id E)
      { return Uint22 (Base_Type (E)) != Uint_0; }

   INLINE B Known_Esize                           (Entity_Id E)
      { return Uint12 (E) != Uint_0; }

   INLINE B Known_Static_Component_Size           (Entity_Id E)
      { return Uint22 (Base_Type (E)) > Uint_0; }

   INLINE B Known_Static_Esize                    (Entity_Id E)
      { return Uint12 (E) > Uint_0; }

   INLINE B Unknown_Alignment                     (Entity_Id E)
      { return Uint14 (E) == Uint_0; }

   INLINE B Unknown_Component_Bit_Offset          (Entity_Id E)
      { return Uint11 (E) == No_Uint; }

   INLINE B Unknown_Component_Size                (Entity_Id E)
      { return Uint22 (Base_Type (E)) == Uint_0; }

   INLINE B Unknown_Esize                         (Entity_Id E)
      { return Uint12 (E) == Uint_0; }

   INLINE N Entry_Index_Type (E Id)
      { return Etype (Discrete_Subtype_Definition (Parent (Id))); }

   INLINE Node_Id Next_Index (Node_Id Id)
      { return Next (Id); }

   INLINE E Next_Literal (E Id)
      { return Next (Id); }

   INLINE Formal_Kind Parameter_Mode (E Id)
      { return Ekind (Id); }

/* End of einfo.h (C version of Einfo package specification) */
