[Ada] Spurious accessibility error on call in return statement

gcc/ada/

	* sem_util.adb (In_Return_Value): Modified to detect when
	implicit dereference is specified on the return type of a
	function call within the expression being checked.
This commit is contained in:
Justin Squirek 2020-12-22 09:58:43 -05:00 committed by Pierre-Marie de Rodat
parent 6537318f79
commit 5b48ea9dac
1 changed files with 11 additions and 0 deletions

View File

@ -14329,6 +14329,17 @@ package body Sem_Util is
when N_Function_Call =>
if not In_Function_Call then
In_Function_Call := True;
-- When the function return type has implicit dereference
-- specified we know it cannot directly contribute to the
-- return value.
if Present (Etype (Par))
and then Has_Implicit_Dereference
(Get_Full_View (Etype (Par)))
then
return False;
end if;
else
return False;
end if;