aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Poulhiès <poulhies@adacore.com>2022-12-21 10:29:38 +0100
committerMarc Poulhiès <poulhies@adacore.com>2023-01-05 15:30:01 +0100
commit07facb98ed0db8771fd36e6c73921177c11b18ea (patch)
treec9110bdf082dee35008541af116cfb2ac3a124ac
parent3f7776ea33a6ba9dac28bff8a521de04a728e19f (diff)
downloadgcc-07facb98ed0db8771fd36e6c73921177c11b18ea.zip
gcc-07facb98ed0db8771fd36e6c73921177c11b18ea.tar.gz
gcc-07facb98ed0db8771fd36e6c73921177c11b18ea.tar.bz2
ada: Fix nested generic instantiation
Previous fix for generic instantiation was not precise enough and could wrongly assume the instantiation node to be an N_Expanded_Name. gcc/ada/ * sem_ch12.adb (Instantiate_Package_Body): Better filtering when installing parent on the scope stack.
-rw-r--r--gcc/ada/sem_ch12.adb3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb
index 0f2dd39..1755549 100644
--- a/gcc/ada/sem_ch12.adb
+++ b/gcc/ada/sem_ch12.adb
@@ -12182,6 +12182,9 @@ package body Sem_Ch12 is
elsif Ekind (Scope (Gen_Unit)) = E_Generic_Package
and then Ekind (Scope (Act_Decl_Id)) = E_Package
and then Is_Generic_Instance (Scope (Act_Decl_Id))
+ and then Nkind
+ (Name (Get_Unit_Instantiation_Node
+ (Scope (Act_Decl_Id)))) = N_Expanded_Name
then
Par_Ent := Entity
(Prefix (Name (Get_Unit_Instantiation_Node