aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gen_il-fields.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/gen_il-fields.ads')
-rw-r--r--gcc/ada/gen_il-fields.ads948
1 files changed, 948 insertions, 0 deletions
diff --git a/gcc/ada/gen_il-fields.ads b/gcc/ada/gen_il-fields.ads
new file mode 100644
index 0000000..0a3046e
--- /dev/null
+++ b/gcc/ada/gen_il-fields.ads
@@ -0,0 +1,948 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT COMPILER COMPONENTS --
+-- --
+-- G E N _ I L . F I E L D S --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020-2021, 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 3, 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 COPYING3. If not, go to --
+-- http://www.gnu.org/licenses for a complete copy of the license. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with Gen_IL.Types;
+
+package Gen_IL.Fields is
+
+ -- The following is "optional field enumeration" -- i.e. it is Field_Enum
+ -- (declared below) plus the special null value No_Field. See the spec of
+ -- Gen_IL.Gen for how to modify this. (Of course, in Ada we have to define
+ -- this backwards from the above conceptual description.)
+
+ -- Note that there are various subranges of this type declared below,
+ -- which might need to be kept in sync when modifying this.
+
+ -- Be sure to put new fields in the appropriate subrange (Field_Enum,
+ -- Node_Header_Field, Node_Field, Entity_Field -- search for comments
+ -- below).
+
+ type Opt_Field_Enum is
+ (No_Field,
+
+ -- Start of node fields:
+
+ Nkind,
+ Sloc,
+ In_List,
+ Rewrite_Ins,
+ Comes_From_Source,
+ Analyzed,
+ Error_Posted,
+ Small_Paren_Count,
+ Check_Actuals,
+ Has_Aspects,
+ Is_Ignored_Ghost_Node,
+ Link,
+
+ Abort_Present,
+ Abortable_Part,
+ Abstract_Present,
+ Accept_Handler_Records,
+ Accept_Statement,
+ Access_Definition,
+ Access_To_Subprogram_Definition,
+ Access_Types_To_Process,
+ Actions,
+ Activation_Chain_Entity,
+ Acts_As_Spec,
+ Actual_Designated_Subtype,
+ Address_Warning_Posted,
+ Aggregate_Bounds,
+ Aliased_Present,
+ Alloc_For_BIP_Return,
+ All_Others,
+ All_Present,
+ Alternatives,
+ Ancestor_Part,
+ Atomic_Sync_Required,
+ Array_Aggregate,
+ Aspect_On_Partial_View,
+ Aspect_Rep_Item,
+ Assignment_OK,
+ Attribute_Name,
+ At_End_Proc,
+ Aux_Decls_Node,
+ Backwards_OK,
+ Bad_Is_Detected,
+ Binding_Chars,
+ Body_Required,
+ Body_To_Inline,
+ Box_Present,
+ By_Ref,
+ Char_Literal_Value,
+ Chars,
+ Check_Address_Alignment,
+ Choice_Parameter,
+ Choices,
+ Class_Present,
+ Classifications,
+ Cleanup_Actions,
+ Comes_From_Extended_Return_Statement,
+ Compile_Time_Known_Aggregate,
+ Component_Associations,
+ Component_Clauses,
+ Component_Definition,
+ Component_Items,
+ Component_List,
+ Component_Name,
+ Componentwise_Assignment,
+ Condition,
+ Condition_Actions,
+ Config_Pragmas,
+ Constant_Present,
+ Constraint,
+ Constraints,
+ Context_Installed,
+ Context_Items,
+ Context_Pending,
+ Contract_Test_Cases,
+ Controlling_Argument,
+ Conversion_OK,
+ Convert_To_Return_False,
+ Corresponding_Aspect,
+ Corresponding_Body,
+ Corresponding_Entry_Body,
+ Corresponding_Formal_Spec,
+ Corresponding_Generic_Association,
+ Corresponding_Integer_Value,
+ Corresponding_Spec,
+ Corresponding_Spec_Of_Stub,
+ Corresponding_Stub,
+ Dcheck_Function,
+ Declarations,
+ Default_Expression,
+ Default_Storage_Pool,
+ Default_Name,
+ Default_Subtype_Mark,
+ Defining_Identifier,
+ Defining_Unit_Name,
+ Delay_Alternative,
+ Delay_Statement,
+ Delta_Expression,
+ Digits_Expression,
+ Discr_Check_Funcs_Built,
+ Discrete_Choices,
+ Discrete_Range,
+ Discrete_Subtype_Definition,
+ Discrete_Subtype_Definitions,
+ Discriminant_Specifications,
+ Discriminant_Type,
+ Do_Discriminant_Check,
+ Do_Division_Check,
+ Do_Length_Check,
+ Do_Overflow_Check,
+ Do_Range_Check,
+ Do_Storage_Check,
+ Elaborate_All_Desirable,
+ Elaborate_All_Present,
+ Elaborate_Desirable,
+ Elaborate_Present,
+ Else_Actions,
+ Else_Statements,
+ Elsif_Parts,
+ Enclosing_Variant,
+ End_Label,
+ End_Span,
+ Entity_Or_Associated_Node,
+ Entry_Body_Formal_Part,
+ Entry_Call_Alternative,
+ Entry_Call_Statement,
+ Entry_Direct_Name,
+ Entry_Index,
+ Entry_Index_Specification,
+ Etype,
+ Exception_Choices,
+ Exception_Handlers,
+ Exception_Junk,
+ Exception_Label,
+ Expansion_Delayed,
+ Explicit_Actual_Parameter,
+ Explicit_Generic_Actual_Parameter,
+ Expression,
+ Expression_Copy,
+ Expressions,
+ First_Bit,
+ First_Inlined_Subprogram,
+ First_Name,
+ First_Named_Actual,
+ First_Real_Statement,
+ First_Subtype_Link,
+ Float_Truncate,
+ Formal_Type_Definition,
+ Forwards_OK,
+ From_Aspect_Specification,
+ From_At_End,
+ From_At_Mod,
+ From_Conditional_Expression,
+ From_Default,
+ Generalized_Indexing,
+ Generic_Associations,
+ Generic_Formal_Declarations,
+ Generic_Parent,
+ Generic_Parent_Type,
+ Handled_Statement_Sequence,
+ Handler_List_Entry,
+ Has_Created_Identifier,
+ Has_Dereference_Action,
+ Has_Dynamic_Length_Check,
+ Has_Init_Expression,
+ Has_Local_Raise,
+ Has_No_Elaboration_Code,
+ Has_Pragma_Suppress_All,
+ Has_Private_View,
+ Has_Relative_Deadline_Pragma,
+ Has_Self_Reference,
+ Has_SP_Choice,
+ Has_Storage_Size_Pragma,
+ Has_Target_Names,
+ Has_Wide_Character,
+ Has_Wide_Wide_Character,
+ Header_Size_Added,
+ Hidden_By_Use_Clause,
+ High_Bound,
+ Identifier,
+ Interface_List,
+ Interface_Present,
+ Implicit_With,
+ Import_Interface_Present,
+ In_Present,
+ Includes_Infinities,
+ Incomplete_View,
+ Inherited_Discriminant,
+ Instance_Spec,
+ Intval,
+ Is_Abort_Block,
+ Is_Accessibility_Actual,
+ Is_Analyzed_Pragma,
+ Is_Asynchronous_Call_Block,
+ Is_Boolean_Aspect,
+ Is_Checked,
+ Is_Checked_Ghost_Pragma,
+ Is_Component_Left_Opnd,
+ Is_Component_Right_Opnd,
+ Is_Controlling_Actual,
+ Is_Declaration_Level_Node,
+ Is_Delayed_Aspect,
+ Is_Disabled,
+ Is_Dispatching_Call,
+ Is_Dynamic_Coextension,
+ Is_Effective_Use_Clause,
+ Is_Elaboration_Checks_OK_Node,
+ Is_Elaboration_Code,
+ Is_Elaboration_Warnings_OK_Node,
+ Is_Elsif,
+ Is_Entry_Barrier_Function,
+ Is_Expanded_Build_In_Place_Call,
+ Is_Expanded_Contract,
+ Is_Finalization_Wrapper,
+ Is_Folded_In_Parser,
+ Is_Generic_Contract_Pragma,
+ Is_Homogeneous_Aggregate,
+ Is_Ignored,
+ Is_Ignored_Ghost_Pragma,
+ Is_In_Discriminant_Check,
+ Is_Inherited_Pragma,
+ Is_Initialization_Block,
+ Is_Known_Guaranteed_ABE,
+ Is_Machine_Number,
+ Is_Null_Loop,
+ Is_Overloaded,
+ Is_Power_Of_2_For_Shift,
+ Is_Preelaborable_Call,
+ Is_Prefixed_Call,
+ Is_Protected_Subprogram_Body,
+ Is_Qualified_Universal_Literal,
+ Is_Read,
+ Is_Source_Call,
+ Is_SPARK_Mode_On_Node,
+ Is_Static_Coextension,
+ Is_Static_Expression,
+ Is_Subprogram_Descriptor,
+ Is_Task_Allocation_Block,
+ Is_Task_Body_Procedure,
+ Is_Task_Master,
+ Is_Write,
+ Iterator_Filter,
+ Iteration_Scheme,
+ Iterator_Specification,
+ Itype,
+ Key_Expression,
+ Kill_Range_Check,
+ Last_Bit,
+ Last_Name,
+ Library_Unit,
+ Label_Construct,
+ Left_Opnd,
+ Limited_View_Installed,
+ Limited_Present,
+ Literals,
+ Local_Raise_Not_OK,
+ Local_Raise_Statements,
+ Loop_Actions,
+ Loop_Parameter_Specification,
+ Low_Bound,
+ Mod_Clause,
+ More_Ids,
+ Multidefined_Bindings,
+ Must_Be_Byte_Aligned,
+ Must_Not_Freeze,
+ Must_Not_Override,
+ Must_Override,
+ Name,
+ Names,
+ Next_Entity,
+ Next_Exit_Statement,
+ Next_Implicit_With,
+ Next_Named_Actual,
+ Next_Pragma,
+ Next_Rep_Item,
+ Next_Use_Clause,
+ No_Ctrl_Actions,
+ No_Elaboration_Check,
+ No_Entities_Ref_In_Spec,
+ No_Initialization,
+ No_Minimize_Eliminate,
+ No_Side_Effect_Removal,
+ No_Truncation,
+ Null_Excluding_Subtype,
+ Null_Exclusion_Present,
+ Null_Exclusion_In_Return_Present,
+ Null_Present,
+ Null_Record_Present,
+ Null_Statement,
+ Object_Definition,
+ Of_Present,
+ Original_Discriminant,
+ Original_Entity,
+ Others_Discrete_Choices,
+ Out_Present,
+ Parameter_Associations,
+ Parameter_Specifications,
+ Parameter_Type,
+ Parent_Spec,
+ Parent_With,
+ Position,
+ Pragma_Argument_Associations,
+ Pragma_Identifier,
+ Pragmas_After,
+ Pragmas_Before,
+ Pre_Post_Conditions,
+ Prefix,
+ Premature_Use,
+ Present_Expr,
+ Prev_Ids,
+ Prev_Use_Clause,
+ Print_In_Hex,
+ Private_Declarations,
+ Private_Present,
+ Procedure_To_Call,
+ Proper_Body,
+ Protected_Definition,
+ Protected_Present,
+ Raises_Constraint_Error,
+ Range_Constraint,
+ Range_Expression,
+ Real_Range_Specification,
+ Realval,
+ Reason,
+ Record_Extension_Part,
+ Redundant_Use,
+ Renaming_Exception,
+ Result_Definition,
+ Return_Object_Declarations,
+ Return_Statement_Entity,
+ Reverse_Present,
+ Right_Opnd,
+ Rounded_Result,
+ Save_Invocation_Graph_Of_Body,
+ SCIL_Controlling_Tag,
+ SCIL_Entity,
+ SCIL_Tag_Value,
+ SCIL_Target_Prim,
+ Scope,
+ Select_Alternatives,
+ Selector_Name,
+ Selector_Names,
+ Shift_Count_OK,
+ Source_Type,
+ Specification,
+ Split_PPC,
+ Statements,
+ Storage_Pool,
+ Subpool_Handle_Name,
+ Strval,
+ Subtype_Indication,
+ Subtype_Mark,
+ Subtype_Marks,
+ Suppress_Assignment_Checks,
+ Suppress_Loop_Warnings,
+ Synchronized_Present,
+ Tagged_Present,
+ Target,
+ Target_Type,
+ Task_Definition,
+ Task_Present,
+ Then_Actions,
+ Then_Statements,
+ Triggering_Alternative,
+ Triggering_Statement,
+ TSS_Elist,
+ Type_Definition,
+ Uneval_Old_Accept,
+ Uneval_Old_Warn,
+ Unit,
+ Unknown_Discriminants_Present,
+ Unreferenced_In_Spec,
+ Variant_Part,
+ Variants,
+ Visible_Declarations,
+ Uninitialized_Variable,
+ Used_Operations,
+ Was_Attribute_Reference,
+ Was_Default_Init_Box_Association,
+ Was_Expression_Function,
+ Was_Originally_Stub,
+
+ -- End of node fields.
+
+ Between_Node_And_Entity_Fields,
+
+ -- Start of entity fields:
+
+ Ekind,
+ Basic_Convention,
+ Abstract_States,
+ Accept_Address,
+ Access_Disp_Table,
+ Access_Disp_Table_Elab_Flag,
+ Access_Subprogram_Wrapper,
+ Activation_Record_Component,
+ Actual_Subtype,
+ Address_Taken,
+ Alignment,
+ Anonymous_Designated_Type,
+ Anonymous_Masters,
+ Anonymous_Object,
+ Associated_Entity,
+ Associated_Formal_Package,
+ Associated_Node_For_Itype,
+ Associated_Storage_Pool,
+ Barrier_Function,
+ BIP_Initialization_Call,
+ Block_Node,
+ Body_Entity,
+ Body_Needed_For_Inlining,
+ Body_Needed_For_SAL,
+ Body_References,
+ C_Pass_By_Copy,
+ Can_Never_Be_Null,
+ Can_Use_Internal_Rep,
+ Checks_May_Be_Suppressed,
+ Class_Wide_Clone,
+ Class_Wide_Type,
+ Cloned_Subtype,
+ Component_Alignment,
+ Component_Bit_Offset,
+ Component_Clause,
+ Component_Size,
+ Component_Type,
+ Contract,
+ Contract_Wrapper,
+ Corresponding_Concurrent_Type,
+ Corresponding_Discriminant,
+ Corresponding_Equality,
+ Corresponding_Function,
+ Corresponding_Procedure,
+ Corresponding_Record_Component,
+ Corresponding_Record_Type,
+ Corresponding_Remote_Type,
+ CR_Discriminant,
+ Current_Use_Clause,
+ Current_Value,
+ Debug_Info_Off,
+ Debug_Renaming_Link,
+ Default_Aspect_Component_Value,
+ Default_Aspect_Value,
+ Default_Expr_Function,
+ Default_Expressions_Processed,
+ Default_Value,
+ Delay_Cleanups,
+ Delay_Subprogram_Descriptors,
+ Delta_Value,
+ Dependent_Instances,
+ Depends_On_Private,
+ Derived_Type_Link,
+ Digits_Value,
+ Predicated_Parent,
+ Predicates_Ignored,
+ Direct_Primitive_Operations,
+ Directly_Designated_Type,
+ Disable_Controlled,
+ Discard_Names,
+ Discriminal,
+ Discriminal_Link,
+ Discriminant_Checking_Func,
+ Discriminant_Constraint,
+ Discriminant_Default_Value,
+ Discriminant_Number,
+ Dispatch_Table_Wrappers,
+ DT_Entry_Count,
+ DT_Offset_To_Top_Func,
+ DT_Position,
+ DTC_Entity,
+ Elaborate_Body_Desirable,
+ Elaboration_Entity,
+ Elaboration_Entity_Required,
+ Encapsulating_State,
+ Enclosing_Scope,
+ Entry_Accepted,
+ Entry_Bodies_Array,
+ Entry_Cancel_Parameter,
+ Entry_Component,
+ Entry_Formal,
+ Entry_Index_Constant,
+ Entry_Max_Queue_Lengths_Array,
+ Entry_Parameters_Type,
+ Enum_Pos_To_Rep,
+ Enumeration_Pos,
+ Enumeration_Rep,
+ Enumeration_Rep_Expr,
+ Equivalent_Type,
+ Esize,
+ Extra_Accessibility,
+ Extra_Accessibility_Of_Result,
+ Extra_Constrained,
+ Extra_Formal,
+ Extra_Formals,
+ Finalization_Master,
+ Finalize_Storage_Only,
+ Finalizer,
+ First_Entity,
+ First_Exit_Statement,
+ First_Index,
+ First_Literal,
+ First_Private_Entity,
+ First_Rep_Item,
+ Freeze_Node,
+ From_Limited_With,
+ Full_View,
+ Generic_Homonym,
+ Generic_Renamings,
+ Handler_Records,
+ Has_Aliased_Components,
+ Has_Alignment_Clause,
+ Has_All_Calls_Remote,
+ Has_Atomic_Components,
+ Has_Biased_Representation,
+ Has_Completion,
+ Has_Completion_In_Body,
+ Has_Complex_Representation,
+ Has_Component_Size_Clause,
+ Has_Constrained_Partial_View,
+ Has_Contiguous_Rep,
+ Has_Controlled_Component,
+ Has_Controlling_Result,
+ Has_Convention_Pragma,
+ Has_Default_Aspect,
+ Has_Delayed_Aspects,
+ Has_Delayed_Freeze,
+ Has_Delayed_Rep_Aspects,
+ Has_Discriminants,
+ Has_Dispatch_Table,
+ Has_Dynamic_Predicate_Aspect,
+ Has_Enumeration_Rep_Clause,
+ Has_Exit,
+ Has_Expanded_Contract,
+ Has_Forward_Instantiation,
+ Has_Fully_Qualified_Name,
+ Has_Gigi_Rep_Item,
+ Has_Homonym,
+ Has_Implicit_Dereference,
+ Has_Independent_Components,
+ Has_Inheritable_Invariants,
+ Has_Inherited_DIC,
+ Has_Inherited_Invariants,
+ Has_Initial_Value,
+ Has_Loop_Entry_Attributes,
+ Has_Machine_Radix_Clause,
+ Has_Master_Entity,
+ Has_Missing_Return,
+ Has_Nested_Block_With_Handler,
+ Has_Nested_Subprogram,
+ Has_Non_Standard_Rep,
+ Has_Object_Size_Clause,
+ Has_Out_Or_In_Out_Parameter,
+ Has_Own_DIC,
+ Has_Own_Invariants,
+ Has_Partial_Visible_Refinement,
+ Has_Per_Object_Constraint,
+ Has_Pragma_Controlled,
+ Has_Pragma_Elaborate_Body,
+ Has_Pragma_Inline,
+ Has_Pragma_Inline_Always,
+ Has_Pragma_No_Inline,
+ Has_Pragma_Ordered,
+ Has_Pragma_Pack,
+ Has_Pragma_Preelab_Init,
+ Has_Pragma_Pure,
+ Has_Pragma_Pure_Function,
+ Has_Pragma_Thread_Local_Storage,
+ Has_Pragma_Unmodified,
+ Has_Pragma_Unreferenced,
+ Has_Pragma_Unreferenced_Objects,
+ Has_Pragma_Unused,
+ Has_Predicates,
+ Has_Primitive_Operations,
+ Has_Private_Ancestor,
+ Has_Private_Declaration,
+ Has_Private_Extension,
+ Has_Protected,
+ Has_Qualified_Name,
+ Has_RACW,
+ Has_Record_Rep_Clause,
+ Has_Recursive_Call,
+ Has_Shift_Operator,
+ Has_Size_Clause,
+ Has_Small_Clause,
+ Has_Specified_Layout,
+ Has_Specified_Stream_Input,
+ Has_Specified_Stream_Output,
+ Has_Specified_Stream_Read,
+ Has_Specified_Stream_Write,
+ Has_Static_Discriminants,
+ Has_Static_Predicate,
+ Has_Static_Predicate_Aspect,
+ Has_Storage_Size_Clause,
+ Has_Stream_Size_Clause,
+ Has_Task,
+ Has_Timing_Event,
+ Has_Thunks,
+ Has_Unchecked_Union,
+ Has_Unknown_Discriminants,
+ Has_Visible_Refinement,
+ Has_Volatile_Components,
+ Has_Xref_Entry,
+ Has_Yield_Aspect,
+ Hiding_Loop_Variable,
+ Hidden_In_Formal_Instance,
+ Homonym,
+ Ignore_SPARK_Mode_Pragmas,
+ Import_Pragma,
+ Incomplete_Actuals,
+ In_Package_Body,
+ In_Private_Part,
+ In_Use,
+ Initialization_Statements,
+ Inner_Instances,
+ Interface_Alias,
+ Interface_Name,
+ Interfaces,
+ Is_Abstract_Subprogram,
+ Is_Abstract_Type,
+ Is_Access_Constant,
+ Is_Activation_Record,
+ Is_Actual_Subtype,
+ Is_Ada_2005_Only,
+ Is_Ada_2012_Only,
+ Is_Ada_2022_Only,
+ Is_Aliased,
+ Is_Asynchronous,
+ Is_Atomic,
+ Is_Bit_Packed_Array,
+ Is_Called,
+ Is_Character_Type,
+ Is_Checked_Ghost_Entity,
+ Is_Child_Unit,
+ Is_Class_Wide_Equivalent_Type,
+ Is_Compilation_Unit,
+ Is_Completely_Hidden,
+ Is_Concurrent_Record_Type,
+ Is_Constr_Subt_For_U_Nominal,
+ Is_Constr_Subt_For_UN_Aliased,
+ Is_Constrained,
+ Is_Constructor,
+ Is_Controlled_Active,
+ Is_Controlling_Formal,
+ Is_CPP_Class,
+ Is_CUDA_Kernel,
+ Is_Descendant_Of_Address,
+ Is_DIC_Procedure,
+ Is_Discrim_SO_Function,
+ Is_Discriminant_Check_Function,
+ Is_Dispatch_Table_Entity,
+ Is_Dispatching_Operation,
+ Is_Elaboration_Checks_OK_Id,
+ Is_Elaboration_Warnings_OK_Id,
+ Is_Eliminated,
+ Is_Entry_Formal,
+ Is_Entry_Wrapper,
+ Is_Exception_Handler,
+ Is_Exported,
+ Is_Finalized_Transient,
+ Is_First_Subtype,
+ Is_Fixed_Lower_Bound_Array_Subtype,
+ Is_Fixed_Lower_Bound_Index_Subtype,
+ Is_Formal_Subprogram,
+ Is_Frozen,
+ Is_Generic_Actual_Subprogram,
+ Is_Generic_Actual_Type,
+ Is_Generic_Instance,
+ Is_Generic_Type,
+ Is_Hidden,
+ Is_Hidden_Non_Overridden_Subpgm,
+ Is_Hidden_Open_Scope,
+ Is_Ignored_Ghost_Entity,
+ Is_Ignored_Transient,
+ Is_Immediately_Visible,
+ Is_Implementation_Defined,
+ Is_Imported,
+ Is_Independent,
+ Is_Initial_Condition_Procedure,
+ Is_Inlined,
+ Is_Inlined_Always,
+ Is_Instantiated,
+ Is_Interface,
+ Is_Internal,
+ Is_Interrupt_Handler,
+ Is_Intrinsic_Subprogram,
+ Is_Invariant_Procedure,
+ Is_Itype,
+ Is_Known_Non_Null,
+ Is_Known_Null,
+ Is_Known_Valid,
+ Is_Limited_Composite,
+ Is_Limited_Interface,
+ Is_Limited_Record,
+ Is_Local_Anonymous_Access,
+ Is_Loop_Parameter,
+ Is_Machine_Code_Subprogram,
+ Is_Non_Static_Subtype,
+ Is_Null_Init_Proc,
+ Is_Obsolescent,
+ Is_Only_Out_Parameter,
+ Is_Package_Body_Entity,
+ Is_Packed,
+ Is_Packed_Array_Impl_Type,
+ Is_Param_Block_Component_Type,
+ Is_Partial_Invariant_Procedure,
+ Is_Potentially_Use_Visible,
+ Is_Predicate_Function,
+ Is_Predicate_Function_M,
+ Is_Preelaborated,
+ Is_Primitive,
+ Is_Primitive_Wrapper,
+ Is_Private_Composite,
+ Is_Private_Descendant,
+ Is_Private_Primitive,
+ Is_Public,
+ Is_Pure,
+ Is_Pure_Unit_Access_Type,
+ Is_RACW_Stub_Type,
+ Is_Raised,
+ Is_Remote_Call_Interface,
+ Is_Remote_Types,
+ Is_Renaming_Of_Object,
+ Is_Return_Object,
+ Is_Safe_To_Reevaluate,
+ Is_Shared_Passive,
+ Is_Static_Type,
+ Is_Statically_Allocated,
+ Is_Tag,
+ Is_Tagged_Type,
+ Is_Thunk,
+ Is_Trivial_Subprogram,
+ Is_True_Constant,
+ Is_Unchecked_Union,
+ Is_Underlying_Full_View,
+ Is_Underlying_Record_View,
+ Is_Unimplemented,
+ Is_Unsigned_Type,
+ Is_Uplevel_Referenced_Entity,
+ Is_Valued_Procedure,
+ Is_Visible_Formal,
+ Is_Visible_Lib_Unit,
+ Is_Volatile_Type,
+ Is_Volatile_Object,
+ Is_Volatile_Full_Access,
+ Is_Wrapper,
+ Itype_Printed,
+ Kill_Elaboration_Checks,
+ Kill_Range_Checks,
+ Known_To_Have_Preelab_Init,
+ Last_Aggregate_Assignment,
+ Last_Assignment,
+ Last_Entity,
+ Limited_View,
+ Linker_Section_Pragma,
+ Lit_Hash,
+ Lit_Indexes,
+ Lit_Strings,
+ Low_Bound_Tested,
+ LSP_Subprogram,
+ Machine_Radix_10,
+ Master_Id,
+ Materialize_Entity,
+ May_Inherit_Delayed_Rep_Aspects,
+ Mechanism,
+ Minimum_Accessibility,
+ Modulus,
+ Must_Be_On_Byte_Boundary,
+ Must_Have_Preelab_Init,
+ Needs_Activation_Record,
+ Needs_Debug_Info,
+ Needs_No_Actuals,
+ Never_Set_In_Source,
+ Next_Inlined_Subprogram,
+ No_Dynamic_Predicate_On_Actual,
+ No_Pool_Assigned,
+ No_Predicate_On_Actual,
+ No_Reordering,
+ No_Return,
+ No_Strict_Aliasing,
+ No_Tagged_Streams_Pragma,
+ Non_Binary_Modulus,
+ Non_Limited_View,
+ Nonzero_Is_True,
+ Normalized_First_Bit,
+ Normalized_Position,
+ Normalized_Position_Max,
+ OK_To_Rename,
+ Optimize_Alignment_Space,
+ Optimize_Alignment_Time,
+ Original_Access_Type,
+ Original_Array_Type,
+ Original_Protected_Subprogram,
+ Original_Record_Component,
+ Overlays_Constant,
+ Overridden_Operation,
+ Package_Instantiation,
+ Packed_Array_Impl_Type,
+ Parent_Subtype,
+ Part_Of_Constituents,
+ Part_Of_References,
+ Partial_View_Has_Unknown_Discr,
+ Pending_Access_Types,
+ Postconditions_Proc,
+ Prev_Entity,
+ Prival,
+ Prival_Link,
+ Private_Dependents,
+ Protected_Body_Subprogram,
+ Protected_Formal,
+ Protected_Subprogram,
+ Protection_Object,
+ Reachable,
+ Receiving_Entry,
+ Referenced,
+ Referenced_As_LHS,
+ Referenced_As_Out_Parameter,
+ Refinement_Constituents,
+ Register_Exception_Call,
+ Related_Array_Object,
+ Related_Expression,
+ Related_Instance,
+ Related_Type,
+ Relative_Deadline_Variable,
+ Renamed_In_Spec,
+ Renamed_Or_Alias, -- Shared among Alias, Renamed_Entity, Renamed_Object
+ Requires_Overriding,
+ Return_Applies_To,
+ Return_Present,
+ Return_Statement,
+ Returns_By_Ref,
+ Reverse_Bit_Order,
+ Reverse_Storage_Order,
+ Rewritten_For_C,
+ RM_Size,
+ Scalar_Range,
+ Scale_Value,
+ Scope_Depth_Value,
+ Sec_Stack_Needed_For_Return,
+ Shared_Var_Procs_Instance,
+ Size_Check_Code,
+ Size_Depends_On_Discriminant,
+ Size_Known_At_Compile_Time,
+ Small_Value,
+ SPARK_Aux_Pragma,
+ SPARK_Aux_Pragma_Inherited,
+ SPARK_Pragma,
+ SPARK_Pragma_Inherited,
+ Spec_Entity,
+ SSO_Set_High_By_Default,
+ SSO_Set_Low_By_Default,
+ Static_Discrete_Predicate,
+ Static_Elaboration_Desired,
+ Static_Initialization,
+ Static_Real_Or_String_Predicate,
+ Status_Flag_Or_Transient_Decl,
+ Storage_Size_Variable,
+ Stored_Constraint,
+ Stores_Attribute_Old_Prefix,
+ Strict_Alignment,
+ String_Literal_Length,
+ String_Literal_Low_Bound,
+ Subprograms_For_Type,
+ Subps_Index,
+ Suppress_Elaboration_Warnings,
+ Suppress_Initialization,
+ Suppress_Style_Checks,
+ Suppress_Value_Tracking_On_Call,
+ Task_Body_Procedure,
+ Thunk_Entity,
+ Treat_As_Volatile,
+ Underlying_Full_View,
+ Underlying_Record_View,
+ Universal_Aliasing,
+ Unset_Reference,
+ Used_As_Generic_Actual,
+ Uses_Lock_Free,
+ Uses_Sec_Stack,
+ Validated_Object,
+ Warnings_Off,
+ Warnings_Off_Used,
+ Warnings_Off_Used_Unmodified,
+ Warnings_Off_Used_Unreferenced,
+ Was_Hidden,
+ Wrapped_Entity
+
+ -- End of entity fields.
+ ); -- Opt_Field_Enum
+
+ subtype Field_Enum is Opt_Field_Enum
+ range Opt_Field_Enum'Succ (No_Field) .. Opt_Field_Enum'Last;
+ -- Enumeration of fields -- Opt_Field_Enum without the special null value
+ -- No_Field.
+
+ subtype Node_Header_Field is Field_Enum with Predicate =>
+ Node_Header_Field in Nkind .. Link | Ekind;
+
+ use Gen_IL.Types;
+
+ subtype Node_Header_Type is Type_Enum range
+ Node_Kind_Type .. Union_Id;
+ -- Types of node header fields
+
+end Gen_IL.Fields;