sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an abstract interface...
authorJavier Miranda <miranda@adacore.com>
Wed, 15 Feb 2006 09:43:54 +0000 (10:43 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 15 Feb 2006 09:43:54 +0000 (10:43 +0100)
commitb8dc622e9fc08c74a749eb81503f795363625d12
tree1d16e0eebddebf22d1b363d9903009b9a5270825
parent9b96e234f8e646b43bafda4670770276f94b07bc
sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an abstract interface type call...

2006-02-13  Javier Miranda  <miranda@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
abstract interface type call analyze_and_resolve to expand the type
conversion into the corresponding displacement of the
reference to the base of the object.
(Eval_Attribute, case Width): For systems where IEEE extended precision
is supported, the maximum exponent occupies 4 decimal digits.
(Accessibility_Message): Add '\' in 2-line warning message.
(Resolve_Attribute): Likewise.
(case Attribute_Access): Significantly revise checks
for illegal access-to-subprogram Access attributes to properly enforce
the rules of 3.10.2(32/2).
Diagnose use of current instance with an illegal attribute.

        * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
        to a Node_Id.
        (Enclosing_Generic_Unit): New function to return a node's innermost
        enclosing generic declaration node.
        (Compile_Time_Constraint_Error): Remove '!' in warning messages.
        (Type_Access_Level): The accessibility level of anonymous acccess types
        associated with discriminants is that of the current instance of the
        type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
        (Compile_Time_Constraint_Error): Handle case of conditional expression.
        (Kill_Current_Values_For_Entity): New function
        (Enter_Name): Change formal type to Entity_Id

From-SVN: r111089
gcc/ada/sem_attr.adb
gcc/ada/sem_util.adb
gcc/ada/sem_util.ads