aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2007-12-05 09:25:38 +0000
committerSamuel Tardieu <sam@gcc.gnu.org>2007-12-05 09:25:38 +0000
commit07c7262ec307bd36b24943cc6014d0c0f060089e (patch)
treed8aede381d3ef7cb9560140d4e2558221b1ddcc4
parentc3220d4c93a0773d72acb404845cadc19dda4233 (diff)
downloadgcc-07c7262ec307bd36b24943cc6014d0c0f060089e.zip
gcc-07c7262ec307bd36b24943cc6014d0c0f060089e.tar.gz
gcc-07c7262ec307bd36b24943cc6014d0c0f060089e.tar.bz2
re PR ada/21489 (Wrong code generated for legal program, RM 6.4.1(13), 9.5.1(3), 9.5.3(8))
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. From-SVN: r130617
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/exp_ch9.adb6
-rw-r--r--gcc/testsuite/ChangeLog5
3 files changed, 16 insertions, 1 deletions
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 <sam@rfc1149.net>
+
+ PR ada/21489
+ * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
+ parameters of an entry call.
+
2007-12-03 Robert Dewar <dewar@adacore.com>
Samuel Tardieu <sam@rfc1149.net>
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 <sam@rfc1149.net>
+
+ PR ada/21489
+ * gnat.dg/rm_6_4_1_13.adb: New test.
+
2007-12-04 Jakub Jelinek <jakub@redhat.com>
PR middle-end/34134