aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEd Schonberg <schonberg@adacore.com>2012-10-02 12:26:43 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2012-10-02 14:26:43 +0200
commit27dd0dde2d550587b8639a00dcbf8f9aa41c5093 (patch)
treeddee0f10352af6418105d3999001db5c3b8a432a /gcc
parent7640ef8abab4715c572a2400a3f345aef583cf8b (diff)
downloadgcc-27dd0dde2d550587b8639a00dcbf8f9aa41c5093.zip
gcc-27dd0dde2d550587b8639a00dcbf8f9aa41c5093.tar.gz
gcc-27dd0dde2d550587b8639a00dcbf8f9aa41c5093.tar.bz2
sem_ch8.adb (Find_Direct_Name): The left-hand side of an assignment may designate a generalized reference.
2012-10-02 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Find_Direct_Name): The left-hand side of an assignment may designate a generalized reference. From-SVN: r191976
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/sem_ch8.adb7
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 436651c..ac32388 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2012-10-02 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb (Find_Direct_Name): The left-hand side of an
+ assignment may designate a generalized reference.
+
2012-10-02 Eric Botcazou <ebotcazou@adacore.com>
* types.h (N_Return_Statement): Delete.
diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb
index 53ff327..db47b4a 100644
--- a/gcc/ada/sem_ch8.adb
+++ b/gcc/ada/sem_ch8.adb
@@ -5021,10 +5021,15 @@ package body Sem_Ch8 is
Set_Entity_Or_Discriminal (N, E);
+ -- The name may designate a generalized reference, in which case
+ -- the dereference interpretation will be included.
+
if Ada_Version >= Ada_2012
and then
(Nkind (Parent (N)) in N_Subexpr
- or else Nkind (Parent (N)) = N_Object_Declaration)
+ or else
+ Nkind_In (Parent (N), N_Object_Declaration,
+ N_Assignment_Statement))
then
Check_Implicit_Dereference (N, Etype (E));
end if;