diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2021-03-30 00:41:46 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@adacore.com> | 2021-03-30 00:45:38 +0200 |
commit | 471babd88668dbe4f9ff4dba6d2036ecef09653b (patch) | |
tree | 73aa1b5e7865a9a15caa7b9818f4a51278628f48 | |
parent | af739c8797d4cdf550366d0ef48136e0073df5c9 (diff) | |
download | gcc-471babd88668dbe4f9ff4dba6d2036ecef09653b.zip gcc-471babd88668dbe4f9ff4dba6d2036ecef09653b.tar.gz gcc-471babd88668dbe4f9ff4dba6d2036ecef09653b.tar.bz2 |
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.
-rw-r--r-- | gcc/ada/freeze.adb | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index 8dc8a22..da14af9 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; |