diff options
author | Gary Dismukes <dismukes@adacore.com> | 2025-01-18 01:11:12 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@adacore.com> | 2025-06-05 15:31:53 +0200 |
commit | a871b236c17b818baa7437a313793058110e70f3 (patch) | |
tree | 4294e94ba9b8ea2ef001325b545a818e2b5180aa /gcc | |
parent | 09b0aacb5fce94199b269a9a37b697899f5a1ab3 (diff) | |
download | gcc-a871b236c17b818baa7437a313793058110e70f3.zip gcc-a871b236c17b818baa7437a313793058110e70f3.tar.gz gcc-a871b236c17b818baa7437a313793058110e70f3.tar.bz2 |
ada: Error about assignment to limited target on aggregate with "for of" iterator
The compiler reports a spurious error about an assignment to a limited
object on an aggregate of a array type with limited components that has
an association with a "for of" iterator. This is fixed by arranging to
have the Assignment_OK flag set on the indexed_names generated by the
expander for initializing the aggregate object.
gcc/ada/ChangeLog:
* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Change call to Make_Assignment
for the indexed aggregate object to call Change_Make_OK_Assignment instead.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/exp_aggr.adb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb index 7cb26ce..3c4576d 100644 --- a/gcc/ada/exp_aggr.adb +++ b/gcc/ada/exp_aggr.adb @@ -5749,7 +5749,7 @@ package body Exp_Aggr is while Present (Assoc) loop Iter := Iterator_Specification (Assoc); Iter_Id := Defining_Identifier (Iter); - New_Comp := Make_Assignment_Statement (Loc, + New_Comp := Make_OK_Assignment_Statement (Loc, Name => Make_Indexed_Component (Loc, Prefix => New_Occurrence_Of (TmpE, Loc), |