This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r125395 - in /trunk/gcc/ada: exp_ch2.adb sem_at...
- From: charlet at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Wed, 06 Jun 2007 10:24:40 -0000
- Subject: r125395 - in /trunk/gcc/ada: exp_ch2.adb sem_at...
Author: charlet
Date: Wed Jun 6 10:24:40 2007
New Revision: 125395
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=125395
Log:
2007-04-20 Hristian Kirtchev <kirtchev@adacore.com>
Robert Dewar <dewar@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Gary Dismukes <dismukes@adacore.com>
* exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
Add "with" and "use" clauses for Sem_Attr.
(Expand_Current_Value): Do not replace occurences of attribute
references where the prefix must be a simple name.
* sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
Namet. Add new arrays Attribute_Name_Modifies_Prefix and
Attribute_Requires_Simple_Name_Prefix.
(Name_Modifies_Prefix): Body of new function.
(Requires_Simple_Name_Prefix): Body of new function.
(Resolve_Attribute, case Access): Improve error message for case of
mismatched conventions.
(Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
incomplete type.
(Analyze_Attribute, case 'Access): If the type of the prefix is a
constrained subtype for a nominal unconstrained type, use its base type
to check for conformance with the context.
(Resolve_Attribute): Remove test of the access type being associated
with a return statement from condition for performing accessibility
checks on access attributes, since this case is now captured by
Is_Local_Anonymous_Access.
(Analyze_Access_Attribute): Set Address_Taken on entity
(Analyze_Attribute, case Address): Set Address_Taken on entity
(OK_Self_Reference): Traverse tree to locate enclosing aggregate when
validating an access attribute whose prefix is a current instance.
(Resolve_Attribute): In case of attributes 'Code_Address and 'Address
applied to dispatching operations, if freezing is required then we set
the attribute Has_Delayed_Freeze in the prefix's entity.
(Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
current scope if access of local subprogram taken
(Analyze_Access_Attribute): Check legality of self-reference even if the
expression comes from source, as when a single component association in
an aggregate has a box association.
(Resolve_Attribute, case 'Access): Do not apply accessibility checks to
the prefix if it is a protected operation and the attribute is
Unrestricted_Access.
(Resolve_Attribute, case 'Access): Set the Etype of the attribute
reference to the base type of the context, to force a constraint check
when the context is an access subtype with an explicit constraint.
(Analyze_Attribute, case 'Class): If the prefix is an interface and the
node is rewritten as an interface conversion. leave unanalyzed after
resolution, to ensure that type checking against the context will take
place.
Modified:
trunk/gcc/ada/exp_ch2.adb
trunk/gcc/ada/sem_attr.adb
trunk/gcc/ada/sem_attr.ads