From 258814a99e74fcc1ab9cccb16b4d14c997d83690 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Fri, 24 Jun 2022 19:28:53 +0200 Subject: [PATCH] [Ada] Also deal with private actual types in latest change gcc/ada/ * gcc-interface/decl.cc (Gigi_Cloned_Subtype): Handle private case. --- gcc/ada/gcc-interface/decl.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gcc/ada/gcc-interface/decl.cc b/gcc/ada/gcc-interface/decl.cc index 8449c991e2b..53c84613e6a 100644 --- a/gcc/ada/gcc-interface/decl.cc +++ b/gcc/ada/gcc-interface/decl.cc @@ -5171,6 +5171,19 @@ Gigi_Cloned_Subtype (Entity_Id gnat_entity) && Present (Generic_Parent_Type (gnat_decl)) && Is_Entity_Name (Subtype_Indication (gnat_decl))) return Entity (Subtype_Indication (gnat_decl)); + + /* Likewise for the full view of such subtypes when they are private. */ + if (Is_Itype (gnat_entity)) + { + gnat_decl = Associated_Node_For_Itype (gnat_entity); + if (Present (gnat_decl) + && Nkind (gnat_decl) == N_Subtype_Declaration + && Is_Private_Type (Defining_Identifier (gnat_decl)) + && Full_View (Defining_Identifier (gnat_decl)) == gnat_entity + && Present (Generic_Parent_Type (gnat_decl)) + && Is_Entity_Name (Subtype_Indication (gnat_decl))) + return Entity (Subtype_Indication (gnat_decl)); + } break; default: -- 2.47.2