diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2020-05-02 17:35:02 +0200 |
---|---|---|
committer | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-17 13:14:11 -0300 |
commit | 549c4c7f541119f6f930d6ef18b96b889bfab2a8 (patch) | |
tree | fafb7de0647bbcd9a08f9f5238e6c75e77c31d60 | |
parent | 480e0e25299977d7355a08e321d861fb0489533f (diff) | |
download | gcc-549c4c7f541119f6f930d6ef18b96b889bfab2a8.zip gcc-549c4c7f541119f6f930d6ef18b96b889bfab2a8.tar.gz gcc-549c4c7f541119f6f930d6ef18b96b889bfab2a8.tar.bz2 |
[Ada] Fix small fallout of previous change for Analyze_Selected_Component
2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
gcc/ada/
* sem_ch3.adb (Is_Visible_Component): Reason only on the private
status of the original type in an instance body.
-rw-r--r-- | gcc/ada/sem_ch3.adb | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index e33e3b3..9e60d75 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -18864,7 +18864,9 @@ package body Sem_Ch3 is -- a component in a sibling package that is inherited from a visible -- component of a type in an ancestor package; the component in the -- sibling package should not be visible even though the component it - -- inherited from is visible). This does not apply however in the case + -- inherited from is visible), but instance bodies are not subject to + -- this second case since they have the Has_Private_View mechanism to + -- ensure proper visibility. This does not apply however in the case -- where the scope of the type is a private child unit, or when the -- parent comes from a local package in which the ancestor is currently -- visible. The latter suppression of visibility is needed for cases @@ -18874,7 +18876,8 @@ package body Sem_Ch3 is or else (not Is_Private_Descendant (Type_Scope) and then not In_Open_Scopes (Type_Scope) - and then Has_Private_Declaration (Original_Type)) + and then Has_Private_Declaration (Original_Type) + and then not In_Instance_Body) then -- If the type derives from an entity in a formal package, there -- are no additional visible components. |