This is the mail archive of the gcc-patches@gcc.gnu.org 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]

[Ada] Slice of parameterless function call.


Tested on i686-linux, committed on trunk

The compiler failed to recognize F (S) as a slice when F is a parameterless
function and S is a subtype mark.

See gnat.dg/parameterlessfunc.adb

And also, the form  F (X) may be a legal abbreviation of F.all (X), when F is a
parameterless subprogram that returns an access to subprogram. Previously
GNAT required the explicit dereference in such a case.

Examples in ACATS test C3A0017.

2008-05-20  Ed Schonberg  <schonberg@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* sem_ch4.adb
	(Try_Indexed_Call): Handle properly a construct of the form F(S) where
	F is a parameterless function that returns an array, and S is a subtype
	mark.
	(Analyze_Call): Insert dereference when the prefix is a parameterless
	function that returns an access to subprogram and the call has
	parameters.
	Reject a non-overloaded call whose name resolves to denote
	a primitive operation of the stub type generated to support a remote
	access-to-class-wide type.

Attachment: difs
Description: Text document


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