diff options
author | Ian Lance Taylor <iant@golang.org> | 2021-09-13 10:37:49 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2021-09-13 10:37:49 -0700 |
commit | e252b51ccde010cbd2a146485d8045103cd99533 (patch) | |
tree | e060f101cdc32bf5e520de8e5275db9d4236b74c /gcc/ada/fe.h | |
parent | f10c7c4596dda99d2ee872c995ae4aeda65adbdf (diff) | |
parent | 104c05c5284b7822d770ee51a7d91946c7e56d50 (diff) | |
download | gcc-e252b51ccde010cbd2a146485d8045103cd99533.zip gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.gz gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.bz2 |
Merge from trunk revision 104c05c5284b7822d770ee51a7d91946c7e56d50.
Diffstat (limited to 'gcc/ada/fe.h')
-rw-r--r-- | gcc/ada/fe.h | 393 |
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 |