From dc8adf598fb3a7d6086b69e02007098bd7555d16 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Thu, 27 Feb 2020 17:02:14 +0100 Subject: [PATCH] [Ada] Remove bypass for instance bodies from Is_Visible_Component 2020-06-09 Eric Botcazou gcc/ada/ * sem_ch3.adb (Is_Visible_Component): Do not special-case bodies of instances. --- 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 7882cb8..2c04084 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 -- 2.7.4