aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2020-06-03 03:42:19 -0400
committerPierre-Marie de Rodat <derodat@adacore.com>2020-07-15 09:43:00 -0400
commit8092c19930b6cdf3087825f9063cb830cd2de479 (patch)
tree65d79907beeb22253433c45c9b4976287b039ccb /gcc/ada/sem.adb
parent1c5f82019ab50806ff1a23e5be8db864e8da131a (diff)
downloadgcc-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.adb3
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