blob: 83c71800b5a5af5de2e2a00ce35c3dc51de48af5 [file] [log] [blame]
------------------------------------------------------------------------------
-- --
-- GNAT COMPILER COMPONENTS --
-- --
-- G E N _ I L . F I E L D S --
-- --
-- S p e c --
-- --
-- Copyright (C) 2020-2022, 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. --
-- --
------------------------------------------------------------------------------
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_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,
Char_Literal_Value,
Chars,
Check_Address_Alignment,
Choice_Parameter,
Choices,
Class_Present,
Classifications,
Cleanup_Actions,
Comes_From_Check_Or_Contract,
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,
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_Subtype_Link,
Float_Truncate,
Formal_Type_Definition,
Forwards_OK,
From_Aspect_Specification,
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_Parenthesis_Aggregate,
Is_Enum_Array_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_Postconditions,
Class_Preconditions,
Class_Preconditions_Subprogram,
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,
Dynamic_Call_Helper,
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,
Ignored_Class_Postconditions,
Ignored_Class_Preconditions,
Ignore_SPARK_Mode_Pragmas,
Import_Pragma,
Incomplete_Actuals,
Indirect_Call_Wrapper,
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_Class_Wide_Wrapper,
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_Dispatch_Table_Wrapper,
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_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,
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,
Predicate_Expression,
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_Call_Helper,
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,
Wrapped_Statements
-- 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.
end Gen_IL.Fields;