From: Arnaud Charlet Date: Fri, 2 Dec 2011 15:41:17 +0000 (+0100) Subject: [multiple changes] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a46cde680750f08984a35106e74d415a50e82991;p=gcc.git [multiple changes] 2011-12-02 Javier Miranda * sem_ch3.adb (Constrain_Access): Undo previous patch for this routine. Required since the RM rule 3.7.1(7/3) applies to all access types. 2011-12-02 Bob Duff * sem_ch6.adb: Minor comment fix. From-SVN: r181926 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 924c5544b50..8838582bd22 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,13 @@ +2011-12-02 Javier Miranda + + * sem_ch3.adb (Constrain_Access): Undo previous + patch for this routine. Required since the RM rule 3.7.1(7/3) + applies to all access types. + +2011-12-02 Bob Duff + + * sem_ch6.adb: Minor comment fix. + 2011-12-02 Joel Sherrill * s-tpopsp-rtems.adb: Use ATCB_Key rather than RTEMS_Ada_Self variable diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index 897ed169e85..e7b5327c430 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -10694,18 +10694,24 @@ package body Sem_Ch3 is return; end if; - if Ekind (T) = E_General_Access_Type + -- Enforce rule that the constraint is illegal if there is an + -- unconstrained view of the designated type. This means that the + -- partial view (either a private type declaration or a derivation + -- from a private type) has no discriminants. (Defect Report + -- 8652/0008, Technical Corrigendum 1, checked by ACATS B371001). + + -- Rule updated for Ada 2005: the private type is said to have + -- a constrained partial view, given that objects of the type + -- can be declared. Furthermore, the rule applies to all access + -- types, unlike the rule concerning default discriminants (see + -- RM 3.7.1(7/3)) + + if (Ekind (T) = E_General_Access_Type + or else Ada_Version >= Ada_2005) and then Has_Private_Declaration (Desig_Type) and then In_Open_Scopes (Scope (Desig_Type)) and then Has_Discriminants (Desig_Type) then - -- Enforce rule that the constraint is illegal if there is - -- an unconstrained view of the designated type. This means - -- that the partial view (either a private type declaration or - -- a derivation from a private type) has no discriminants. - -- (Defect Report 8652/0008, Technical Corrigendum 1, checked - -- by ACATS B371001). - declare Pack : constant Node_Id := Unit_Declaration_Node (Scope (Desig_Type)); @@ -10733,9 +10739,8 @@ package body Sem_Ch3 is then if No (Discriminant_Specifications (Decl)) then Error_Msg_N - ("cannot constrain general access type if " & - "designated type has constrained partial view", - S); + ("cannot constrain access type if designated " & + "type has constrained partial view", S); end if; exit; diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index a47a2dc02b6..903950d8f8d 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -8936,7 +8936,7 @@ package body Sem_Ch6 is Set_Is_Immediately_Visible (E, False); else -- Work done in Override_Dispatching_Operation, - -- so nothing else need to be done here. + -- so nothing else needs to be done here. null; end if;