aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/fe.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/fe.h')
-rw-r--r--gcc/ada/fe.h393
1 files changed, 374 insertions, 19 deletions
diff --git a/gcc/ada/fe.h b/gcc/ada/fe.h
index 858a28a..4517c59 100644
--- a/gcc/ada/fe.h
+++ b/gcc/ada/fe.h
@@ -6,7 +6,7 @@
* *
* C Header File *
* *
- * Copyright (C) 1992-2020, Free Software Foundation, Inc. *
+ * Copyright (C) 1992-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- *
@@ -55,7 +55,7 @@ extern Nat Serious_Errors_Detected;
#define Compiler_Abort comperr__compiler_abort
-extern int Compiler_Abort (String_Pointer, String_Pointer, Boolean) ATTRIBUTE_NORETURN;
+extern void Compiler_Abort (String_Pointer, String_Pointer, Boolean) ATTRIBUTE_NORETURN;
/* debug: */
@@ -69,14 +69,14 @@ extern Boolean Debug_Flag_NN;
/* einfo: */
-#define Set_Alignment einfo__set_alignment
-#define Set_Component_Bit_Offset einfo__set_component_bit_offset
-#define Set_Component_Size einfo__set_component_size
-#define Set_Esize einfo__set_esize
-#define Set_Mechanism einfo__set_mechanism
-#define Set_Normalized_First_Bit einfo__set_normalized_first_bit
-#define Set_Normalized_Position einfo__set_normalized_position
-#define Set_RM_Size einfo__set_rm_size
+#define Set_Alignment einfo__entities__set_alignment
+#define Set_Component_Bit_Offset einfo__entities__set_component_bit_offset
+#define Set_Component_Size einfo__entities__set_component_size
+#define Set_Esize einfo__entities__set_esize
+#define Set_Mechanism einfo__entities__set_mechanism
+#define Set_Normalized_First_Bit einfo__entities__set_normalized_first_bit
+#define Set_Normalized_Position einfo__entities__set_normalized_position
+#define Set_RM_Size einfo__entities__set_rm_size
extern void Set_Alignment (Entity_Id, Uint);
extern void Set_Component_Bit_Offset (Entity_Id, Uint);
@@ -87,11 +87,11 @@ extern void Set_Normalized_First_Bit (Entity_Id, Uint);
extern void Set_Normalized_Position (Entity_Id, Uint);
extern void Set_RM_Size (Entity_Id, Uint);
-#define Is_Entity_Name einfo__is_entity_name
+#define Is_Entity_Name einfo__utils__is_entity_name
extern Boolean Is_Entity_Name (Node_Id);
-#define Get_Attribute_Definition_Clause einfo__get_attribute_definition_clause
+#define Get_Attribute_Definition_Clause einfo__utils__get_attribute_definition_clause
extern Node_Id Get_Attribute_Definition_Clause (Entity_Id, unsigned char);
@@ -103,7 +103,7 @@ extern Node_Id Get_Attribute_Definition_Clause (Entity_Id, unsigned char);
extern void Error_Msg_N (String_Pointer, Node_Id);
extern void Error_Msg_NE (String_Pointer, Node_Id, Entity_Id);
-extern void Set_Identifier_Casing (Char *, const Char *);
+extern void Set_Identifier_Casing (void *, const void *);
/* err_vars: */
@@ -122,7 +122,7 @@ extern Uint Error_Msg_Uint_2;
extern Entity_Id Get_Local_Raise_Call_Entity (void);
extern Entity_Id Get_RT_Exception_Entity (int);
-extern void Get_RT_Exception_Name (int);
+extern void Get_RT_Exception_Name (enum RT_Exception_Code);
extern void Warn_If_No_Local_Raise (int);
/* exp_code: */
@@ -145,7 +145,7 @@ extern Node_Id Asm_Input_Value (void);
extern Node_Id Asm_Output_Constraint (void);
extern Node_Id Asm_Output_Variable (void);
extern Node_Id Asm_Template (Node_Id);
-extern char *Clobber_Get_Next (void);
+extern void *Clobber_Get_Next (void);
extern void Clobber_Setup (Node_Id);
extern Boolean Is_Asm_Volatile (Node_Id);
extern void Next_Asm_Input (void);
@@ -190,6 +190,7 @@ extern Boolean In_Extended_Main_Code_Unit (Entity_Id);
/* opt: */
#define Ada_Version opt__ada_version
+#define Assume_No_Invalid_Values opt__assume_no_invalid_values
#define Back_End_Inlining opt__back_end_inlining
#define Debug_Generated_Code opt__debug_generated_code
#define Enable_128bit_Types opt__enable_128bit_types
@@ -203,7 +204,7 @@ extern Boolean In_Extended_Main_Code_Unit (Entity_Id);
#define Suppress_Checks opt__suppress_checks
typedef enum {
- Ada_83, Ada_95, Ada_2005, Ada_2012, Ada_2020
+ Ada_83, Ada_95, Ada_2005, Ada_2012, Ada_2022, Ada_With_Extensions
} Ada_Version_Type;
typedef enum {
@@ -211,6 +212,7 @@ typedef enum {
} Exception_Mechanism_Type;
extern Ada_Version_Type Ada_Version;
+extern Boolean Assume_No_Invalid_Values;
extern Boolean Back_End_Inlining;
extern Boolean Debug_Generated_Code;
extern Boolean Enable_128bit_Types;
@@ -301,9 +303,9 @@ extern Boolean Requires_Transient_Scope (Entity_Id);
/* sinfo: */
-#define End_Location sinfo__end_location
-#define Set_Has_No_Elaboration_Code sinfo__set_has_no_elaboration_code
-#define Set_Present_Expr sinfo__set_present_expr
+#define End_Location sinfo__utils__end_location
+#define Set_Has_No_Elaboration_Code sinfo__nodes__set_has_no_elaboration_code
+#define Set_Present_Expr sinfo__nodes__set_present_expr
extern Source_Ptr End_Location (Node_Id);
extern void Set_Has_No_Elaboration_Code (Node_Id, Boolean);
@@ -343,6 +345,359 @@ extern Boolean Stack_Check_Probes_On_Target;
extern Boolean Warn_On_Questionable_Layout;
+// The following corresponds to Ada code in Einfo.Utils.
+
+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;
+
+#define Is_Access_Object_Type einfo__utils__is_access_object_type
+B Is_Access_Object_Type (E Id);
+
+#define Is_Named_Access_Type einfo__utils__is_named_access_type
+B Is_Named_Access_Type (E Id);
+
+#define Address_Clause einfo__utils__address_clause
+N Address_Clause (E Id);
+
+#define Aft_Value einfo__utils__aft_value
+U Aft_Value (E Id);
+
+#define Alignment_Clause einfo__utils__alignment_clause
+N Alignment_Clause (E Id);
+
+#define Base_Type einfo__utils__base_type
+E Base_Type (E Id);
+
+#define Declaration_Node einfo__utils__declaration_node
+N Declaration_Node (E Id);
+
+#define Designated_Type einfo__utils__designated_type
+E Designated_Type (E Id);
+
+#define First_Component einfo__utils__first_component
+E First_Component (E Id);
+
+#define First_Component_Or_Discriminant einfo__utils__first_component_or_discriminant
+E First_Component_Or_Discriminant (E Id);
+
+#define First_Formal einfo__utils__first_formal
+E First_Formal (E Id);
+
+#define First_Formal_With_Extras einfo__utils__first_formal_with_extras
+E First_Formal_With_Extras (E Id);
+
+#define Has_Attach_Handler einfo__utils__has_attach_handler
+B Has_Attach_Handler (E Id);
+
+#define Has_Entries einfo__utils__has_entries
+B Has_Entries (E Id);
+
+#define Has_Foreign_Convention einfo__utils__has_foreign_convention
+B Has_Foreign_Convention (E Id);
+
+#define Has_Interrupt_Handler einfo__utils__has_interrupt_handler
+B Has_Interrupt_Handler (E Id);
+
+#define Has_Non_Limited_View einfo__utils__has_non_limited_view
+B Has_Non_Limited_View (E Id);
+
+#define Has_Non_Null_Abstract_State einfo__utils__has_non_null_abstract_state
+B Has_Non_Null_Abstract_State (E Id);
+
+#define Has_Non_Null_Visible_Refinement einfo__utils__has_non_null_visible_refinement
+B Has_Non_Null_Visible_Refinement (E Id);
+
+#define Has_Null_Abstract_State einfo__utils__has_null_abstract_state
+B Has_Null_Abstract_State (E Id);
+
+#define Has_Null_Visible_Refinement einfo__utils__has_null_visible_refinement
+B Has_Null_Visible_Refinement (E Id);
+
+#define Implementation_Base_Type einfo__utils__implementation_base_type
+E Implementation_Base_Type (E Id);
+
+#define Is_Base_Type einfo__utils__is_base_type
+B Is_Base_Type (E Id);
+
+#define Is_Boolean_Type einfo__utils__is_boolean_type
+B Is_Boolean_Type (E Id);
+
+#define Is_Constant_Object einfo__utils__is_constant_object
+B Is_Constant_Object (E Id);
+
+#define Is_Controlled einfo__utils__is_controlled
+B Is_Controlled (E Id);
+
+#define Is_Discriminal einfo__utils__is_discriminal
+B Is_Discriminal (E Id);
+
+#define Is_Dynamic_Scope einfo__utils__is_dynamic_scope
+B Is_Dynamic_Scope (E Id);
+
+#define Is_Elaboration_Target einfo__utils__is_elaboration_target
+B Is_Elaboration_Target (E Id);
+
+#define Is_External_State einfo__utils__is_external_state
+B Is_External_State (E Id);
+
+#define Is_Finalizer einfo__utils__is_finalizer
+B Is_Finalizer (E Id);
+
+#define Is_Null_State einfo__utils__is_null_state
+B Is_Null_State (E Id);
+
+#define Is_Package_Or_Generic_Package einfo__utils__is_package_or_generic_package
+B Is_Package_Or_Generic_Package (E Id);
+
+#define Is_Packed_Array einfo__utils__is_packed_array
+B Is_Packed_Array (E Id);
+
+#define Is_Prival einfo__utils__is_prival
+B Is_Prival (E Id);
+
+#define Is_Protected_Component einfo__utils__is_protected_component
+B Is_Protected_Component (E Id);
+
+#define Is_Protected_Interface einfo__utils__is_protected_interface
+B Is_Protected_Interface (E Id);
+
+#define Is_Protected_Record_Type einfo__utils__is_protected_record_type
+B Is_Protected_Record_Type (E Id);
+
+#define Is_Relaxed_Initialization_State einfo__utils__is_relaxed_initialization_state
+B Is_Relaxed_Initialization_State (E Id);
+
+#define Is_Standard_Character_Type einfo__utils__is_standard_character_type
+B Is_Standard_Character_Type (E Id);
+
+#define Is_Standard_String_Type einfo__utils__is_standard_string_type
+B Is_Standard_String_Type (E Id);
+
+#define Is_String_Type einfo__utils__is_string_type
+B Is_String_Type (E Id);
+
+#define Is_Synchronized_Interface einfo__utils__is_synchronized_interface
+B Is_Synchronized_Interface (E Id);
+
+#define Is_Synchronized_State einfo__utils__is_synchronized_state
+B Is_Synchronized_State (E Id);
+
+#define Is_Task_Interface einfo__utils__is_task_interface
+B Is_Task_Interface (E Id);
+
+#define Is_Task_Record_Type einfo__utils__is_task_record_type
+B Is_Task_Record_Type (E Id);
+
+#define Is_Wrapper_Package einfo__utils__is_wrapper_package
+B Is_Wrapper_Package (E Id);
+
+#define Last_Formal einfo__utils__last_formal
+E Last_Formal (E Id);
+
+#define Machine_Emax_Value einfo__utils__machine_emax_value
+U Machine_Emax_Value (E Id);
+
+#define Machine_Emin_Value einfo__utils__machine_emin_value
+U Machine_Emin_Value (E Id);
+
+#define Machine_Mantissa_Value einfo__utils__machine_mantissa_value
+U Machine_Mantissa_Value (E Id);
+
+#define Machine_Radix_Value einfo__utils__machine_radix_value
+U Machine_Radix_Value (E Id);
+
+#define Model_Emin_Value einfo__utils__model_emin_value
+U Model_Emin_Value (E Id);
+
+#define Model_Epsilon_Value einfo__utils__model_epsilon_value
+R Model_Epsilon_Value (E Id);
+
+#define Model_Mantissa_Value einfo__utils__model_mantissa_value
+U Model_Mantissa_Value (E Id);
+
+#define Model_Small_Value einfo__utils__model_small_value
+R Model_Small_Value (E Id);
+
+#define Next_Component einfo__utils__next_component
+E Next_Component (E Id);
+
+#define Next_Component_Or_Discriminant einfo__utils__next_component_or_discriminant
+E Next_Component_Or_Discriminant (E Id);
+
+#define Next_Discriminant einfo__utils__next_discriminant
+E Next_Discriminant (E Id);
+
+#define Next_Formal einfo__utils__next_formal
+E Next_Formal (E Id);
+
+#define Next_Formal_With_Extras einfo__utils__next_formal_with_extras
+E Next_Formal_With_Extras (E Id);
+
+#define Number_Dimensions einfo__utils__number_dimensions
+Pos Number_Dimensions (E Id);
+
+#define Number_Entries einfo__utils__number_entries
+Nat Number_Entries (E Id);
+
+#define Number_Formals einfo__utils__number_formals
+Pos Number_Formals (E Id);
+
+#define Object_Size_Clause einfo__utils__object_size_clause
+N Object_Size_Clause (E Id);
+
+#define Partial_Refinement_Constituents einfo__utils__partial_refinement_constituents
+L Partial_Refinement_Constituents (E Id);
+
+#define Primitive_Operations einfo__utils__primitive_operations
+L Primitive_Operations (E Id);
+
+#define Root_Type einfo__utils__root_type
+E Root_Type (E Id);
+
+#define Safe_Emax_Value einfo__utils__safe_emax_value
+U Safe_Emax_Value (E Id);
+
+#define Safe_First_Value einfo__utils__safe_first_value
+R Safe_First_Value (E Id);
+
+#define Safe_Last_Value einfo__utils__safe_last_value
+R Safe_Last_Value (E Id);
+
+#define Scope_Depth einfo__utils__scope_depth
+U Scope_Depth (E Id);
+
+#define Scope_Depth_Set einfo__utils__scope_depth_set
+B Scope_Depth_Set (E Id);
+
+#define Size_Clause einfo__utils__size_clause
+N Size_Clause (E Id);
+
+#define Stream_Size_Clause einfo__utils__stream_size_clause
+N Stream_Size_Clause (E Id);
+
+#define Type_High_Bound einfo__utils__type_high_bound
+N Type_High_Bound (E Id);
+
+#define Type_Low_Bound einfo__utils__type_low_bound
+N Type_Low_Bound (E Id);
+
+#define Underlying_Type einfo__utils__underlying_type
+E Underlying_Type (E Id);
+
+#define Known_Alignment einfo__utils__known_alignment
+B Known_Alignment (Entity_Id E);
+
+#define Known_Component_Bit_Offset einfo__utils__known_component_bit_offset
+B Known_Component_Bit_Offset (Entity_Id E);
+
+#define Known_Component_Size einfo__utils__known_component_size
+B Known_Component_Size (Entity_Id E);
+
+#define Known_Esize einfo__utils__known_esize
+B Known_Esize (Entity_Id E);
+
+#define Known_Normalized_First_Bit einfo__utils__known_normalized_first_bit
+B Known_Normalized_First_Bit (Entity_Id E);
+
+#define Known_Normalized_Position einfo__utils__known_normalized_position
+B Known_Normalized_Position (Entity_Id E);
+
+#define Known_Normalized_Position_Max einfo__utils__known_normalized_position_max
+B Known_Normalized_Position_Max (Entity_Id E);
+
+#define Known_RM_Size einfo__utils__known_rm_size
+B Known_RM_Size (Entity_Id E);
+
+#define Known_Static_Component_Bit_Offset einfo__utils__known_static_component_bit_offset
+B Known_Static_Component_Bit_Offset (Entity_Id E);
+
+#define Known_Static_Component_Size einfo__utils__known_static_component_size
+B Known_Static_Component_Size (Entity_Id E);
+
+#define Known_Static_Esize einfo__utils__known_static_esize
+B Known_Static_Esize (Entity_Id E);
+
+#define Known_Static_Normalized_First_Bit einfo__utils__known_static_normalized_first_bit
+B Known_Static_Normalized_First_Bit (Entity_Id E);
+
+#define Known_Static_Normalized_Position einfo__utils__known_static_normalized_position
+B Known_Static_Normalized_Position (Entity_Id E);
+
+#define Known_Static_Normalized_Position_Max einfo__utils__known_static_normalized_position_max
+B Known_Static_Normalized_Position_Max (Entity_Id E);
+
+#define Known_Static_RM_Size einfo__utils__known_static_rm_size
+B Known_Static_RM_Size (Entity_Id E);
+
+#define Copy_Alignment einfo__utils__copy_alignment
+B Copy_Alignment(Entity_Id To, Entity_Id From);
+
+#define Is_Discrete_Or_Fixed_Point_Type einfo__utils__is_discrete_or_fixed_point_type
+B Is_Discrete_Or_Fixed_Point_Type (E Id);
+
+#define Is_Floating_Point_Type einfo__utils__is_floating_point_type
+B Is_Floating_Point_Type (E Id);
+
+#define Is_Record_Type einfo__utils__is_record_type
+B Is_Record_Type (E Id);
+
+#define Has_DIC einfo__utils__has_dic
+B Has_DIC (E Id);
+
+#define Has_Invariants einfo__utils__has_invariants
+B Has_Invariants (E Id);
+
+#define Is_Full_Access einfo__utils__is_full_access
+B Is_Full_Access (E Id);
+
+#define Next_Index einfo__utils__next_index
+Node_Id Next_Index (Node_Id Id);
+
+#define Next_Literal einfo__utils__next_literal
+E Next_Literal (E Id);
+
+#define Next_Stored_Discriminant einfo__utils__next_stored_discriminant
+E Next_Stored_Discriminant (E Id);
+
+#define Parameter_Mode einfo__utils__parameter_mode
+// Parameter_Mode really returns Formal_Kind, but that is not visible, because
+// fe.h is included before einfo.h.
+Entity_Kind Parameter_Mode (E Id);
+
+#define Is_List_Member einfo__utils__is_list_member
+B Is_List_Member (N Node);
+
+#define List_Containing einfo__utils__list_containing
+S List_Containing (N Node);
+
+// The following is needed because Convention in Sem_Util is a renaming
+// of Basic_Convention.
+
+#define Convention einfo__entities__basic_convention
+Convention_Id Convention (N Node);
+
+// See comments regarding Entity_Or_Associated_Node in Sinfo.Utils.
+
+#define Entity sinfo__nodes__entity_or_associated_node
+Entity_Id Entity (N Node);
+
+// See comments regarding Renamed_Or_Alias in Einfo.Utils
+
+#define Alias einfo__entities__renamed_or_alias
+
+#define Renamed_Entity einfo__entities__renamed_or_alias
+Node_Id Renamed_Entity (N Node);
+
+#define Renamed_Object einfo__entities__renamed_or_alias
+Node_Id Renamed_Object (N Node);
+
#ifdef __cplusplus
}
#endif