This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

r111059 - in /trunk/gcc/ada: a-tags.adb a-tags....

Author: charlet
Date: Wed Feb 15 09:38:00 2006
New Revision: 111059

2006-02-13  Javier Miranda  <>
	    Gary Dismukes  <>

	* exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
	availability of RE_Interface_Tag.
	(Build_Initialization_Call): Fix wrong access to the discriminant value.
	(Freeze_Record_Type): Do not generate the tables associated with
	timed and conditional dispatching calls through synchronized
	interfaces if compiling under No_Dispatching_Calls restriction.
	When compiling for Ada 2005, for a nonabstract
	type with a null extension, call Make_Controlling_Function_Wrappers
	and insert the wrapper function declarations and bodies (the latter
	being appended as freeze actions).
	(Predefined_Primitive_Bodies): Do not generate the bodies of the
	predefined primitives associated with timed and conditional
	dispatching calls through synchronized interfaces if we are
	compiling under No_Dispatching_Calls.
	(Build_Init_Procedure):  Use RTE_Available to check if a run-time
	service is available before generating a call.
	(Make_Controlling_Function_Wrappers): New procedure.
	(Expand_N_Full_Type_Declaration): Create a class-wide master for
	access-to-limited-interfaces because they can be used to reference
	tasks that implement such limited interface.
	(Build_Offset_To_Top_Functions): Build the tree corresponding to the
	procedure spec and body of the Offset_To_Top function that is generated
	when the parent of a type with discriminants has secondary dispatch
	(Init_Secondary_Tags): Handle the case in which the parent of the type
	containing secondary dispatch tables has discriminants to generate the
	correct arguments to call Set_Offset_To_Top.
	(Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.

	*, a-tags.adb: (Check_Index): Removed.
	Add Wide_[Wide_]Expanded_Name.
	(Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
	the same functionality of Get_Prim_Op_Address but applied to predefined
	primitive operations because the pointers to the predefined primitives
	are now saved in a separate table.
	(Parent_Size): Modified to get access to the separate table of primitive
	operations or the parent type.
	(Set_Predefined_Prim_Op_Address): New subprogram that provides the same
	functionality of Set_Prim_Op_Address but applied to predefined primitive
	(Set_Signature): New subprogram used to store the signature of a DT.
	(Displace): If the Offset_To_Top value is not static then call the
	function generated by the expander to get such value; otherwise use
	the value stored in the table of interfaces.
	(Offset_To_Top): The type of the actual has been changed to Address to
	give the correct support to tagged types with discriminants. In this
	case this value is stored just immediately after the tag field.
	(Set_Offset_To_Top): Two new formals have been added to indicate if the
	offset_to_top value is static and hence pass this value to the run-time
	to store it in the table of interfaces, or else if this value is dynamic
	and then pass to the run-time the address of a function that is
	generated by the expander to provide this value for each object of the

	* (Default_Prin_Op_Count): Removed.
	(Default_Prim_Op_Count): New entity
	(Get_Predefined_Prim_Op_Address): New entity
	(Set_Predefined_Prim_Op_Address): New entity
	(RE_Set_Signature): New entity


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]