Commit 2b73cf68 by Javier Miranda Committed by Arnaud Charlet

sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to the full type declaration.

2007-04-20  Javier Miranda  <miranda@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
	the full type declaration.
	(Analyze_Component_Declaration): Add local variable E to capture the
	initialization expression of the declaration. Replace the occurences of
	Expression (N) with E.
	(OK_For_Limited_Init_In_05): Allow initialization of class-wide
	limited interface object with a function call.
	(Array_Type_Declaration): If the declaration lacks subtype marks for
	indices, create a simple index list to prevent cascaded errors.
	(Is_Null_Extension): Ignore internal components created for secondary
	tags when checking whether a record extension is a null extension.
	(Check_Abstract_Interfaces): Add missing support for interface subtypes
	and generic formals.
	(Derived_Type_Declaration): Add missing support for interface subtypes
	and generic formals.
	(Analyze_Object_Declaration): If an initialization expression is
	present, traverse its subtree and mark all allocators as static
	coextensions.
	(Add_Interface_Tag_Component): When looking for components that may be
	secondary tags, ignore pragmas that can appear within a record
	declaration.
	(Check_Abstract_Overriding): an inherited function that dispatches on
	result does not need to be overriden if the controlling type is a null
	extension.
	(Mentions_T): Handle properly a 'class attribute in an anonymous access
	component declaration, when the prefix is an expanded name.
	(Inherit_Component): If the derivation is for a private extension,
	inherited components remain visible and their ekind should not be set
	to Void.
	(Find_Type_Of_Object): In the case of an access definition, always set
	Is_Local_Anonymous_Access. We were previously not marking the anonymous
	access type of a return object as a local anonymous type.
	(Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
	range with character literal bounds.
	(Constrain_Array): Initialize the Packed_Array_Type field to Empty.
	(Access_Subprogram_Declaration): Indicate that the type declaration
	depends on an incomplete type only if the incomplete type is declared
	in an open scope.
	(Analyze_Subtype_Declaration): Handle properly subtypes of
	synchronized types that are tagged, and that may appear as generic
	actuals.
	(Access_Subprogram_Declaration): An anonymous access to subprogram can
	appear as an access discriminant in a private type declaration.
	(Add_Interface_Tag_Components): Complete decoration of the component
	containing the tag of a secondary dispatch table and the component
	containing the offset to the base of the object (this latter component
	is only generated when the parent type has discriminants --as documented
	in this routine).
	(Inherit_Components): Use the new decoration of the tag components to
	improve the condition that avoids inheriting the components associated
	with secondary tags of the parent.
	(Build_Discriminanted_Subtype): Indicate to the backend that the
	size of record types associated with dispatch tables is known at
	compile time.
	(Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
	(Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
	to include task, protected, and synchronized interfaces as limited
	interfaces.
	(Process_Discriminants): Remove the setting of
	Is_Local_Anonymous_Access on the type of (anonymous) access
	discriminants of nonlimited types.
	(Analyze_Interface_Type_Declaration): Complete the decoration of the
	class-wide entity it is is already present. This situation occurs if
	the limited-view has been previously built.
	(Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
	field.
	(Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
	Related_Interface.

From-SVN: r125437
parent 71780989
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment