diff options
author | Ed Schonberg <schonberg@adacore.com> | 2020-05-26 15:39:38 -0400 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-07-10 05:16:18 -0400 |
commit | 745f56989ead5d32b4016e39bf2656f23e2b16e7 (patch) | |
tree | 5bd171fd34ae57a8e0bd9d2d71f2111add18f5c6 /gcc/ada/snames.ads-tmpl | |
parent | 2f9821a09ac0c5f07ce621ef6a32acfdfa2e485e (diff) | |
download | gcc-745f56989ead5d32b4016e39bf2656f23e2b16e7.zip gcc-745f56989ead5d32b4016e39bf2656f23e2b16e7.tar.gz gcc-745f56989ead5d32b4016e39bf2656f23e2b16e7.tar.bz2 |
[Ada] Part of implementation of AI12-0212: container aggregates
gcc/ada/
* aspects.ads: Add Aspect_Aggregate.
* exp_aggr.adb (Expand_Container_Aggregate): Expand positional
container aggregates into separate initialization and insertion
operations.
* sem_aggr.ads (Resolve_Container_Aggregate): New subprogram.
* sem_aggr.adb (Resolve_Container_Aggregate): Parse aspect
aggregate, establish element types and key types if present, and
resolve aggregate components.
* sem_ch13.ads (Parse_Aspect_Aggregate): Public subprogram used
in validation, resolution and expansion of container aggregates
* sem_ch13.adb
(Parse_Aspect_Aggregate): Retrieve names of primitives specified
in aspect specification.
(Validate_Aspect_Aggregate): Check legality of specified
operations given in aspect specification, before nane
resolution.
(Resolve_Aspect_Aggregate): At freeze point resolve operations
and verify that given operations have the required profile.
* sem_res.adb (Resolve): Call Resolve_Aspect_Aggregate if aspect
is present for type.
* snames.ads-tmpl: Add names used in aspect Aggregate: Empty,
Add_Named, Add_Unnamed, New_Indexed, Assign_Indexed.
Diffstat (limited to 'gcc/ada/snames.ads-tmpl')
-rw-r--r-- | gcc/ada/snames.ads-tmpl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ada/snames.ads-tmpl b/gcc/ada/snames.ads-tmpl index 0e807b0..c26ac32 100644 --- a/gcc/ada/snames.ads-tmpl +++ b/gcc/ada/snames.ads-tmpl @@ -1550,6 +1550,15 @@ package Snames is Name_Reference_Control_Type : constant Name_Id := N + $; Name_Get_Element_Access : constant Name_Id := N + $; + -- Names for Ada2020 Aggregate aspect. Nmme_Aggregate is already + -- present for gprbuild. + + Name_Empty : constant Name_Id := N + $; + Name_Add_Named : constant Name_Id := N + $; + Name_Add_Unnamed : constant Name_Id := N + $; + Name_New_Indexed : constant Name_Id := N + $; + Name_Assign_Indexed : constant Name_Id := N + $; + -- Ada 2005 reserved words First_2005_Reserved_Word : constant Name_Id := N + $; |