r138603 - in /trunk/gcc/ada: exp_aggr.adb exp_c...

charlet@gcc.gnu.org charlet@gcc.gnu.org
Mon Aug 4 10:23:00 GMT 2008


Author: charlet
Date: Mon Aug  4 10:23:16 2008
New Revision: 138603

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138603
Log:
2008-08-04  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
	target to the type of the aggregate in the case where the target object
	is class-wide.

	* exp_ch5.adb (Expand_Simple_Function_Return): When the function's
	result type is class-wide and inherently limited, and the expression
	has a specific type, create a return object of the specific type, for
	more efficient handling of returns of build-in-place aggregates (avoids
	conversions of the class-wide return object to the specific type on
	component assignments).

	* sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
	about a type mismatch for a class-wide function with a return object
	having a specific type when the object declaration doesn't come from
	source. Such an object can result from the expansion of a simple return.


Modified:
    trunk/gcc/ada/exp_aggr.adb
    trunk/gcc/ada/exp_ch5.adb
    trunk/gcc/ada/sem_ch6.adb



More information about the Gcc-cvs mailing list