From: Eric Botcazou Date: Mon, 29 Mar 2021 22:41:46 +0000 (+0200) Subject: Fix wrong assignment of aggregate to full-access component X-Git-Tag: basepoints/gcc-12~357 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=471babd88668dbe4f9ff4dba6d2036ecef09653b;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index 8dc8a2223960..da14af9b8bd0 100644 --- a/gcc/ada/freeze.adb +++ b/gcc/ada/freeze.adb @@ -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;