From: Justin Squirek Date: Sat, 27 Feb 2021 19:30:09 +0000 (-0500) Subject: [Ada] Spurious accessibility error on "for of" loop parameter X-Git-Tag: basepoints/gcc-13~6805 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f5b4b6bf14a571df07021936c29b4773beb80324;p=thirdparty%2Fgcc.git [Ada] Spurious accessibility error on "for of" loop parameter gcc/ada/ * sem_util.adb (Accessibility_Level): Take into account renamings of loop parameters. --- diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 65376b1e1a1f..aa2449329cd3 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -664,6 +664,15 @@ package body Sem_Util is return Make_Level_Literal (Scope_Depth (Enclosing_Dynamic_Scope (E)) + 1); + -- Check if E is an expansion-generated renaming of an iterator + -- by examining Related_Expression. If so, determine the + -- accessibility level based on the original expression. + + elsif Ekind (E) in E_Constant | E_Variable + and then Present (Related_Expression (E)) + then + return Accessibility_Level (Related_Expression (E)); + -- Normal object - get the level of the enclosing scope else