diff options
author | Marc Poulhiès <poulhies@adacore.com> | 2022-12-21 10:29:38 +0100 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-01-05 15:30:01 +0100 |
commit | 07facb98ed0db8771fd36e6c73921177c11b18ea (patch) | |
tree | c9110bdf082dee35008541af116cfb2ac3a124ac | |
parent | 3f7776ea33a6ba9dac28bff8a521de04a728e19f (diff) | |
download | gcc-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.adb | 3 |
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 |