From 27dd0dde2d550587b8639a00dcbf8f9aa41c5093 Mon Sep 17 00:00:00 2001 From: Ed Schonberg Date: Tue, 2 Oct 2012 12:26:43 +0000 Subject: [PATCH] sem_ch8.adb (Find_Direct_Name): The left-hand side of an assignment may designate a generalized reference. 2012-10-02 Ed Schonberg * sem_ch8.adb (Find_Direct_Name): The left-hand side of an assignment may designate a generalized reference. From-SVN: r191976 --- gcc/ada/ChangeLog | 5 +++++ gcc/ada/sem_ch8.adb | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 436651cfe970..ac3238876aba 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2012-10-02 Ed Schonberg + + * sem_ch8.adb (Find_Direct_Name): The left-hand side of an + assignment may designate a generalized reference. + 2012-10-02 Eric Botcazou * types.h (N_Return_Statement): Delete. diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb index 53ff3274e8ba..db47b4a3e74b 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; -- 2.47.2