From ac0ed7268a8cf613955dab97b4dfa1e3b6a243d4 Mon Sep 17 00:00:00 2001
From: Ed Schonberg <schonberg@adacore.com>
Date: Mon, 4 Jul 2005 15:30:32 +0200
Subject: [PATCH] sem_util.adb (Is_Object_Reference): An indexed or selected
 component whose prefix is an implicit dereference is an...

2005-07-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Is_Object_Reference): An indexed or selected component
	whose prefix is an implicit dereference is an object reference. Removes
	spurious errors when compiling with -gnatc.

From-SVN: r101592
---
 gcc/ada/sem_util.adb | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 04107a5c9df1..4d3577e8ea02 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -4074,7 +4074,9 @@ package body Sem_Util is
       else
          case Nkind (N) is
             when N_Indexed_Component | N_Slice =>
-               return Is_Object_Reference (Prefix (N));
+               return
+                 Is_Object_Reference (Prefix (N))
+                   or else Is_Access_Type (Etype (Prefix (N)));
 
             --  In Ada95, a function call is a constant object
 
@@ -4089,7 +4091,9 @@ package body Sem_Util is
             when N_Selected_Component =>
                return
                  Is_Object_Reference (Selector_Name (N))
-                   and then Is_Object_Reference (Prefix (N));
+                   and then
+                     (Is_Object_Reference (Prefix (N))
+                        or else Is_Access_Type (Etype (Prefix (N))));
 
             when N_Explicit_Dereference =>
                return True;
-- 
GitLab