a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to the package.
2007-04-20 Javier Miranda <miranda@adacore.com>
* a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
the package.
(Object_Specific_Data_Array): This is now internal to the package.
(Object_Specific_Data): This is now internal to the package.
(Select_Specific_Data_Element): This is now internal to the package.
(Select_Specific_Data_Array): This is now internal to the package.
(Select_Specific_Data): This is now internal to the package.
(Offset_To_Top_Function_Ptr): This is now public.
(To_Offset_To_Top_Function_Ptr): Removed.
(Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
local to subprogram Offset_To_Top.
(Predefined_DT): Removed.
(Typeinfo_Ptr): Removed.
(OSD): This function is now internal to this package.
(SSD): This function is now internal to this package.
(DT): New function that displaces the pointer to the table of primitives
to get access to the enclosing wrapper record.
(IW_Membership): Code cleanup.
(Offset_To_Top): Code cleanup.
(Predefined_DT): Removed.
(Register_Interface_Tag): Removed.
(Set_Interface_Table): Removed.
(Set_Offset_Index): Removed.
(Set_Offset_To_Top): Code cleanup.
(Set_OSD): Removed.
(Set_Signature): Removed.
(Set_SSD): Removed.
(Set_Tagged_Kind): Removed.
(Typeinfo_Ptr): Removed.
(TSD): Removed.
(Displace): Add missing check on null actual.
* exp_disp.ads, exp_disp.adb
(Select_Expansion_Utilities): Removed.
(Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
(Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
the interface requires a new parameter.
(Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
calls to subprograms Build_T, Build_S, etc. by the corresponding code.
Done to remove package Select_Expansion_Utilities.
(Make_DT): New implementation for statically allocated dispatch tables.
(Make_Secondary_DT): Moved to the scope of Make_DT.
(Register_Primitive): Code cleanup plus incoporate the use of the new
function DT_Address_Attribute.
(Expand_Interface_Thunk): The profile of this subprogram has been
changed to return the Thunk_Id and the corresponding code.
(Fill_DT_Entry): Removed. Its functionality is now provided by
subprogram Register_Primitive.
(Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
subprogram Register_Primitive.
(Register_Primitive): New subprogram that incorporates the previous
functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
(Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
was only required to call Make_DT_Access_Action, which is now removed.
(Ada_Actions): Removed
(Action_Is_Proc): Removed
(Action_Nb_Arg): Removed
Replace all the calls to Make_DT_Access_Action by direct calls to
Make_Procedure_Call_Statement or Make_Function_Call.
(Set_DTC_Entity_Value): New subprogram.
(Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
(Expand_Interface_Thunk): Add missing support for primitives that are
functions with a controlling result (case in which there is no need
to generate the thunk).
* exp_atag.ads, exp_atag.adb
(Build_DT): New subprogram that displaces the pointer to reference the
base of the wrapper record.
(Build_Typeinfo_Offset): Removed.
(RTE_Tag_Node): Removed.
(Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
(Build_Get_RC_Offset): Removed.
(Build_Inherit_Predefined_Prims): Removed.
(Build_Inherit_TSD: Removed.
(Build_New_TSD): Removed.
(Build_Set_External_Tag): Removed.
(Build_Set_Predefined_Prim_Op_Address): Add documentation.
(Build_Set_Prim_Op_Address): Add documentation.
(Build_Set_TSD): Removed.
* rtsfind.ads, rtsfind.adb
(Load_Fail): If load fails and we are not in configurable run-time
mode, then raise Unrecoverable_Error.
(Text_IO_Kludge): Generate an error message if a run-time library is
not available in a given run-time (ie. zfp run-time).
(RTE_Record_Component): Add code to check that the component we search
for is not found in two records in the given run-time package.
(RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
(RE_DT_Predef_Prims_Offset): New entity
(RE_Static_Offset_To_Top): New entity
(RE_HT_Link): New entity.
(System_Address_Image): Addition of this run-time package.
(RE_Address_Image): New entity.
(RE_Abstract_Interface): Removed.
(RE_Default_Prim_Op_Count): Removed.
(RE_DT_Entry_Size): Removed.
(RE_DT_Min_Prologue_Size): Removed.
(RE_DT_Prologue_Size): Removed.
(RE_Ifaces_Table_Ptr): Removed.
(RE_Interface_Data_Ptr): Removed.
(RE_Type_Specific_Data): Removed.
(RE_Primary_DT): Removed.
(RE_Register_Interface_Tag): Removed.
(RE_Set_Offset_Index): Removed.
(RE_Set_OSD): Removed.
(RE_Set_SSD): Removed.
(RE_Set_Signature): Removed.
(RE_Set_Tagged_Kind): Removed.
(RE_Address_Array): New entity.
(RE_DT): New entity.
(RE_Iface_Tag): New entity.
(RE_Interfaces_Table): New entity.
(RE_No_Dispatch_Table): New entity.
(RE_NDT_Prims_Ptr): New entity.
(RE_NDT_TSD): New entity.
(RE_Num_Prims): New entity.
(RE_Offset_To_Top_Function_Ptr): New entity.
(RE_OSD_Table): New entity.
(RE_OSD_Num_Prims): New entity.
(RE_Predef_Prims): New entity
(RE_Predef_Prims_Table_Ptr): New entity.
(RE_Primary_DT): New entity.
(RE_Signature): New entity.
(RE_SSD): New entity.
(RE_TSD): New entity.
(RE_Type_Specific_Data): New entity.
(RE_Tag_Kind): New entity.
From-SVN: r125379