diff options
Diffstat (limited to 'gcc/ada/fe.h')
-rw-r--r-- | gcc/ada/fe.h | 261 |
1 files changed, 138 insertions, 123 deletions
diff --git a/gcc/ada/fe.h b/gcc/ada/fe.h index f62d67e..0ccd1a0 100644 --- a/gcc/ada/fe.h +++ b/gcc/ada/fe.h @@ -29,8 +29,14 @@ * * ****************************************************************************/ -/* This file contains declarations to access front-end functions and variables - used by gigi. +/* This is the C header that contains the declarations of Ada subprograms and + variables used by gigi and not declared in other C header files. It was + created manually from Ada specifications. The original Ada declarations + in these specifications must be marked with: + + "WARNING: There is a matching C declaration of this <entity_kind> in fe.h" + + where <entity_kind> is either "subprogram" or "variable". WARNING: functions taking String_Pointer parameters must abide by the rule documented alongside the definition of String_Pointer in types.h. */ @@ -41,23 +47,21 @@ extern "C" { /* atree: */ -#define Serious_Errors_Detected atree__serious_errors_detected +#define Serious_Errors_Detected atree__serious_errors_detected -/* comperr: */ +extern Nat Serious_Errors_Detected; -#define Compiler_Abort comperr__compiler_abort -extern int Compiler_Abort (String_Pointer, String_Pointer, Boolean) ATTRIBUTE_NORETURN; +/* comperr: */ -/* csets: */ +#define Compiler_Abort comperr__compiler_abort -#define Fold_Lower(C) csets__fold_lower[C] -#define Fold_Upper(C) csets__fold_upper[C] -extern char Fold_Lower[], Fold_Upper[]; +extern int Compiler_Abort (String_Pointer, String_Pointer, Boolean) ATTRIBUTE_NORETURN; /* debug: */ #define Debug_Flag_Dot_R debug__debug_flag_dot_r #define Debug_Flag_NN debug__debug_flag_nn + extern Boolean Debug_Flag_Dot_R; extern Boolean Debug_Flag_NN; @@ -81,59 +85,58 @@ 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__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__get_attribute_definition_clause + extern Node_Id Get_Attribute_Definition_Clause (Entity_Id, unsigned char); /* errout: */ -#define Error_Msg_N errout__error_msg_n -#define Error_Msg_NE errout__error_msg_ne -#define Set_Identifier_Casing errout__set_identifier_casing +#define Error_Msg_N errout__error_msg_n +#define Error_Msg_NE errout__error_msg_ne +#define Set_Identifier_Casing errout__set_identifier_casing -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 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 *); /* err_vars: */ -#define Error_Msg_Node_2 err_vars__error_msg_node_2 -#define Error_Msg_Uint_1 err_vars__error_msg_uint_1 -#define Error_Msg_Uint_2 err_vars__error_msg_uint_2 +#define Error_Msg_Uint_1 err_vars__error_msg_uint_1 +#define Error_Msg_Uint_2 err_vars__error_msg_uint_2 -extern Entity_Id Error_Msg_Node_2; -extern Uint Error_Msg_Uint_1; -extern Uint Error_Msg_Uint_2; -extern Nat Serious_Errors_Detected; +extern Uint Error_Msg_Uint_1; +extern Uint Error_Msg_Uint_2; /* exp_ch11: */ -#define Get_Local_Raise_Call_Entity exp_ch11__get_local_raise_call_entity -#define Get_RT_Exception_Entity exp_ch11__get_rt_exception_entity -#define Get_RT_Exception_Name exp_ch11__get_rt_exception_name -#define Warn_If_No_Local_Raise exp_ch11__warn_if_no_local_raise +#define Get_Local_Raise_Call_Entity exp_ch11__get_local_raise_call_entity +#define Get_RT_Exception_Entity exp_ch11__get_rt_exception_entity +#define Get_RT_Exception_Name exp_ch11__get_rt_exception_name +#define Warn_If_No_Local_Raise exp_ch11__warn_if_no_local_raise -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 Warn_If_No_Local_Raise (int); +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 Warn_If_No_Local_Raise (int); /* exp_code: */ -#define Asm_Input_Constraint exp_code__asm_input_constraint -#define Asm_Input_Value exp_code__asm_input_value -#define Asm_Output_Constraint exp_code__asm_output_constraint -#define Asm_Output_Variable exp_code__asm_output_variable -#define Asm_Template exp_code__asm_template -#define Clobber_Get_Next exp_code__clobber_get_next -#define Clobber_Setup exp_code__clobber_setup -#define Is_Asm_Volatile exp_code__is_asm_volatile -#define Next_Asm_Input exp_code__next_asm_input -#define Next_Asm_Output exp_code__next_asm_output -#define Setup_Asm_Inputs exp_code__setup_asm_inputs -#define Setup_Asm_Outputs exp_code__setup_asm_outputs +#define Asm_Input_Constraint exp_code__asm_input_constraint +#define Asm_Input_Value exp_code__asm_input_value +#define Asm_Output_Constraint exp_code__asm_output_constraint +#define Asm_Output_Variable exp_code__asm_output_variable +#define Asm_Template exp_code__asm_template +#define Clobber_Get_Next exp_code__clobber_get_next +#define Clobber_Setup exp_code__clobber_setup +#define Is_Asm_Volatile exp_code__is_asm_volatile +#define Next_Asm_Input exp_code__next_asm_input +#define Next_Asm_Output exp_code__next_asm_output +#define Setup_Asm_Inputs exp_code__setup_asm_inputs +#define Setup_Asm_Outputs exp_code__setup_asm_outputs extern Node_Id Asm_Input_Constraint (void); extern Node_Id Asm_Input_Value (void); @@ -150,22 +153,24 @@ extern void Setup_Asm_Outputs (Node_Id); /* exp_dbug: */ -#define Get_Encoded_Name exp_dbug__get_encoded_name -#define Get_External_Name exp_dbug__get_external_name +#define Get_Encoded_Name exp_dbug__get_encoded_name +#define Get_External_Name exp_dbug__get_external_name +#define Get_Variant_Encoding exp_dbug__get_variant_encoding -extern void Get_Encoded_Name (Entity_Id); -extern void Get_External_Name (Entity_Id, Boolean, String_Pointer); +extern void Get_Encoded_Name (Entity_Id); +extern void Get_External_Name (Entity_Id, Boolean, String_Pointer); +extern void Get_Variant_Encoding (Entity_Id); /* exp_tss: */ -#define Is_Init_Proc exp_tss__is_init_proc +#define Is_Init_Proc exp_tss__is_init_proc extern Boolean Is_Init_Proc (Entity_Id); /* exp_util: */ -#define Is_Fully_Repped_Tagged_Type exp_util__is_fully_repped_tagged_type -#define Find_Interface_Tag exp_util__find_interface_tag +#define Is_Fully_Repped_Tagged_Type exp_util__is_fully_repped_tagged_type +#define Find_Interface_Tag exp_util__find_interface_tag extern Boolean Is_Fully_Repped_Tagged_Type (Entity_Id); extern Entity_Id Find_Interface_Tag (Entity_Id, Entity_Id); @@ -175,26 +180,23 @@ extern Entity_Id Find_Interface_Tag (Entity_Id, Entity_Id); #define Cunit lib__cunit #define Ident_String lib__ident_string #define In_Extended_Main_Code_Unit lib__in_extended_main_code_unit -#define In_Same_Source_Unit lib__in_same_source_unit extern Node_Id Cunit (Unit_Number_Type); extern Node_Id Ident_String (Unit_Number_Type); extern Boolean In_Extended_Main_Code_Unit (Entity_Id); -extern Boolean In_Same_Source_Unit (Node_Id, Node_Id); /* opt: */ -#define Back_End_Inlining opt__back_end_inlining -#define Debug_Generated_Code opt__debug_generated_code -#define Exception_Extra_Info opt__exception_extra_info -#define Exception_Locations_Suppressed opt__exception_locations_suppressed -#define Exception_Mechanism opt__exception_mechanism -#define Float_Format opt__float_format -#define Generate_SCO_Instance_Table opt__generate_sco_instance_table -#define GNAT_Mode opt__gnat_mode -#define List_Representation_Info opt__list_representation_info -#define No_Strict_Aliasing_CP opt__no_strict_aliasing -#define Suppress_Checks opt__suppress_checks +#define Back_End_Inlining opt__back_end_inlining +#define Debug_Generated_Code opt__debug_generated_code +#define Exception_Extra_Info opt__exception_extra_info +#define Exception_Locations_Suppressed opt__exception_locations_suppressed +#define Exception_Mechanism opt__exception_mechanism +#define Generate_SCO_Instance_Table opt__generate_sco_instance_table +#define GNAT_Mode opt__gnat_mode +#define List_Representation_Info opt__list_representation_info +#define No_Strict_Aliasing_CP opt__no_strict_aliasing +#define Suppress_Checks opt__suppress_checks typedef enum { Front_End_SJLJ, Back_End_ZCX, Back_End_SJLJ @@ -205,122 +207,135 @@ extern Boolean Debug_Generated_Code; extern Boolean Exception_Extra_Info; extern Boolean Exception_Locations_Suppressed; extern Exception_Mechanism_Type Exception_Mechanism; -extern Char Float_Format; extern Boolean Generate_SCO_Instance_Table; extern Boolean GNAT_Mode; extern Int List_Representation_Info; extern Boolean No_Strict_Aliasing_CP; extern Boolean Suppress_Checks; -#define ZCX_Exceptions opt__zcx_exceptions -#define SJLJ_Exceptions opt__sjlj_exceptions -#define Front_End_Exceptions opt__front_end_exceptions -#define Back_End_Exceptions opt__back_end_exceptions +#define ZCX_Exceptions opt__zcx_exceptions +#define SJLJ_Exceptions opt__sjlj_exceptions +#define Front_End_Exceptions opt__front_end_exceptions +#define Back_End_Exceptions opt__back_end_exceptions -extern Boolean ZCX_Exceptions (void); -extern Boolean SJLJ_Exceptions (void); -extern Boolean Front_End_Exceptions (void); -extern Boolean Back_End_Exceptions (void); +extern Boolean ZCX_Exceptions (void); +extern Boolean SJLJ_Exceptions (void); +extern Boolean Front_End_Exceptions (void); +extern Boolean Back_End_Exceptions (void); /* restrict: */ -#define No_Exception_Handlers_Set restrict__no_exception_handlers_set -#define Check_No_Implicit_Heap_Alloc restrict__check_no_implicit_heap_alloc -#define Check_No_Implicit_Task_Alloc restrict__check_no_implicit_task_alloc -#define Check_No_Implicit_Protected_Alloc restrict__check_no_implicit_protected_alloc -#define Check_Elaboration_Code_Allowed restrict__check_elaboration_code_allowed -#define Check_Implicit_Dynamic_Code_Allowed restrict__check_implicit_dynamic_code_allowed - -extern Boolean No_Exception_Handlers_Set (void); -extern void Check_No_Implicit_Heap_Alloc (Node_Id); -extern void Check_No_Implicit_Task_Alloc (Node_Id); -extern void Check_No_Implicit_Protected_Alloc (Node_Id); -extern void Check_Elaboration_Code_Allowed (Node_Id); -extern void Check_Implicit_Dynamic_Code_Allowed (Node_Id); +#define Check_Elaboration_Code_Allowed \ + restrict__check_elaboration_code_allowed +#define Check_Implicit_Dynamic_Code_Allowed \ + restrict__check_implicit_dynamic_code_allowed +#define Check_No_Implicit_Heap_Alloc \ + restrict__check_no_implicit_heap_alloc +#define Check_No_Implicit_Protected_Alloc \ + restrict__check_no_implicit_protected_alloc +#define Check_No_Implicit_Task_Alloc \ + restrict__check_no_implicit_task_alloc +#define No_Exception_Handlers_Set \ + restrict__no_exception_handlers_set + +extern void Check_Elaboration_Code_Allowed (Node_Id); +extern void Check_Implicit_Dynamic_Code_Allowed (Node_Id); +extern void Check_No_Implicit_Heap_Alloc (Node_Id); +extern void Check_No_Implicit_Protected_Alloc (Node_Id); +extern void Check_No_Implicit_Task_Alloc (Node_Id); +extern Boolean No_Exception_Handlers_Set (void); /* sem_aggr: */ -#define Is_Others_Aggregate sem_aggr__is_others_aggregate +#define Is_Others_Aggregate sem_aggr__is_others_aggregate -extern Boolean Is_Others_Aggregate (Node_Id); +extern Boolean Is_Others_Aggregate (Node_Id); /* sem_aux: */ -#define Ancestor_Subtype sem_aux__ancestor_subtype -#define Constant_Value sem_aux__constant_value -#define First_Discriminant sem_aux__first_discriminant -#define First_Stored_Discriminant sem_aux__first_stored_discriminant -#define First_Subtype sem_aux__first_subtype -#define Is_By_Reference_Type sem_aux__is_by_reference_type -#define Is_Derived_Type sem_aux__is_derived_type - -extern Entity_Id Ancestor_Subtype (Entity_Id); -extern Node_Id Constant_Value (Entity_Id); -extern Entity_Id First_Discriminant (Entity_Id); -extern Entity_Id First_Stored_Discriminant (Entity_Id); -extern Entity_Id First_Subtype (Entity_Id); -extern Boolean Is_By_Reference_Type (Entity_Id); -extern Boolean Is_Derived_Type (Entity_Id); +#define Ancestor_Subtype sem_aux__ancestor_subtype +#define Constant_Value sem_aux__constant_value +#define First_Discriminant sem_aux__first_discriminant +#define First_Stored_Discriminant sem_aux__first_stored_discriminant +#define First_Subtype sem_aux__first_subtype +#define Is_By_Reference_Type sem_aux__is_by_reference_type +#define Is_Derived_Type sem_aux__is_derived_type + +extern Entity_Id Ancestor_Subtype (Entity_Id); +extern Node_Id Constant_Value (Entity_Id); +extern Entity_Id First_Discriminant (Entity_Id); +extern Entity_Id First_Stored_Discriminant (Entity_Id); +extern Entity_Id First_Subtype (Entity_Id); +extern Boolean Is_By_Reference_Type (Entity_Id); +extern Boolean Is_Derived_Type (Entity_Id); /* sem_eval: */ #define Compile_Time_Known_Value sem_eval__compile_time_known_value -#define Expr_Value sem_eval__expr_value -#define Expr_Value_S sem_eval__expr_value_s #define Is_OK_Static_Expression sem_eval__is_ok_static_expression -#define Is_OK_Static_Subtype sem_eval__is_ok_static_subtype -extern Uint Expr_Value (Node_Id); -extern Node_Id Expr_Value_S (Node_Id); -extern Boolean Compile_Time_Known_Value (Node_Id); -extern Boolean Is_OK_Static_Expression (Node_Id); -extern Boolean Is_OK_Static_Subtype (Entity_Id); +extern Boolean Compile_Time_Known_Value (Node_Id); +extern Boolean Is_OK_Static_Expression (Node_Id); /* sem_util: */ #define Defining_Entity sem_util__defining_entity #define First_Actual sem_util__first_actual -#define Next_Actual sem_util__next_actual #define Is_Atomic_Object sem_util__is_atomic_object #define Is_Variable_Size_Record sem_util__is_variable_size_record #define Is_Volatile_Object sem_util__is_volatile_object +#define Next_Actual sem_util__next_actual #define Requires_Transient_Scope sem_util__requires_transient_scope extern Entity_Id Defining_Entity (Node_Id); extern Node_Id First_Actual (Node_Id); -extern Node_Id Next_Actual (Node_Id); extern Boolean Is_Atomic_Object (Node_Id); extern Boolean Is_Variable_Size_Record (Entity_Id Id); extern Boolean Is_Volatile_Object (Node_Id); +extern Node_Id Next_Actual (Node_Id); 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_Has_No_Elaboration_Code sinfo__set_has_no_elaboration_code #define Set_Present_Expr sinfo__set_present_expr extern Source_Ptr End_Location (Node_Id); extern void Set_Has_No_Elaboration_Code (Node_Id, Boolean); extern void Set_Present_Expr (Node_Id, Uint); +/* sinput: */ + +#define Debug_Source_Name sinput__debug_source_name +#define Get_Column_Number sinput__get_column_number +#define Get_Logical_Line_Number sinput__get_logical_line_number +#define Get_Source_File_Index sinput__get_source_file_index + +extern File_Name_Type Debug_Source_Name (Source_File_Index); +extern Column_Number_Type Get_Column_Number (Source_Ptr); +extern Line_Number_Type Get_Logical_Line_Number (Source_Ptr); +extern Source_File_Index Get_Source_File_Index (Source_Ptr); + /* targparm: */ -#define Backend_Overflow_Checks_On_Target targparm__backend_overflow_checks_on_target -#define Machine_Overflows_On_Target targparm__machine_overflows_on_target -#define Signed_Zeros_On_Target targparm__signed_zeros_on_target -#define Stack_Check_Probes_On_Target targparm__stack_check_probes_on_target -#define Stack_Check_Limits_On_Target targparm__stack_check_limits_on_target +#define Machine_Overflows_On_Target \ + targparm__machine_overflows_on_target +#define Signed_Zeros_On_Target \ + targparm__signed_zeros_on_target +#define Stack_Check_Limits_On_Target \ + targparm__stack_check_limits_on_target +#define Stack_Check_Probes_On_Target \ + targparm__stack_check_probes_on_target -extern Boolean Backend_Overflow_Checks_On_Target; extern Boolean Machine_Overflows_On_Target; extern Boolean Signed_Zeros_On_Target; -extern Boolean Stack_Check_Probes_On_Target; extern Boolean Stack_Check_Limits_On_Target; +extern Boolean Stack_Check_Probes_On_Target; /* warnsw: */ -#define Warn_On_Questionable_Layout warnsw__warn_on_questionable_layout +#define Warn_On_Questionable_Layout warnsw__warn_on_questionable_layout extern Boolean Warn_On_Questionable_Layout; |