[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:
parent
6537318f79
commit
5b48ea9dac
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue