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.
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;