aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGary Dismukes <dismukes@adacore.com>2025-01-18 01:11:12 +0000
committerEric Botcazou <ebotcazou@adacore.com>2025-06-05 15:31:53 +0200
commita871b236c17b818baa7437a313793058110e70f3 (patch)
tree4294e94ba9b8ea2ef001325b545a818e2b5180aa /gcc
parent09b0aacb5fce94199b269a9a37b697899f5a1ab3 (diff)
downloadgcc-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.adb2
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),