From: sam Date: Wed, 5 Dec 2007 09:25:38 +0000 (+0000) Subject: gcc/ada/ X-Git-Tag: upstream/4.9.2~44772 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d1662b9497a99989e4137d06d9adf24257bfd75c;p=platform%2Fupstream%2Flinaro-gcc.git gcc/ada/ PR ada/21489 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type parameters of an entry call. gcc/testsuite/ PR ada/21489 * gnat.dg/rm_6_4_1_13.adb: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130617 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 54f3d5c..0fcdaad 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2007-12-05 Samuel Tardieu + + PR ada/21489 + * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type + parameters of an entry call. + 2007-12-03 Robert Dewar Samuel Tardieu diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb index 87fbc12..78b1155 100644 --- a/gcc/ada/exp_ch9.adb +++ b/gcc/ada/exp_ch9.adb @@ -3024,8 +3024,12 @@ package body Exp_Ch9 is -- We have to make an assignment statement separate for the -- case of limited type. We cannot assign it unless the -- Assignment_OK flag is set first. + -- An out formal of an access type must also be initialized + -- from the actual, as stated in RM 6.4.1 (13). - if Ekind (Formal) /= E_Out_Parameter then + if Ekind (Formal) /= E_Out_Parameter + or else Is_Access_Type (Etype (Formal)) + then N_Var := New_Reference_To (Defining_Identifier (N_Node), Loc); Set_Assignment_OK (N_Var); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f903d83..a58e365 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-12-05 Samuel Tardieu + + PR ada/21489 + * gnat.dg/rm_6_4_1_13.adb: New test. + 2007-12-04 Jakub Jelinek PR middle-end/34134