diff options
author | Ed Schonberg <schonberg@adacore.com> | 2014-02-19 10:30:33 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-02-19 11:30:33 +0100 |
commit | dd2bf554e085d52c64d9596bc4843751e082804b (patch) | |
tree | a47b8f73a25d9edbde9b11b8b6ba4b1774d438f4 /gcc/ada/sem_ch13.ads | |
parent | e0f63680d9a8239e801b7f9a0c6f7ddabf433c06 (diff) | |
download | gcc-dd2bf554e085d52c64d9596bc4843751e082804b.zip gcc-dd2bf554e085d52c64d9596bc4843751e082804b.tar.gz gcc-dd2bf554e085d52c64d9596bc4843751e082804b.tar.bz2 |
style.adb (Missing_Overriding): Warning does not apply in language versions prior to Ada 2005.
2014-02-19 Ed Schonberg <schonberg@adacore.com>
* style.adb (Missing_Overriding): Warning does not apply in
language versions prior to Ada 2005.
* snames.ads-tmpl: Add Name_Iterable and Attribute_Iterable.
* sem_attr.adb: Add Attribute_Iterable where needed.
* exp_attr.adb: ditto.
* exp_ch5.adb (Expand_Formal_Container_Loop): New procedure to
handle loops and quantified expressions over types that have an
iterable aspect. Called from Expand_Iterator_Loop.
* sem_ch5.adb (Analyze_Iterator_Specification): Recognize types
with Iterable aspect.
* sem_ch13.adb (Validate_Iterable_Aspect): Verify that the
subprograms specified in the Iterable aspect have the proper
signature involving container and cursor.
(Check_Aspect_At_Freeze_Point): Analyze value of iterable aspect.
* sem_ch13.ads (Validate_Iterable_Aspect): New subprogram.
* sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive):
New procedure to retrieve one of the primitives First, Last,
or Has_Element, from the value of the iterable aspect of a
formal container.
(Is_Container_Element): Predicate to recognize expressions
that denote an element of one of the predefined containers,
for possible optimization. This subprogram is not currently
used, pending ARG discussions on the legality of the proposed
optimization. Worth preserving for eventual use.
(Is_Iterator): Recognize formal container types.
* aspects.ads, aspects.adb: Add Aspect_Iterable where needed.
From-SVN: r207881
Diffstat (limited to 'gcc/ada/sem_ch13.ads')
-rw-r--r-- | gcc/ada/sem_ch13.ads | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch13.ads b/gcc/ada/sem_ch13.ads index edf106a..d99d579 100644 --- a/gcc/ada/sem_ch13.ads +++ b/gcc/ada/sem_ch13.ads @@ -325,4 +325,10 @@ package Sem_Ch13 is procedure Inherit_Aspects_At_Freeze_Point (Typ : Entity_Id); -- Given an entity Typ that denotes a derived type or a subtype, this -- routine performs the inheritance of aspects at the freeze point. + + procedure Validate_Iterable_Aspect (Typ : Entity_Id; ASN : Node_Id); + -- For SPARK 2014 formal containers. The expression has the form of an + -- aggregate, and each entry must denote a function with the proper + -- syntax for First, Next, and Has_Element. Optionally an Element primitive + -- may also be defined. end Sem_Ch13; |