aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGhjuvan Lacambre <lacambre@adacore.com>2021-10-27 13:26:38 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2021-11-09 09:44:49 +0000
commit51e99ead9197fe4d6a8db8e9746e821abce76213 (patch)
tree7b4c40670bd02557d5342fa6dfb502033e16756d
parentcbe421bd45d1994524b7312ab521dcc8b51cbfc6 (diff)
downloadgcc-51e99ead9197fe4d6a8db8e9746e821abce76213.zip
gcc-51e99ead9197fe4d6a8db8e9746e821abce76213.tar.gz
gcc-51e99ead9197fe4d6a8db8e9746e821abce76213.tar.bz2
[Ada] Accessibility fix
gcc/ada/ * sem_util.adb (Accessibility_Level): Use init_proc_level_formal instead of computing a new accessibility level from Scope_Depth (E).
-rw-r--r--gcc/ada/sem_util.adb7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index bc51a60..c8362f5 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -744,6 +744,13 @@ package body Sem_Util is
then
return Accessibility_Level (Related_Expression (E));
+ elsif Level = Dynamic_Level
+ and then Ekind (E) in E_In_Parameter | E_In_Out_Parameter
+ and then Present (Init_Proc_Level_Formal (Scope (E)))
+ then
+ return New_Occurrence_Of
+ (Init_Proc_Level_Formal (Scope (E)), Loc);
+
-- Normal object - get the level of the enclosing scope
else