r123594 - /trunk/gcc/ada/sem_ch4.adb

charlet@gcc.gnu.org charlet@gcc.gnu.org
Fri Apr 6 09:26:00 GMT 2007


Author: charlet
Date: Fri Apr  6 10:26:20 2007
New Revision: 123594

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123594
Log:
2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Bob Duff  <duff@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
	prefix type is a discriminated subtype of the type of the formal.
	(Analyze_Allocator): Collect all coextensions regardless of the context.
	Whether they can be allocated statically is determined in exp_ch4.
	(Analyze_Selected_Component): If the prefix is a limited view and the
	non-limited view is available, use the non-limited one.
	(Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
	therefore illegal), suggest a qualified expression rather than a type
	conversion, because a type conversion would be illegal in this context.
	(Anayze_Allocator): Trace recursively all nested allocators so that all
	coextensions are on the corresponding list for the root. Do no mark
	coextensions if the root allocator is within a declaration for a stack-
	allocated object, because the access discriminants will be allocated on
	the stack as well.
	(Analyze_Call): Remove restriction on calls to limited functions for the
	cases of generic actuals for formal objects, defaults for formal objects
	and defaults for record components.
	(Analyze_Allocator): Before analysis, chain coextensions on the proper
	element list. Their expansion is delayed until the enclosing allocator
	is processed and its finalization list constructed.
	(Try_Primitive_Operation): If the prefix is a concurrent type, looks
	for an operation with the given name among the primitive operations of
	the corresponding record type.
	(Analyze_Selected_Component): If the prefix is a task type that
	implements an interface, and there is no entry with the given name,
	check whether there is another primitive operation (e.g. a function)
	with that name.
	(Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
	properly the indexing of a function call written in prefix form, where
	the function returns an array type, and all parameters of the function
	except the first have defaults.
	(Analyze_Equality_Op): If this is a call to an implicit inequality, keep
	the original operands, rather than relocating them, for efficiency and
	to work properly when an operand is overloaded.
	(Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
	Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
	(Analyze_Selected_Component): If the prefix is a private extension, only
	scan the visible components, not those of the full view.
	(Try_Primitive_Operation): If the operation is a procedure, collect all
	possible interpretations, as for a function, because in the presence of
	classwide parameters several primitive operations of the type can match
	the given arguments.


Modified:
    trunk/gcc/ada/sem_ch4.adb



More information about the Gcc-cvs mailing list