2005-09-01 Javier Miranda <miranda@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Sep 2005 08:02:21 +0000 (08:02 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Sep 2005 08:02:21 +0000 (08:02 +0000)
commitf2a8ab60b8245be58471a4dd8a0464110c00f008
treef7894364bc3233e2c1bcbc372a1c697c25c3c786
parent9a5f69a3f577f5abe3993754099eef5bc5e842a1
2005-09-01  Javier Miranda  <miranda@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>

* sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
access types the null-exclusion and access-to-constant attributes must
also match.
(Analyze_Return_Statement): When the result type is an anonymous access
type, apply a conversion of the return expression to the access type
to ensure that appropriate accessibility checks are performed.
(Analyze_Return_Type): For the case of an anonymous access result type,
generate the Itype and set Is_Local_Anonymous_Access on the type.
Add ??? placeholder for check to disallow returning a limited object
in Ada 2005 unless it's an aggregate or a result of a function call.
Change calls from Subtype_Mark to Result_Definition.
(Analyze_Subprogram_Body): Change formal Subtype_Mark to
Result_Definition in call to Make_Function_Specification.
(Build_Body_To_Inline): Change Set_Subtype_Mark to
Set_Result_Definition.
(Make_Inequality_Operator): Change formal Subtype_Mark to
Result_Definition in call to Make_Function_Specification.
(Process_Formals): Create the new null-excluding itype if required.
(New_Overloaded_Entity): For an entity overriding an interface primitive
check if the entity also covers other abstract subprograms in the same
scope. This is required to handle the general case, that is, overriding
other interface primitives and overriding abstract subprograms inherited
from some abstract ancestor type.
(New_Overloaded_Entity): For an overriding entity that comes from
source, note the operation that it overrides.
(Check_Conformance, Type_Conformant): Addition of one new formal
to skip controlling formals in the analysis. This is used to
handle overloading of abstract interfaces.
(Base_Types_Match): Add missing case for types imported from
limited-with clauses
(New_Overloaded_Entity): Add barrier to protect the use of
the "alias" attribute.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103883 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/sem_ch6.adb
gcc/ada/sem_ch6.ads