Commit c9b99571 by Ed Schonberg Committed by Arnaud Charlet

sem_res.adb (Resolve_Call): Use base type to determine whether a dereference is…

sem_res.adb (Resolve_Call): Use base type to determine whether a dereference is needed because a subtype of...

2008-08-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Call): Use base type to determine whether a
	dereference is needed because a subtype of an access_to_subprogram is
	simply an access-subtype

From-SVN: r138779
parent 2a26a7ec
......@@ -4696,14 +4696,15 @@ package body Sem_Res is
end loop;
end if;
if Ekind (Etype (Nam)) = E_Access_Subprogram_Type
and then Ekind (Typ) /= E_Access_Subprogram_Type
if Is_Access_Subprogram_Type (Base_Type (Etype (Nam)))
and then not Is_Access_Subprogram_Type (Base_Type (Typ))
and then Nkind (Subp) /= N_Explicit_Dereference
and then Present (Parameter_Associations (N))
then
-- The prefix is a parameterless function call that returns an
-- access to subprogram. If parameters are present in the current
-- call add an explicit dereference.
-- call add an explicit dereference. We use the base type here
-- because within an instance these may be subtypes.
-- The dereference is added either in Analyze_Call or here. Should
-- be consolidated ???
......
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