[gcc(refs/users/giulianob/heads/autopar_rebase2)] [Ada] Remove bypass for instance bodies from Is_Visible_Component

Giuliano Belinassi giulianob@gcc.gnu.org
Mon Aug 17 23:24:37 GMT 2020


https://gcc.gnu.org/g:93cd320e69152efbded649f121602486df99d020

commit 93cd320e69152efbded649f121602486df99d020
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Feb 27 17:02:14 2020 +0100

    [Ada] Remove bypass for instance bodies from Is_Visible_Component
    
    2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_ch3.adb (Is_Visible_Component): Do not special-case
            bodies of instances.

Diff:
---
 gcc/ada/sem_ch3.adb | 33 ---------------------------------
 1 file changed, 33 deletions(-)

diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index 7882cb803f9..2c04084b625 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -18762,39 +18762,6 @@ package body Sem_Ch3 is
       then
          return True;
 
-      --  In the body of an instantiation, check the visibility of a component
-      --  in case it has a homograph that is a primitive operation of a private
-      --  type which was not visible in the generic unit.
-
-      --  Should Is_Prefixed_Call be propagated from template to instance???
-
-      elsif In_Instance_Body then
-         if not Is_Tagged_Type (Original_Type)
-           or else not Is_Private_Type (Original_Type)
-         then
-            return True;
-
-         else
-            declare
-               Subp_Elmt : Elmt_Id;
-
-            begin
-               Subp_Elmt := First_Elmt (Primitive_Operations (Original_Type));
-               while Present (Subp_Elmt) loop
-
-                  --  The component is hidden by a primitive operation
-
-                  if Chars (Node (Subp_Elmt)) = Chars (C) then
-                     return False;
-                  end if;
-
-                  Next_Elmt (Subp_Elmt);
-               end loop;
-
-               return True;
-            end;
-         end if;
-
       --  If the component has been declared in an ancestor which is currently
       --  a private type, then it is not visible. The same applies if the
       --  component's containing type is not in an open scope and the original


More information about the Gcc-cvs mailing list