diff options
author | Arnaud Charlet <charlet@adacore.com> | 2020-06-03 03:42:19 -0400 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-07-15 09:43:00 -0400 |
commit | 8092c19930b6cdf3087825f9063cb830cd2de479 (patch) | |
tree | 65d79907beeb22253433c45c9b4976287b039ccb /gcc/ada/sem.adb | |
parent | 1c5f82019ab50806ff1a23e5be8db864e8da131a (diff) | |
download | gcc-8092c19930b6cdf3087825f9063cb830cd2de479.zip gcc-8092c19930b6cdf3087825f9063cb830cd2de479.tar.gz gcc-8092c19930b6cdf3087825f9063cb830cd2de479.tar.bz2 |
[Ada] Ongoing work for AI12-0212: container aggregates
gcc/ada/
* par-ch4.adb (P_Iterated_Component_Association): Extended to
recognzize the similar Iterated_Element_Association. This node
is only generated when an explicit Key_Expression is given.
Otherwise the distinction between the two iterated forms is done
during semantic analysis.
* sinfo.ads: New node N_Iterated_Element_Association, for
Ada202x container aggregates. New field Key_Expression.
* sinfo.adb: Subprograms for new node and newn field.
* sem_aggr.adb (Resolve_Iterated_Component_Association): Handle
the case where the Iteration_Scheme is an
Iterator_Specification.
* exp_aggr.adb (Wxpand_Iterated_Component): Handle a component
with an Iterated_Component_Association, generate proper loop
using given Iterator_Specification.
* exp_util.adb (Insert_Axtions): Handle new node as other
aggregate components.
* sem.adb, sprint.adb: Handle new node.
* tbuild.adb (Make_Implicit_Loop_Statement): Handle properly a
loop with an Iterator_ specification.
Diffstat (limited to 'gcc/ada/sem.adb')
-rw-r--r-- | gcc/ada/sem.adb | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ada/sem.adb b/gcc/ada/sem.adb index 425dafa..5474e08 100644 --- a/gcc/ada/sem.adb +++ b/gcc/ada/sem.adb @@ -670,6 +670,9 @@ package body Sem is when N_Iterated_Component_Association => Diagnose_Iterated_Component_Association (N); + when N_Iterated_Element_Association => + null; -- May require a more precise error if misplaced. + -- For the remaining node types, we generate compiler abort, because -- these nodes are always analyzed within the Sem_Chn routines and -- there should never be a case of making a call to the main Analyze |