Fix wrong assignment of aggregate to full-access component

This is a regression present on the mainline: the compiler (front-end) fails
to assign an aggregate to a full-access component (i.e. Atomic or VFA) as a
whole if the type of the component is not full access itself.

gcc/ada/
	PR ada/99802
	* freeze.adb (Is_Full_Access_Aggregate): Call Is_Full_Access_Object
	on the name of an N_Assignment_Statement to spot full access.
This commit is contained in:
Eric Botcazou 2021-03-30 00:41:46 +02:00
parent af739c8797
commit 471babd886

View File

@ -1754,8 +1754,7 @@ package body Freeze is
Typ := Etype (Name (Par));
if not Is_Full_Access (Typ)
and then not (Is_Entity_Name (Name (Par))
and then Is_Full_Access (Entity (Name (Par))))
and then not Is_Full_Access_Object (Name (Par))
then
return False;
end if;